Revision: 1172
Author: tim.bunce
Date: Fri Mar 12 08:52:49 2010
Log: Updated HACKING file in various directions.
http://code.google.com/p/perl-devel-nytprof/source/detail?r=1172
Modified:
/trunk/HACKING
=======================================
--- /trunk/HACKING Fri Mar 12 07:29:59 2010
+++ /trunk/HACKING Fri Mar 12 08:52:49 2010
@@ -211,12 +211,6 @@
the sum of the statement times don't match the time spent with the profiler
enabled, due to nested string evals for example).
-Could save 'current subname' in sub profiler so we can say A was called by
B
-and not just A was called by line X of file Y. (Will need to SAVE* a link
to
-previous current subname and restore it on return from sub.)
-This would free us from the perils of trying to guess the calling sub from
the
-line numbers (which is risky normally but is pure FAIL for
Moose/Class::MOP).
-
*** For reports only
::Reader and its data structures need to be refactored to death.
@@ -229,17 +223,11 @@
Ideally end up with a single nytprof command that just sets up the
appropriate
classes to do the work.
-Add way to merge profile data. Merging could be done in perl.
-
Trim leading @INC portion from filename in __ANON__[/very/long/path/...]
in report output. (Keep full path in link/tooltip/title as it may be
ambiguous when shortened).
Add help link in reports. Could go to docs page on search.cpan.org.
-Add % of total time to file table on index page.
-To do these we need accurate total time - based on sum of times between
enable_profile()
-and disable_profile().
-
Add a 'permalink' icon (eg infinity symbol) to the right of lines that
define
subs to make it easer to email/IM links to particular places in the code.
@@ -250,7 +238,7 @@
This is a more general way to view the problem of xsubs in packages
for which we don't have any perl source code.
-*** Other, less important random, unsorted, and possibly daft ideas
+*** Other - mostly unsorted - stuff ***
Intercept all opcodes that may fork and run perl code in the child
ie fork, open, entersub (ie xs), others?
@@ -279,12 +267,7 @@
has been imported, if the refcnt is 1 then use the imported name instead
of the
__ANON__ name.]
-Currently the line of only the last BEGIN (or 'use') in the file are
recorded.
-Rename Foo::BEGIN subs to Foo::BEGIN[file:line]
-(which matches the style used for Foo::__AUTO__[file:line])
-(perl ought to do this anyway but it seemed nontrivial when I looked)
-Probably need to record or output the line range when the BEGIN 'sub' is
-entered because it gets destroyed early. Same for END subs.
+The appending of an @line to BEGIN subs should also be applied to END subs.
Record $AUTOLOAD when AUTOLOAD() called. Perhaps
as ...::AUTOLOAD[$AUTOLOAD]
Or perhaps just use the original name if the 'resolved' one is AUTOLOAD.
@@ -314,12 +297,6 @@
Profile and optimize report generation
-Currently goto isn't explicitly noticed by the sub profiler. Need to
intercept pp_goto.
-But that may be non-trivial. Could make it look like the statement that
called
-the sub that called goto also called the sub that goto went to, or make it
look
-like the goto &$sub made the call (but we'd then get the wrong inclusive
time,
-probably).
-
Bug or limitation?: sub calls in a continue { ... } block of a while () get
associated with the 'next;' within the loop. Fixed by perl change 33710?
@@ -407,3 +384,7 @@
route for other data sources (languages/tools) to be included in a report.
Could also simplify: comparing profiles, merging profiles, ...
Any volunteers to explore writing an nytprofimport for SQLite?
+
+Option to add sub call and return events into the data file as they happen.
+Would enable a dprofpp -T like output. See
https://rt.cpan.org/Ticket/Display.html?id=50766
+
--
You've received this message because you are subscribed to
the Devel::NYTProf Development User group.
Group hosted at: http://groups.google.com/group/develnytprof-dev
Project hosted at: http://perl-devel-nytprof.googlecode.com
CPAN distribution: http://search.cpan.org/dist/Devel-NYTProf
To post, email: [email protected]
To unsubscribe, email: [email protected]