[perl-devel-nytprof] r891 committed - Polish up the docs...

0 views
Skip to first unread message

codesite...@google.com

unread,
Oct 28, 2009, 12:12:04 PM10/28/09
to develnyt...@googlegroups.com
Revision: 891
Author: tim.bunce
Date: Wed Oct 28 09:11:41 2009
Log: Polish up the docs
Note current limitation re substcont opcode.

http://code.google.com/p/perl-devel-nytprof/source/detail?r=891

Modified:
/trunk/Changes
/trunk/lib/Devel/NYTProf.pm

=======================================
--- /trunk/Changes Wed Oct 28 08:43:54 2009
+++ /trunk/Changes Wed Oct 28 09:11:41 2009
@@ -7,7 +7,6 @@
=head2 Changes in Devel::NYTProf 2.11

XXX subroutine profiler docs need update
-XXX note here and doc goto behaviour
XXX OP_SUBSTCONT
XXX should add test for embedded src code, incl string eval

=======================================
--- /trunk/lib/Devel/NYTProf.pm Wed Oct 28 08:43:54 2009
+++ /trunk/lib/Devel/NYTProf.pm Wed Oct 28 09:11:41 2009
@@ -71,6 +71,10 @@

Performs per-subroutine statement profiling for overview

+=item *
+
+Performs per-opcode profiling for slow perl builtins
+
=item *

Performs per-block statement profiling (the first profiler to do so)
@@ -184,7 +188,7 @@
For each subroutine called, separate counts and durations are stored I<for
each
location that called the subroutine>.

-Subroutine entry is detected by intercepting the entersub opcode.
Subroutine
+Subroutine entry is detected by intercepting the C<entersub> opcode.
Subroutine
exit is detected via perl's internal save stack. The result is both
extremely
fast and very robust.

@@ -404,15 +408,12 @@
package. So times for C<print> calls from anywhere in your code are merged
and
accounted for as calls to an xsub called C<CORE::print>.

-If C<N> is 2 then builtins are treated as being defined in the package that
-calls them. So calls to C<print> from package C<Foo> are treated as calls
to an
-xsub called C<Foo::CORE:print>. Note the single colon after CORE.
-
-Default is 0 as this is a new feature and still somewhat experimental.
-The default may change to 2 in a future release.
+If C<N> is 2 (the default) then builtins are treated as being defined in
the
+package that calls them. So calls to C<print> from package C<Foo> are
treated
+as calls to an xsub called C<Foo::CORE:print>. Note the single colon after
CORE.

The opcodes are currently profiled using their internal names, so
C<printf> is C<prtf>
-and the C<-x> file test is C<fteexec>. This is likely to change in future.
+and the C<-x> file test is C<fteexec>. This may change in future.

=head2 usecputime=1

@@ -591,6 +592,12 @@
C<subs=0:leave=0> options, but you won't get any subroutine timings.
See L<http://rt.cpan.org/Public/Bug/Display.html?id=50634>

+=head2 Slowops doesn't include all kinds of s/// substitutions
+
+Currently the C<substcont> opcode isn't profiled. This means that
substitutions
+using variables in the replacement string, or that use the C</e> modifier,
+are not fully profiled.
+
=head1 CLOCKS

Here we discuss the way NYTProf gets high-resolution timing information
from

Reply all
Reply to author
Forward
0 new messages