NYTProf benchmark4.pl

Performance Profile Index
For examples/benchmark4.pl
Run on Thu Aug 28 19:01:43 2014
Reported on Thu Aug 28 19:02:42 2014
Profile of examples/benchmark4.pl for 22.7s (of 27.4s), executing 12726670 statements and 6898624 subroutine calls in 29 source files and 28 string evals.

The Flame Graph above is a visualization of the time spent in distinct call stacks. The colors and x-axis position are not meaningful.

Top 15 Subroutines
Calls | P | F | Exclusive Time | Inclusive Time | Subroutine
--- | --- | --- | --- | --- | ---
2 | 1 | 1 | 2.44s | 5.57s | Benchmark::::__ANON__[(eval 67)[Benchmark.pm:646]:1] Benchmark::__ANON__[(eval 67)[Benchmark.pm:646]:1] (merge of 2 subs)
405857 | 1 | 1 | 2.07s | 2.41s | NetAddr::IP::FastNew::::new_ipv4_mask NetAddr::IP::FastNew::new_ipv4_mask
2 | 1 | 1 | 2.04s | 4.96s | Benchmark::::__ANON__[(eval 101)[Benchmark.pm:646]:1] Benchmark::__ANON__[(eval 101)[Benchmark.pm:646]:1] (merge of 2 subs)
432500 | 1 | 1 | 1.88s | 2.09s | NetAddr::IP::FastNew::::new_ipv4_cidr NetAddr::IP::FastNew::new_ipv4_cidr
2 | 1 | 1 | 1.88s | 4.93s | Benchmark::::__ANON__[(eval 135)[Benchmark.pm:646]:1] Benchmark::__ANON__[(eval 135)[Benchmark.pm:646]:1] (merge of 2 subs)
527528 | 1 | 1 | 1.79s | 2.01s | NetAddr::IP::FastNew::::new_ipv4 NetAddr::IP::FastNew::new_ipv4
47820 | 1 | 1 | 1.57s | 2.85s | NetAddr::IP::Lite::::_xnew NetAddr::IP::Lite::_xnew
527528 | 17 | 17 | 1.48s | 3.49s | main::::__ANON__[examples/benchmark4.pl:10] main::__ANON__[examples/benchmark4.pl:10]
432500 | 17 | 17 | 1.24s | 3.33s | main::::__ANON__[examples/benchmark4.pl:12] main::__ANON__[examples/benchmark4.pl:12]
405857 | 17 | 17 | 1.12s | 3.52s | main::::__ANON__[examples/benchmark4.pl:11] main::__ANON__[examples/benchmark4.pl:11]
1771742 | 3 | 1 | 776ms | 776ms | Socket::::inet_pton Socket::inet_pton (xsub)
1413702 | 22 | 22 | 502ms | 502ms | Benchmark::::__ANON__[Benchmark.pm:687] Benchmark::__ANON__[Benchmark.pm:687]
106942 | 3 | 1 | 484ms | 531ms | Benchmark::::new Benchmark::new
4 | 1 | 1 | 463ms | 3.46s | Benchmark::::__ANON__[(eval 33)[Benchmark.pm:646]:1] Benchmark::__ANON__[(eval 33)[Benchmark.pm:646]:1] (merge of 4 subs)
47822 | 1 | 1 | 350ms | 401ms | NetAddr::IP::InetBase::::fillIPv4NetAddr::IP::InetBase::fillIPv4

You can view a treemap of subroutine exclusive time, grouped by package.
NYTProf also generates call-graph files in Graphviz format: inter-package calls, all inter-subroutine calls (probably too complex to render easily).
You can hover over some table cells and headings to view extra information.
Some table column headings can be clicked on to sort the table by that column.

Source Code Files — ordered by exclusive time then name
Stmts | Exclusive Time | Reports | Source File
--- | --- | --- | ---
1798406 | 8.59s | line | lib/NetAddr/IP/FastNew.pm (including 1 string eval)
1413715 | 3.95s | line | examples/benchmark4.pl
7503331 | 7.03s | line | Benchmark.pm (including 23 string evals)
1578152 | 2.11s | line | NetAddr/IP/Lite.pm
430541 | 994ms | line | NetAddr/IP/InetBase.pm
185 | 3.47ms | line | Carp.pm
31 | 2.69ms | line | Socket.pm
148 | 2.31ms | line | AutoLoader.pm
381 | 2.30ms | line | Exporter/Heavy.pm
160 | 2.15ms | line | DynaLoader.pm
259 | 1.85ms | line | Exporter.pm
46 | 1.37ms | line | NetAddr/IP.pm
52 | 1.25ms | line | NetAddr/IP/Util.pm
184 | 982µs | line | vars.pm
129 | 919µs | line | overload.pm
59 | 857µs | line | base.pm (including 3 string evals)
52 | 726µs | line | Config.pm
23 | 643µs | line | Time/HiRes.pm (including 1 string eval)
18 | 579µs | line | Socket6.pm
437 | 531µs | line | strict.pm
33 | 509µs | line | lib.pm
295 | 396µs | line | warnings.pm
14 | 324µs | line | overloading.pm
6 | 91µs | line | NetAddr/IP/Util_IS.pm
18 | 25µs | line | warnings/register.pm
1 | 2µs | line | auto/NetAddr/IP/Util/autosplit.ix
1 | 2µs | line | auto/NetAddr/IP/autosplit.ix
1 | 2µs | line | auto/NetAddr/IP/InetBase/autosplit.ix
0 | 0s | line | XSLoader.pm
12726678 | 22.7s | Total (-8 statements are unaccounted for)
438850 | 783ms | Average
| 982µs | Median
| 0.00096 | Deviation