Author: tim.bunce
Date: Thu Jul 2 03:06:08 2009
New Revision: 789
Modified:
trunk/HACKING
Log:
Updates to HACKING
Modified: trunk/HACKING
==============================================================================
--- trunk/HACKING (original)
+++ trunk/HACKING Thu Jul 2 03:06:08 2009
@@ -149,10 +149,6 @@
Could also print list of available clocks for the clock=N option
(using a set of #ifdef's)
-Slow builtins, eg those that make system calls or are otherwise expensive,
like
-crypt, could be treated as calls to xsubs in the CORE:: namespace.
-Or perhaps more usefully as xsubs in the current package.
-
Replace DB::enable_profiling() and DB::disable_profiling() with
$DB::profile = 1|0;
That a more consistent API with $DB::single etc., but more importantly it
lets
users leave the code in place when NYTProf is not loaded. It'll just do
nothing,
@@ -196,6 +192,7 @@
Add marker with timestamp for phases BEGIN, CHECK, INIT, END
(could combine with pid marker)
Add marker with timestamp for enable_profile and disable_profile.
+Could also dump-and-zero the sub profiler data so we could report
per-phase timing.
The goals here are to
a) know how long the different phases of execution took mostly for general
interest, and
b) know how much time was spent with the profiler enabled to calculate
accurate
@@ -296,27 +293,6 @@
could be used to highlight the corresponding rollup line when hovering
over a
source line, and/or the opposite. Needs lots of thought, but it's an
interesting idea.
-Investigate and fix "Unable to determine line number" cases. Here's one:
-
- $ NYTPROF=trace=2 perl -d:NYTProf -Mstrict -e 1
- Opened nytprof.out
- NYTProf enable_profile (previously disabled) to nytprof.out
- Unable to determine line number in -e.
- NYTProf pid 22526: first statement line 0 of -e.
- New fid 1 (after 0:1 ) 32 e0:0 -e has src,save src
- New fid 2 (after 1:3 ) 02 e0:0
/usr/local/perl58-i/lib/5.8.6/strict.pm no src,nosave src
- -> sub strict::bits from 2:25 (d1, oh 114t, sub 0s)
- Unable to determine line number in -e.
- Unable to determine line number in -e.
- Unable to determine line number in -e.
- -> sub strict::import from 1:0 (d1, oh 178t, sub 7.1e-05s)
- Unable to determine line number in -e.
-
-The -Mstrict can be any module. Even a dummy .pm file that just
contains "1;\n"
-
-Change from tracing via warn() to use our own function that, at least
initially,
-calls warn() while temporarily disabling the __WARN__ hook.
-
Profile and optimize report generation
The sub_caller information is currently one level deep. It would be good to
@@ -334,8 +310,6 @@
Investigate style.css problem when using --outfile=some/other/dir
-Add option to set processor affinity.
-
Index should show eval fids in some form - collapsed per location?
Or just included in the stats for the outer source file.
@@ -382,3 +356,9 @@
reports can include a list of autoloaded subs.
Check if pp_leavegiven and pp_leavewhen need handling in init_profiler().
+
+Copy the nytprof.out file into the output report dir, so a report is more
+'self-contained' and can be archives and thrown around as a tarball/zip and
+still used for further analysis.
+
+Add a tracefile=filename option (just fopen() and set logfh)
--~--~---------~--~----~------------~-------~--~----~
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]
-~----------~----~----~----~------~----~------~--~---