My favorites | Sign in
Project Home
Checkout   Browse   Changes  
Changes to /trunk/Changes
r1430 vs. r1431 Compare: vs.  Format:
Revision r1431
Go to: 
Project members, sign in to write a code review
/trunk/Changes   r1430 /trunk/Changes   r1431
1 =head1 NAME 1 =head1 NAME
2 2
3 Changes - List of significant changes to Devel::NYTProf 3 Changes - List of significant changes to Devel::NYTProf
4 4
5 (As of $Date$ $Revision$) 5 (As of $Date$ $Revision$)
6 6
7 =cut 7 =cut
8 8
9 =head2 Changes in Devel::NYTProf 4.09 9 =head2 Changes in Devel::NYTProf 4.09 (svn 1431) 15th Sep 2012
10 10
11 Fixed to work for perl v5.17.3+ thanks to David Mitchell. 11 Fixed to work for perl v5.17.3+ thanks to David Mitchell.
12 12
13 =head2 Changes in Devel::NYTProf 4.08 (svn 1427) 11th Aug 2012 13 =head2 Changes in Devel::NYTProf 4.08 (svn 1427) 11th Aug 2012
14 14
15 Fixed version numbers in nytprofhtml and nytprofmerge. 15 Fixed version numbers in nytprofhtml and nytprofmerge.
16 16
17 =head2 Changes in Devel::NYTProf 4.07 (svn 1419) 10th Aug 2012 17 =head2 Changes in Devel::NYTProf 4.07 (svn 1419) 10th Aug 2012
18 18
19 Fixed html generation to be valid, RT#70207 (H.Merijn Brand). 19 Fixed html generation to be valid, RT#70207 (H.Merijn Brand).
20 nytprofmerge no longer dies on some errors, RT#75918. 20 nytprofmerge no longer dies on some errors, RT#75918.
21 nytprofmerge now sums cumulative_overhead_ticks, RT#75909. 21 nytprofmerge now sums cumulative_overhead_ticks, RT#75909.
22 nytprofmerge now gets in man page installed, RT#75911. 22 nytprofmerge now gets in man page installed, RT#75911.
23 23
24 Enable file=/dev/null to work as fix for RT#74565. 24 Enable file=/dev/null to work as fix for RT#74565.
25 Updated ::Apache docs including troubleshooting, RT#75912. 25 Updated ::Apache docs including troubleshooting, RT#75912.
26 Note Devel::NYTProf::Data is undocumented and why, RT#75914. 26 Note Devel::NYTProf::Data is undocumented and why, RT#75914.
27 Use Browser::Open if installed for nytprofhtml --open. 27 Use Browser::Open if installed for nytprofhtml --open.
28 28
29 Added and clarified some notes in the troubleshooting docs. 29 Added and clarified some notes in the troubleshooting docs.
30 Added warning for Apache2::SizeLimit in ::Apache, RT#75912. 30 Added warning for Apache2::SizeLimit in ::Apache, RT#75912.
31 Clarified docs re fork generating multiple files, RT#78873. 31 Clarified docs re fork generating multiple files, RT#78873.
32 32
33 =head2 Changes in Devel::NYTProf 4.06 (svn r1406) 30th Nov 2010 33 =head2 Changes in Devel::NYTProf 4.06 (svn r1406) 30th Nov 2010
34 34
35 Fixed risk of nytprofhtml failure due to over-long filenames RT#62319 35 Fixed risk of nytprofhtml failure due to over-long filenames RT#62319
36 36
37 Improved handling of Class::MOP/Moose generated methods. 37 Improved handling of Class::MOP/Moose generated methods.
38 Improved handling of embedded filenames, e.g., "(eval N)[$path]" 38 Improved handling of embedded filenames, e.g., "(eval N)[$path]"
39 Updated and clarified usecputime=1 docs. 39 Updated and clarified usecputime=1 docs.
40 Updated tests for (expected) new functionality in Sub::Name. 40 Updated tests for (expected) new functionality in Sub::Name.
41 Updated tests for changes in perl 5.13.x. 41 Updated tests for changes in perl 5.13.x.
42 42
43 Added special handling for the perl built-in accept() 43 Added special handling for the perl built-in accept()
44 Effectively the clock stops ticking while in accept(). 44 Effectively the clock stops ticking while in accept().
45 This makes profiles of pure-perl web servers more useful. 45 This makes profiles of pure-perl web servers more useful.
46 Added --no-mergeevals option to nytprofhtml. 46 Added --no-mergeevals option to nytprofhtml.
47 Added "If Statement and Subroutine Timings Don't Match" and 47 Added "If Statement and Subroutine Timings Don't Match" and
48 "If Headline Subroutine Timings Don't Match the Called Subs" 48 "If Headline Subroutine Timings Don't Match the Called Subs"
49 sections to the DATA COLLECTION AND INTERPRETATION docs. 49 sections to the DATA COLLECTION AND INTERPRETATION docs.
50 Added note to the docs re profiling applications that use Coro. 50 Added note to the docs re profiling applications that use Coro.
51 51
52 =head2 Changes in Devel::NYTProf 4.05 (svn 1359) 15th Sept 2010 52 =head2 Changes in Devel::NYTProf 4.05 (svn 1359) 15th Sept 2010
53 53
54 Fixed tests to work with a new optimization in perl 5.13.4. 54 Fixed tests to work with a new optimization in perl 5.13.4.
55 Fixed handling of negative values for subroutine line ranges 55 Fixed handling of negative values for subroutine line ranges
56 (that may be added to %DB::sub by buggy software). 56 (that may be added to %DB::sub by buggy software).
57 Fixed handling of negative times from unstable clocks 57 Fixed handling of negative times from unstable clocks
58 that caused spikes in statement times. 58 that caused spikes in statement times.
59 Fixed risk of bad line numbers hanging report generation. 59 Fixed risk of bad line numbers hanging report generation.
60 60
61 =head2 Changes in Devel::NYTProf 4.04 (svn 1332) 9th July 2010 61 =head2 Changes in Devel::NYTProf 4.04 (svn 1332) 9th July 2010
62 62
63 Profile now reports presence of the slow regex match vars ($& $' $`). 63 Profile now reports presence of the slow regex match vars ($& $' $`).
64 The (cumulative inclusive) recursion time measured for subs that are involved 64 The (cumulative inclusive) recursion time measured for subs that are involved
65 in recursion is now reported as 'recursion: ... sum of overlapping time'. 65 in recursion is now reported as 'recursion: ... sum of overlapping time'.
66 Trace log messages are now flushed immediately. 66 Trace log messages are now flushed immediately.
67 Reduced risk of crashes in embedded applications that don't handle PL_endav 67 Reduced risk of crashes in embedded applications that don't handle PL_endav
68 carefully, like current versions of mod_perl. 68 carefully, like current versions of mod_perl.
69 69
70 =head2 Changes in Devel::NYTProf 4.03 (svn 1316) 19th June 2010 70 =head2 Changes in Devel::NYTProf 4.03 (svn 1316) 19th June 2010
71 71
72 Fixed another nytprofhtml performance problem for profiles with 72 Fixed another nytprofhtml performance problem for profiles with
73 many files/evals. Much faster merging of evals now. 73 many files/evals. Much faster merging of evals now.
74 74
75 For subs that recurse, show max depth and time in subroutine table. 75 For subs that recurse, show max depth and time in subroutine table.
76 76
77 =head2 Changes in Devel::NYTProf 4.02 (svn 1309) 17th June 2010 77 =head2 Changes in Devel::NYTProf 4.02 (svn 1309) 17th June 2010
78 78
79 Fixed nytprofhtml performance problem for profiles with 79 Fixed nytprofhtml performance problem for profiles with
80 many files/evals. 80 many files/evals.
81 81
82 Added progress reporting to nytprofhtml. 82 Added progress reporting to nytprofhtml.
83 83
84 =head2 Changes in Devel::NYTProf 4.01 (svn 1296) 10th June 2010 84 =head2 Changes in Devel::NYTProf 4.01 (svn 1296) 10th June 2010
85 85
86 Fixed links from block/sub level report pages to string eval report 86 Fixed links from block/sub level report pages to string eval report
87 pages. RT#58284 87 pages. RT#58284
88 88
89 Restored ordering of line - block - sub links on index page. 89 Restored ordering of line - block - sub links on index page.
90 90
91 Clarified that saving the source code of string evals requires perl 91 Clarified that saving the source code of string evals requires perl
92 version 5.8.9+, 5.10.1+, 5.12 or later. RT#58283 92 version 5.8.9+, 5.10.1+, 5.12 or later. RT#58283
93 93
94 =head2 Changes in Devel::NYTProf 4.00 (svn 1291) 8th June 2010 94 =head2 Changes in Devel::NYTProf 4.00 (svn 1291) 8th June 2010
95 95
96 Major changes: 96 Major changes:
97 97
98 Added profile reporting of code executed in string evals. 98 Added profile reporting of code executed in string evals.
99 Each string eval executed gets it's own report page. 99 Each string eval executed gets it's own report page.
100 You can 'see' the code that was executed, with profile info. 100 You can 'see' the code that was executed, with profile info.
101 String evals may be collapsed/merged in some cases. 101 String evals may be collapsed/merged in some cases.
102 102
103 Improved many sub-optimal behaviours related to string evals. 103 Improved many sub-optimal behaviours related to string evals.
104 104
105 Subroutine calls that couldn't be associated with a specific line, 105 Subroutine calls that couldn't be associated with a specific line,
106 such as calls made by perl to END blocks, are now shown in reports. 106 such as calls made by perl to END blocks, are now shown in reports.
107 107
108 Subroutine definitions that couldn't be associated with a specific file, 108 Subroutine definitions that couldn't be associated with a specific file,
109 such as xsubs in packages with no perl source, are now shown in reports. 109 such as xsubs in packages with no perl source, are now shown in reports.
110 110
111 Enabled savesrc=1 by default. 111 Enabled savesrc=1 by default.
112 112
113 The data file format has changed so v3.x files can't be read. 113 The data file format has changed so v3.x files can't be read.
114 The Devel::NYTProf::ReadStream interface has also changed. 114 The Devel::NYTProf::ReadStream interface has also changed.
115 115
116 Other changes: 116 Other changes:
117 117
118 Fixed off-by-1 error in number of Files an xsub/opcode was called from. 118 Fixed off-by-1 error in number of Files an xsub/opcode was called from.
119 Fixed Devel::NYTProf::Apache to work in more situations 119 Fixed Devel::NYTProf::Apache to work in more situations
120 and enable the addpid option by default. 120 and enable the addpid option by default.
121 Fixed that END blocks defined at runtime are included in the profile 121 Fixed that END blocks defined at runtime are included in the profile
122 thanks to Nicholas Clark. 122 thanks to Nicholas Clark.
123 123
124 Compilation-only checks (perl -c) can be profiled thanks to Nicholas Clark. 124 Compilation-only checks (perl -c) can be profiled thanks to Nicholas Clark.
125 Improved behaviour for 'duplicate' anon-subs defined in separate 125 Improved behaviour for 'duplicate' anon-subs defined in separate
126 invocations of a particular string eval. 126 invocations of a particular string eval.
127 Multiple BEGINs (e.g., use) on the same line get distinct names. 127 Multiple BEGINs (e.g., use) on the same line get distinct names.
128 128
129 Added --minimal option to nytprofhtml to disable generation of 129 Added --minimal option to nytprofhtml to disable generation of
130 graphviz .dot files and block/sub-level statement report files. 130 graphviz .dot files and block/sub-level statement report files.
131 Added automatic detection of calls to POSIX::_exit() by the sub profiler 131 Added automatic detection of calls to POSIX::_exit() by the sub profiler
132 so finish_profile() gets called and a usable profile is produced. 132 so finish_profile() gets called and a usable profile is produced.
133 Added posix_exit=1 option to do the same thing (in a different way) 133 Added posix_exit=1 option to do the same thing (in a different way)
134 when the sub profiler is not being used (i.e., subs=0). 134 when the sub profiler is not being used (i.e., subs=0).
135 135
136 Documentation Changes: 136 Documentation Changes:
137 137
138 Sequences of blank lines are skipped in generated reports. 138 Sequences of blank lines are skipped in generated reports.
139 Relevant for savesrc mode in which perl doesn't store pod sections. 139 Relevant for savesrc mode in which perl doesn't store pod sections.
140 Corrected typos in nytprofhtml docs thanks to chocolate@cpan.org. 140 Corrected typos in nytprofhtml docs thanks to chocolate@cpan.org.
141 Documented how to use Devel::NYTProf::Apache with virtual hosts that 141 Documented how to use Devel::NYTProf::Apache with virtual hosts that
142 use the PerlOptions +Parent or +Clone configuration. 142 use the PerlOptions +Parent or +Clone configuration.
143 143
144 =head2 Changes in Devel::NYTProf 3.11 (svn 1171) 12th March 2010 144 =head2 Changes in Devel::NYTProf 3.11 (svn 1171) 12th March 2010
145 145
146 Fixed assorted issues on Windows thanks to Jan Dubois. 146 Fixed assorted issues on Windows thanks to Jan Dubois.
147 Fixed assorted issues 64bit systems thanks to Jan Dubois. 147 Fixed assorted issues 64bit systems thanks to Jan Dubois.
148 148
149 Refactored I/O to create an API that encapsulates the data 149 Refactored I/O to create an API that encapsulates the data
150 file format, thanks to Nicholas Clark. 150 file format, thanks to Nicholas Clark.
151 Updated and optimized nytprofmerge to use the new API 151 Updated and optimized nytprofmerge to use the new API
152 yielding a significant speed boost, thanks to Nicholas Clark. 152 yielding a significant speed boost, thanks to Nicholas Clark.
153 153
154 =head2 Changes in Devel::NYTProf 3.02 (svn 1094) 5th March 2010 154 =head2 Changes in Devel::NYTProf 3.02 (svn 1094) 5th March 2010
155 155
156 Fixed handling of usecputime=1 option and updated 156 Fixed handling of usecputime=1 option and updated
157 docs to note the significant limitations. 157 docs to note the significant limitations.
158 Fixed association of XS subs to source files 158 Fixed association of XS subs to source files
159 in some edge cases thanks to Nicholas Clark. 159 in some edge cases thanks to Nicholas Clark.
160 Fixed nytprofmerge edge cases thanks to Nicholas Clark. 160 Fixed nytprofmerge edge cases thanks to Nicholas Clark.
161 161
162 Added high-resolution (100ns) timer for Mac OS X 162 Added high-resolution (100ns) timer for Mac OS X
163 many thanks to Markus Peter. 163 many thanks to Markus Peter.
164 Added assorted optimizations thanks to Nicholas Clark. 164 Added assorted optimizations thanks to Nicholas Clark.
165 165
166 Changed subroutine profiler to be slightly more efficient. 166 Changed subroutine profiler to be slightly more efficient.
167 Changed some tests to be more informative on failure. 167 Changed some tests to be more informative on failure.
168 Changed nytprofhtml to be smarter when source isn't available. 168 Changed nytprofhtml to be smarter when source isn't available.
169 Changed nytprofhtml to show sort arrow on sortable tables. 169 Changed nytprofhtml to show sort arrow on sortable tables.
170 170
171 Removed Devel::NYTProf::PgPLPerl module. That's now a separate 171 Removed Devel::NYTProf::PgPLPerl module. That's now a separate
172 PostgreSQL::PLPerl::NYTProf distribution. 172 PostgreSQL::PLPerl::NYTProf distribution.
173 173
174 Updated docs to include a note about timing on Windows. 174 Updated docs to include a note about timing on Windows.
175 Updated docs to include a section about making NYTProf faster. 175 Updated docs to include a section about making NYTProf faster.
176 176
177 =head2 Changes in Devel::NYTProf 3.01 (svn r1005) 28th Dec 2009 177 =head2 Changes in Devel::NYTProf 3.01 (svn r1005) 28th Dec 2009
178 178
179 Fixed (removed) use of vfscanf() which broke on Windows. 179 Fixed (removed) use of vfscanf() which broke on Windows.
180 Fixed version number in nytprofmerge. 180 Fixed version number in nytprofmerge.
181 181
182 Added documentation to nytprofcg and nytprofmerge. 182 Added documentation to nytprofcg and nytprofmerge.
183 183
184 Updated NYTProf docs, including noting major contributors. 184 Updated NYTProf docs, including noting major contributors.
185 Updated docs to fix assorted typos, thanks to Jonathan Yu. 185 Updated docs to fix assorted typos, thanks to Jonathan Yu.
186 Updated nytprofcsv documentation. 186 Updated nytprofcsv documentation.
187 187
188 =head2 Changes in Devel::NYTProf 3.00 (svn r998) 24th Dec 2009 188 =head2 Changes in Devel::NYTProf 3.00 (svn r998) 24th Dec 2009
189 189
190 Note: The file format has changed. Old files can't be read. 190 Note: The file format has changed. Old files can't be read.
191 191
192 Fixed (rare) overflow bug for 32bit perls. 192 Fixed (rare) overflow bug for 32bit perls.
193 Fixed discarding of (rare) negative intervals. 193 Fixed discarding of (rare) negative intervals.
194 Fixed risk of infinite recursion if trace enabled and 194 Fixed risk of infinite recursion if trace enabled and
195 $SIG{__WARN__} was set to a code reference. 195 $SIG{__WARN__} was set to a code reference.
196 Fixed subroutine recursion depth measurement. 196 Fixed subroutine recursion depth measurement.
197 Fixed missing embedded eval source code for some older perls. 197 Fixed missing embedded eval source code for some older perls.
198 Fixed assorted compiler warnings for various configurations. 198 Fixed assorted compiler warnings for various configurations.
199 199
200 Changed ReadStream SUB_LINE_RANGE tag to SUB_INFO. 200 Changed ReadStream SUB_LINE_RANGE tag to SUB_INFO.
201 201
202 Added log=F option to write trace log to a file. 202 Added log=F option to write trace log to a file.
203 Added warning when reading a file with a minor version higher 203 Added warning when reading a file with a minor version higher
204 than expected. 204 than expected.
205 205
206 Added slowops=N option which enables profiling of potentially slow 206 Added slowops=N option which enables profiling of potentially slow
207 perl opcodes (e.g., system calls and regexs). They're treated like xsubs. 207 perl opcodes (e.g., system calls and regexs). They're treated like xsubs.
208 slowops=0 disables profiling of 'slowops' 208 slowops=0 disables profiling of 'slowops'
209 slowops=1 puts timings into one package ("CORE::", eg CORE::sleep) 209 slowops=1 puts timings into one package ("CORE::", eg CORE::sleep)
210 slowops=2 (the default) puts timings into into the package that made the 210 slowops=2 (the default) puts timings into into the package that made the
211 call, e.g., "Foo::CORE:sleep" (note the single colon). 211 call, e.g., "Foo::CORE:sleep" (note the single colon).
212 212
213 Added sigexit=1 option to enable a useable profile when the process 213 Added sigexit=1 option to enable a useable profile when the process
214 exits due to a signals (catches INT HUP PIPE BUS SEGV by default) 214 exits due to a signals (catches INT HUP PIPE BUS SEGV by default)
215 Can also do sigexit=TRAP,ABRT,SYS,... to hook specific signals. 215 Can also do sigexit=TRAP,ABRT,SYS,... to hook specific signals.
216 Thanks to Andrew Sterling Hanenkamp for the seed of this idea. 216 Thanks to Andrew Sterling Hanenkamp for the seed of this idea.
217 217
218 Added forkdepth=N option to enable profiling to be turned off after N 218 Added forkdepth=N option to enable profiling to be turned off after N
219 generations of fork(). 219 generations of fork().
220 220
221 Added nameevals=0 and nameanonsubs=0 options to make NYTProf less 221 Added nameevals=0 and nameanonsubs=0 options to make NYTProf less
222 visible to code that may assume the default perl naming behaviour. 222 visible to code that may assume the default perl naming behaviour.
223 Note that using these will limit the usefulness of reports. 223 Note that using these will limit the usefulness of reports.
224 224
225 Added initial support for profiling PostgreSQL PL/Perl code 225 Added initial support for profiling PostgreSQL PL/Perl code
226 via Devel::NYTProf::PgPLPerl module. 226 via Devel::NYTProf::PgPLPerl module.
227 227
228 Added nytprofmerge utility: 228 Added nytprofmerge utility:
229 Reads multiple nytprof data files and writes a new merged file. 229 Reads multiple nytprof data files and writes a new merged file.
230 Many thanks to Nicholas Clark! 230 Many thanks to Nicholas Clark!
231 231
232 Changes to subroutine profiler: 232 Changes to subroutine profiler:
233 233
234 Rewritten. Captures more data more accurately and robustly. 234 Rewritten. Captures more data more accurately and robustly.
235 Added profiling of calls to xsubs that exit via an exception. 235 Added profiling of calls to xsubs that exit via an exception.
236 Added profiling of goto ⊂ 236 Added profiling of goto ⊂
237 Added recording the name of the calling subroutine to enable proper 237 Added recording the name of the calling subroutine to enable proper
238 linking of call trees. Previously only the calling file and line 238 linking of call trees. Previously only the calling file and line
239 were recorded. (This is more significant than it sounds :) 239 were recorded. (This is more significant than it sounds :)
240 Added docs describing how the subroutine profiler works. 240 Added docs describing how the subroutine profiler works.
241 Multiple BEGIN blocks (including "use") within a package are now 241 Multiple BEGIN blocks (including "use") within a package are now
242 distinguished by appending the number of the line they start on 242 distinguished by appending the number of the line they start on
243 (for perl 5.8.9+ and 5.10.1+) 243 (for perl 5.8.9+ and 5.10.1+)
244 244
245 Changes to nytprofhtml: 245 Changes to nytprofhtml:
246 246
247 Added interactive treemap view of package and subroutine times. 247 Added interactive treemap view of package and subroutine times.
248 Left-click to zoom in (drill-down) one level, right-click to zoom out. 248 Left-click to zoom in (drill-down) one level, right-click to zoom out.
249 249
250 Added generation of GraphViz dot language files to visualize 250 Added generation of GraphViz dot language files to visualize
251 the call graph. A top-level link on the index page provides an 251 the call graph. A top-level link on the index page provides an
252 inter-package graph, and per-source-file links provide a graph 252 inter-package graph, and per-source-file links provide a graph
253 of sub calls in to, out of, and between the subs in the file. 253 of sub calls in to, out of, and between the subs in the file.
254 See http://en.wikipedia.org/wiki/Graphviz 254 See http://en.wikipedia.org/wiki/Graphviz
255 255
256 Added columns to the main source code reports to show 256 Added columns to the main source code reports to show
257 a count of sub calls and time spent in those calls. 257 a count of sub calls and time spent in those calls.
258 258
259 Assorted cosmetic improvements. 259 Assorted cosmetic improvements.
260 Changed colors on report pages to be less saturated. 260 Changed colors on report pages to be less saturated.
261 261
262 262
263 =head2 Changes in Devel::NYTProf 2.10 (svn r774) 18th June 2009 263 =head2 Changes in Devel::NYTProf 2.10 (svn r774) 18th June 2009
264 264
265 Fixed call count for XSubs that was one too high. 265 Fixed call count for XSubs that was one too high.
266 Fixed enable_profile() after fork thanks to delamonpansie 266 Fixed enable_profile() after fork thanks to delamonpansie
267 http://code.google.com/p/perl-devel-nytprof/issues/detail?id=15 267 http://code.google.com/p/perl-devel-nytprof/issues/detail?id=15
268 Fixed to use correct scripts during test and so avoid permissions 268 Fixed to use correct scripts during test and so avoid permissions
269 issues, thanks to David Golden. 269 issues, thanks to David Golden.
270 Fixed spurious "Unable to determine line number" warnings 270 Fixed spurious "Unable to determine line number" warnings
271 when using options like -p, -n, -Mfoo. 271 when using options like -p, -n, -Mfoo.
272 272
273 Changed enable_profile() to discard the time spent since 273 Changed enable_profile() to discard the time spent since
274 profile was disabled. 274 profile was disabled.
275 Changed NYTPROF env var parsing to allow backslash to escape 275 Changed NYTPROF env var parsing to allow backslash to escape
276 colons, for Windows, thanks to Joshua ben Jore. 276 colons, for Windows, thanks to Joshua ben Jore.
277 277
278 Added license, homepage, bugtracker, repository and MailingList 278 Added license, homepage, bugtracker, repository and MailingList
279 resources to META.yml thanks to Michael G Schwern. 279 resources to META.yml thanks to Michael G Schwern.
280 Added nytprofcg utility to generate callgrind data for 280 Added nytprofcg utility to generate callgrind data for
281 viewing via Kcachegrind, thanks to Chia-liang Kao. 281 viewing via Kcachegrind, thanks to Chia-liang Kao.
282 282
283 =head2 Changes in Devel::NYTProf 2.09 (svn r733) 29th March 2009 283 =head2 Changes in Devel::NYTProf 2.09 (svn r733) 29th March 2009
284 284
285 Added support for modules using AutoLoader, e.g., POSIX & Storable, 285 Added support for modules using AutoLoader, e.g., POSIX & Storable,
286 to fix the "Unable to open '... (autosplit into ...)'" warnings. 286 to fix the "Unable to open '... (autosplit into ...)'" warnings.
287 Fixed report filename generation to remove colons, 287 Fixed report filename generation to remove colons,
288 for Windows, reported by Adam Kennedy in rt bug #43798. 288 for Windows, reported by Adam Kennedy in rt bug #43798.
289 Fixed report filename generation to remove dots, for VMS. 289 Fixed report filename generation to remove dots, for VMS.
290 Fixed savesrc option which wasn't safe and reliable. 290 Fixed savesrc option which wasn't safe and reliable.
291 Added missing t/test22-strevala.t to MANIFEST. 291 Added missing t/test22-strevala.t to MANIFEST.
292 Extended testing to exercise compress and savesrc options. 292 Extended testing to exercise compress and savesrc options.
293 293
294 Ported to VMS, thanks to Peter (Stig) Edwards: 294 Ported to VMS, thanks to Peter (Stig) Edwards:
295 295
296 Renamed t/\d\d.test.t files to t/\d\d_test.t 296 Renamed t/\d\d.test.t files to t/\d\d_test.t
297 t/test*.pm.x files to t/test*.pm_x 297 t/test*.pm.x files to t/test*.pm_x
298 t/test*fork.\d.* files to t/test*fork-\d.* 298 t/test*fork.\d.* files to t/test*fork-\d.*
299 .js and .css file to only have one period/dot 299 .js and .css file to only have one period/dot
300 for greater portability. VMS ODS-2 files can only have 300 for greater portability. VMS ODS-2 files can only have
301 one period/dot. 301 one period/dot.
302 Added t/92-file_port.t as a developer-only and 302 Added t/92-file_port.t as a developer-only and
303 request-using-ENV test, to help maintain portable files, 303 request-using-ENV test, to help maintain portable files,
304 currently .indent.pro and .perltidyrc fall foul of portable 304 currently .indent.pro and .perltidyrc fall foul of portable
305 filename characters as defined by ANSI C and perlport. 305 filename characters as defined by ANSI C and perlport.
306 NYTProf.xs's open_output_file use mode 'wb' and not 'wbx' 306 NYTProf.xs's open_output_file use mode 'wb' and not 'wbx'
307 to avoid unsupported error when on VMS. 307 to avoid unsupported error when on VMS.
308 308
309 =head2 Changes in Devel::NYTProf 2.08 (svn r685) 15th Feb 2009 309 =head2 Changes in Devel::NYTProf 2.08 (svn r685) 15th Feb 2009
310 310
311 Core: 311 Core:
312 312
313 Added optimize=0 option to disable the perl optimizer 313 Added optimize=0 option to disable the perl optimizer
314 so you can see more accurate statement execution counts 314 so you can see more accurate statement execution counts
315 for some kinds of constructs. 315 for some kinds of constructs.
316 316
317 Added savesrc=1 option to copy source code into the profile 317 Added savesrc=1 option to copy source code into the profile
318 so reports are not affected by changes to the source files. 318 so reports are not affected by changes to the source files.
319 319
320 Added ability for DB::enable_profile() to specify a new file 320 Added ability for DB::enable_profile() to specify a new file
321 for profile data to be written to. 321 for profile data to be written to.
322 322
323 Reporting: 323 Reporting:
324 324
325 Time spent within nested string evals is accounted for. 325 Time spent within nested string evals is accounted for.
326 326
327 Fixed searching @INC for source files for reports. 327 Fixed searching @INC for source files for reports.
328 328
329 Dramatically increased performance of nytprofhtml 329 Dramatically increased performance of nytprofhtml
330 relative to the 2.07 version. 330 relative to the 2.07 version.
331 331
332 Many tables in html reports are sortable by clicking on header columns 332 Many tables in html reports are sortable by clicking on header columns
333 (requires JavaScript, uses jQuery and tablesorter.js) 333 (requires JavaScript, uses jQuery and tablesorter.js)
334 334
335 Statement timings are now shown as integers in appropriate 335 Statement timings are now shown as integers in appropriate
336 units: seconds, milliseconds, microseconds or nanoseconds. 336 units: seconds, milliseconds, microseconds or nanoseconds.
337 337
338 Hovering over times in subroutine or file summary tables 338 Hovering over times in subroutine or file summary tables
339 now shows the percentage time. 339 now shows the percentage time.
340 340
341 Added tables showing timings rolled up per package name depth. 341 Added tables showing timings rolled up per package name depth.
342 342
343 Improved HTML conformance thanks to Leland Johnson. 343 Improved HTML conformance thanks to Leland Johnson.
344 344
345 =head2 Changes in Devel::NYTProf 2.07 (svn r583) 1st Nov 2008 345 =head2 Changes in Devel::NYTProf 2.07 (svn r583) 1st Nov 2008
346 346
347 Core: 347 Core:
348 348
349 NOTE: The file format has changed. Files from 2.04 and 2.05 349 NOTE: The file format has changed. Files from 2.04 and 2.05
350 can still be read by this version. 350 can still be read by this version.
351 351
352 Subroutine inclusive time no longer counts time 352 Subroutine inclusive time no longer counts time
353 spent recursed into the same subroutine. That time is 353 spent recursed into the same subroutine. That time is
354 now recorded separately, along with the max recursion depth. 354 now recorded separately, along with the max recursion depth.
355 355
356 Added stmts=0 option to disable the statement profiler 356 Added stmts=0 option to disable the statement profiler
357 so just the subroutine profiler runs. That reduces the 357 so just the subroutine profiler runs. That reduces the
358 profiler overhead and gives you much smaller data files. 358 profiler overhead and gives you much smaller data files.
359 359
360 Now builds on Windows, with thanks to Jan Dubois! 360 Now builds on Windows, with thanks to Jan Dubois!
361 361
362 Removed use of vfscanf() to improve portability to Windows 362 Removed use of vfscanf() to improve portability to Windows
363 and old unix systems, thanks to Jan Dubois. 363 and old unix systems, thanks to Jan Dubois.
364 364
365 The profiler takes more care to avoid changing $!. 365 The profiler takes more care to avoid changing $!.
366 366
367 Reports: 367 Reports:
368 368
369 Fixed significant error in time reported as spent in a subroutine, 369 Fixed significant error in time reported as spent in a subroutine,
370 which was showing the sum of the inclusive and exclusive time 370 which was showing the sum of the inclusive and exclusive time
371 instead of just the inclusive time. 371 instead of just the inclusive time.
372 372
373 Subroutine calls made within string evals are now shown in reports. 373 Subroutine calls made within string evals are now shown in reports.
374 Subroutine caller details now includes calls from within string evals. 374 Subroutine caller details now includes calls from within string evals.
375 375
376 XS subs (xsubs) are now automatically associated with a source 376 XS subs (xsubs) are now automatically associated with a source
377 file that defines normal subs in the same package. 377 file that defines normal subs in the same package.
378 Callers and timing information for xsubs are now shown at the 378 Callers and timing information for xsubs are now shown at the
379 bottom of the corresponding source file. 379 bottom of the corresponding source file.
380 References to xsubs in reports now include a working link 380 References to xsubs in reports now include a working link
381 if the xsub is in a package that contains profiled perl code. 381 if the xsub is in a package that contains profiled perl code.
382 382
383 The html global subroutine index pages no longer list subs that 383 The html global subroutine index pages no longer list subs that
384 were never called. 384 were never called.
385 385
386 Assorted report formating enhancements thanks to Gisle Aas. 386 Assorted report formating enhancements thanks to Gisle Aas.
387 387
388 Exclusive and Inclusive time column positions have been switched 388 Exclusive and Inclusive time column positions have been switched
389 to be consistent with how the times are presented elsewhere. 389 to be consistent with how the times are presented elsewhere.
390 390
391 nytprofhtml includes a --open option to open the generated html 391 nytprofhtml includes a --open option to open the generated html
392 392
393 Documentation: 393 Documentation:
394 394
395 Greatly expanded description of the clocks used for profiling 395 Greatly expanded description of the clocks used for profiling
396 and their issues, especially on multi-processor systems. 396 and their issues, especially on multi-processor systems.
397 397
398 Other: 398 Other:
399 399
400 Added Devel::NYTProf::ReadStream module which provides a perl 400 Added Devel::NYTProf::ReadStream module which provides a perl
401 interface for reading the raw profile data, thanks to Gisle Aas. 401 interface for reading the raw profile data, thanks to Gisle Aas.
402 402
403 403
404 =head2 Changes in Devel::NYTProf 2.05 (svn r498) 8th Oct 2008 404 =head2 Changes in Devel::NYTProf 2.05 (svn r498) 8th Oct 2008
405 405
406 Fixed alteration of $! during profiling thanks to Slaven Rezic. 406 Fixed alteration of $! during profiling thanks to Slaven Rezic.
407 Fixed clock_gettime() clock selection to fallback to CLOCK_REALTIME 407 Fixed clock_gettime() clock selection to fallback to CLOCK_REALTIME
408 if CLOCK_MONOTONIC is not available, e.g, on linux 2.4. 408 if CLOCK_MONOTONIC is not available, e.g, on linux 2.4.
409 Fixed error when application ends after DB::disable_profile(). 409 Fixed error when application ends after DB::disable_profile().
410 410
411 Added some docs to Devel::NYTProf::Apache 411 Added some docs to Devel::NYTProf::Apache
412 Added clock=N option to enable user to select the clock. 412 Added clock=N option to enable user to select the clock.
413 413
414 =head2 Changes in Devel::NYTProf 2.04 (svn r483) 1st Oct 2008 414 =head2 Changes in Devel::NYTProf 2.04 (svn r483) 1st Oct 2008
415 415
416 Fixed rare divide-by-zero error in reporting code. 416 Fixed rare divide-by-zero error in reporting code.
417 Fixed rare core dump in reporting code. 417 Fixed rare core dump in reporting code.
418 Fixed detection of #line directives to be more picky. 418 Fixed detection of #line directives to be more picky.
419 Fixed some compiler warnings thanks to Richard Foley. 419 Fixed some compiler warnings thanks to Richard Foley.
420 420
421 Added on-the-fly ~90% zip compression thanks to Nicholas Clark. 421 Added on-the-fly ~90% zip compression thanks to Nicholas Clark.
422 Reduces data file size per million statements executed 422 Reduces data file size per million statements executed
423 from approx ~13MB to ~1MB (depends on code being profiled). 423 from approx ~13MB to ~1MB (depends on code being profiled).
424 424
425 Added extra table of all subs sorted by inclusive time. 425 Added extra table of all subs sorted by inclusive time.
426 426
427 No longer warns about '/loader/0x800d8c/...' synthetic file 427 No longer warns about '/loader/0x800d8c/...' synthetic file
428 names perl assigns reading code from a CODE ref in @INC 428 names perl assigns reading code from a CODE ref in @INC
429 429
430 =head2 Changes in Devel::NYTProf 2.03 (svn r405) 15 Aug 2008 430 =head2 Changes in Devel::NYTProf 2.03 (svn r405) 15 Aug 2008
431 431
432 NOTES: 432 NOTES:
433 1. File format changed. Old profiles can't be read. 433 1. File format changed. Old profiles can't be read.
434 2. Perl 5.8.1 is the oldest perl version supported. 434 2. Perl 5.8.1 is the oldest perl version supported.
435 435
436 Fixed accounting for time spent executing subs that were 436 Fixed accounting for time spent executing subs that were
437 compiled in string evals. 437 compiled in string evals.
438 Fixed risk of file corruption by names containing newlines. 438 Fixed risk of file corruption by names containing newlines.
439 439
440 Changed to also profile compile-time activity by default. 440 Changed to also profile compile-time activity by default.
441 Improved formating of stats for subs called by a statement. 441 Improved formating of stats for subs called by a statement.
442 442
443 Added start=begin|init|end|no option to NYTPROF env var. 443 Added start=begin|init|end|no option to NYTPROF env var.
444 Added addpid=1 option to NYTPROF env var. 444 Added addpid=1 option to NYTPROF env var.
445 Added support for .pmc files. 445 Added support for .pmc files.
446 Added detection of #line directives in source code 446 Added detection of #line directives in source code
447 currently just warns that they are not handled. 447 currently just warns that they are not handled.
448 448
449 Known issues: 449 Known issues:
450 Perl 5.8.8 can report garbage file names for XS subs. 450 Perl 5.8.8 can report garbage file names for XS subs.
451 (Perl 5.8.6 and 5.10 don't seem to have this problem.) 451 (Perl 5.8.6 and 5.10 don't seem to have this problem.)
452 Where a subroutine is called from code compiled in a string 452 Where a subroutine is called from code compiled in a string
453 evals, the artificial "eval file names" are not yet merged. 453 evals, the artificial "eval file names" are not yet merged.
454 (You're unlikely to notice this obscure case anyway.) 454 (You're unlikely to notice this obscure case anyway.)
455 455
456 =head2 Changes in Devel::NYTProf 2.02 (svn r361) 24 Jul 2008 456 =head2 Changes in Devel::NYTProf 2.02 (svn r361) 24 Jul 2008
457 457
458 Fixed colors to use the median (not average) deviation from the median value. 458 Fixed colors to use the median (not average) deviation from the median value.
459 Fixed sub name resolution to work in more, perhaps all, unusual cases. 459 Fixed sub name resolution to work in more, perhaps all, unusual cases.
460 460
461 Improved accuracy of subroutine timing by deducting statement measurement overheads. 461 Improved accuracy of subroutine timing by deducting statement measurement overheads.
462 Improved readability of subroutine caller lists. 462 Improved readability of subroutine caller lists.
463 Replaced use of fpurge() with a more portable approach. 463 Replaced use of fpurge() with a more portable approach.
464 464
465 Added exclusive subroutine time (time in sub excluding subs it called). 465 Added exclusive subroutine time (time in sub excluding subs it called).
466 Added recording of xsub filenames (i.e. DBI.c) 466 Added recording of xsub filenames (i.e. DBI.c)
467 Added use of clock_gettime(), if available, for 100ns resolution. 467 Added use of clock_gettime(), if available, for 100ns resolution.
468 Uses CLOCK_MONOTONIC or else CLOCK_REALTIME. Thanks to Steve Peters. 468 Uses CLOCK_MONOTONIC or else CLOCK_REALTIME. Thanks to Steve Peters.
469 469
470 =head2 Changes in Devel::NYTProf 2.01 470 =head2 Changes in Devel::NYTProf 2.01
471 471
472 Fixed and unified module version numbers. 472 Fixed and unified module version numbers.
473 473
474 =head2 Changes in Devel::NYTProf 2.00 474 =head2 Changes in Devel::NYTProf 2.00
475 475
476 Major changes. Much extra functionality and performance. 476 Major changes. Much extra functionality and performance.
477 See http://blog.timbunce.org/2008/07/15/nytprof-v2-a-major-advance-in-perl-profilers/ 477 See http://blog.timbunce.org/2008/07/15/nytprof-v2-a-major-advance-in-perl-profilers/
478 478
479 =head2 Changes in and before 1.50 479 =head2 Changes in and before 1.50
480 480
481 1.50 ? ? ? 0:00:00 2008 481 1.50 ? ? ? 0:00:00 2008
482 - Major revision to include Tim Bunce's call scope statistics features, 482 - Major revision to include Tim Bunce's call scope statistics features,
483 code/doc refactoring, optimizations and bug fixes. 483 code/doc refactoring, optimizations and bug fixes.
484 - Fixes major issues with profiling code that forks. 484 - Fixes major issues with profiling code that forks.
485 485
486 1.13 Wed Mar 26 9:35:00 2008 486 1.13 Wed Mar 26 9:35:00 2008
487 - Fixed RedHat EL bug - %f isn't the C format for floating-point for RHEL 487 - Fixed RedHat EL bug - %f isn't the C format for floating-point for RHEL
488 Changed Reader.pm to warn-and-continue instead of dieing when a source 488 Changed Reader.pm to warn-and-continue instead of dieing when a source
489 file cannot be found. (the file will be skipped). Feature by request. 489 file cannot be found. (the file will be skipped). Feature by request.
490 Makefile.PL changes by tim.bunce - fix warning on LICENSE key when 490 Makefile.PL changes by tim.bunce - fix warning on LICENSE key when
491 installed by older versions of MakeMaker. Added vim modeline. 491 installed by older versions of MakeMaker. Added vim modeline.
492 492
493 1.12 Tue Mar 25 11:05:00 2008 493 1.12 Tue Mar 25 11:05:00 2008
494 - Fixed YET ANOTHER test failure caused by trivial differences between v5.6 494 - Fixed YET ANOTHER test failure caused by trivial differences between v5.6
495 and v5.8.x. Added test15 that only executes on <5.8 and test06 now only 495 and v5.8.x. Added test15 that only executes on <5.8 and test06 now only
496 runs on >5.8.0 496 runs on >5.8.0
497 497
498 1.11 Mon Mar 24 11:26:00 2008 498 1.11 Mon Mar 24 11:26:00 2008
499 - Rewrote test06 and test 13 only. No functionality changes. There is a Perl 499 - Rewrote test06 and test 13 only. No functionality changes. There is a Perl
500 debugger bug. In perl >5.6 closing "}" in empty loops get execution 500 debugger bug. In perl >5.6 closing "}" in empty loops get execution
501 counts for some reason. This caused 5.6 to fail 'make test' 501 counts for some reason. This caused 5.6 to fail 'make test'
502 needlessly. (5.6 actually handles it better and 5.8 & 5.10). So I 502 needlessly. (5.6 actually handles it better and 5.8 & 5.10). So I
503 changed the code to avoid empty loop tests, which are no more useful 503 changed the code to avoid empty loop tests, which are no more useful
504 than loops with code in them. 504 than loops with code in them.
505 *test06 now tests only loops - foreach, while and do-while loops. 505 *test06 now tests only loops - foreach, while and do-while loops.
506 *test13 now tests only forms of eval, and eval failures - loops removed 506 *test13 now tests only forms of eval, and eval failures - loops removed
507 507
508 1.10 Web Mar 19 21:02:00 2008 508 1.10 Web Mar 19 21:02:00 2008
509 - Another CPAN versioning fix. Hopefully the last!!! 509 - Another CPAN versioning fix. Hopefully the last!!!
510 - Added Makefile.pl check to report unsupported OS on Win32 510 - Added Makefile.pl check to report unsupported OS on Win32
511 511
512 0.09 Wed Mar 19 13:05:00 2008 512 0.09 Wed Mar 19 13:05:00 2008
513 - Fixed broken CPAN version numbering 513 - Fixed broken CPAN version numbering
514 - Implemented malloc() fix by Tim Bunce (tim.bunce@gmail.[nospam]com 514 - Implemented malloc() fix by Tim Bunce (tim.bunce@gmail.[nospam]com
515 - Wrote a better eval test, now covers all uses ("", perlcode, {...}) 515 - Wrote a better eval test, now covers all uses ("", perlcode, {...})
516 - Fixed AutoSplit file source problem 516 - Fixed AutoSplit file source problem
517 - Wrote AutoSplit/AutoLoader tests (test14) 517 - Wrote AutoSplit/AutoLoader tests (test14)
518 - Bugs fixed (hopefully) 33889, 34234, 33991, 33878 518 - Bugs fixed (hopefully) 33889, 34234, 33991, 33878
519 519
520 0.08 Mon Mar 10 17:35:00 2008 520 0.08 Mon Mar 10 17:35:00 2008
521 - Added #define to fix missing linkage for OutCopFile (Perl <5.8.0 fix) 521 - Added #define to fix missing linkage for OutCopFile (Perl <5.8.0 fix)
522 - Added test12, basic do script test 522 - Added test12, basic do script test
523 - Moved min version to 5.6.0 again (another attempt) 523 - Moved min version to 5.6.0 again (another attempt)
524 524
525 0.05 Fri Mar 7 10:29:00 2008 525 0.05 Fri Mar 7 10:29:00 2008
526 - Changed XS code to compile clean with -ansi and -pedantic 526 - Changed XS code to compile clean with -ansi and -pedantic
527 - Removed `cont' on file argument to process due to XS error in Perl 5.6 527 - Removed `cont' on file argument to process due to XS error in Perl 5.6
528 - Added code to Makefile.PL so that header sources are run through the C 528 - Added code to Makefile.PL so that header sources are run through the C
529 pre-processor (if available) as a potential fix for some BSD systems. 529 pre-processor (if available) as a potential fix for some BSD systems.
530 530
531 0.03 Thu Mar 6 09:12:00 2008 531 0.03 Thu Mar 6 09:12:00 2008
532 - Fixed a VERY tricky bug some people had encountered. Scalar references to 532 - Fixed a VERY tricky bug some people had encountered. Scalar references to
533 code that is evaled at runtime will cause divide-by-zero error IF the 533 code that is evaled at runtime will cause divide-by-zero error IF the
534 reference was declared in a BEGIN {...} and used outside of a BEGIN. 534 reference was declared in a BEGIN {...} and used outside of a BEGIN.
535 (The debugger/profiler can't see what happens in a BEGIN) 535 (The debugger/profiler can't see what happens in a BEGIN)
536 - Added test case for above issue as test11 536 - Added test case for above issue as test11
537 - Fixed (i hope) the OSX segfault when using a re-malloc'd pointer that was 537 - Fixed (i hope) the OSX segfault when using a re-malloc'd pointer that was
538 once freed. 538 once freed.
539 - Changed XS to compile cleanly with -Wall. 539 - Changed XS to compile cleanly with -Wall.
540 - Adopted versioning scheme: modules/files start at 1.0 and the distro will 540 - Adopted versioning scheme: modules/files start at 1.0 and the distro will
541 continue from 0.0, thus making mixed versions less confusing. 541 continue from 0.0, thus making mixed versions less confusing.
542 - Enabled the debugging switch so that NYTProf can be used in the form 542 - Enabled the debugging switch so that NYTProf can be used in the form
543 perl -MDevel::NYTProf code.pl (BUT this is ALPHA quality -- may bork) 543 perl -MDevel::NYTProf code.pl (BUT this is ALPHA quality -- may bork)
544 - Minor cleanup to Makefile.PL 544 - Minor cleanup to Makefile.PL
545 545
546 0.02 Wed Mar 5 14:20:00 2008 546 0.02 Wed Mar 5 14:20:00 2008
547 - fixed a bunch of minor problems with the distribution that caused cpan 547 - fixed a bunch of minor problems with the distribution that caused cpan
548 warnings and also cause the exe scripts to not be installed 548 warnings and also cause the exe scripts to not be installed
549 - now a working cpan distro 549 - now a working cpan distro
550 550
551 0.01 Tue Feb 12 10:34:03 2008 551 0.01 Tue Feb 12 10:34:03 2008
552 - original version; created by h2xs 1.23 with options 552 - original version; created by h2xs 1.23 with options
553 -A -n Devel::NYTProf 553 -A -n Devel::NYTProf
554 554
555 =cut 555 =cut
556 556
557 # vim: ts=8 sw=2 sts=2 expandtab: 557 # vim: ts=8 sw=2 sts=2 expandtab:
Powered by Google Project Hosting