This is from a perl5.7.0 (well the current perforce depot) compiled
with -pg and then run on a smallish example of my heavy OO day job app.
The app reads 7300 lines of "verilog" and parses it with (tweaked) Parse-Yapp
into tree of perl objects, messes with the parse tree and then calls
a method to write verilog back out again.
It isn't your typical perl app but it is one I am interested in speeding
up. (Maybe even in perl5.)
Anyone surprised by the top few entries:
Flat profile:
Each sample counts as 0.01 seconds.
% cumulative self self total
time seconds seconds calls ms/call ms/call name
7.38 2.46 2.46 21899 0.11 0.35 Perl_runops_debug
6.24 4.54 2.08 4236752 0.00 0.00 Perl_sv_setsv
4.77 6.13 1.59 2504451 0.00 0.00 Perl_hv_fetch_ent
4.77 7.72 1.59 1185614 0.00 0.00 Perl_pp_entersub
4.29 9.15 1.43 7665411 0.00 0.00 Perl_pp_padsv
3.54 10.33 1.18 3560912 0.00 0.00 Perl_sv_upgrade
3.30 11.43 1.10 2957237 0.00 0.00 Perl_sv_clear
2.79 12.36 0.93 2192866 0.00 0.00 Perl_leave_scope
2.70 13.26 0.90 5833600 0.00 0.00 Perl_pp_nextstate
2.49 14.09 0.83 7528270 0.00 0.00 Perl_sv_free
2.28 14.85 0.76 1050070 0.00 0.00 S_method_common
2.22 15.59 0.74 9310671 0.00 0.00 Perl_pad_sv
2.01 16.26 0.67 1460489 0.00 0.00 Perl_pp_helem
1.77 16.85 0.59 2083856 0.00 0.00 Perl_pp_rv2av
1.50 17.35 0.50 1682859 0.00 0.00 Perl_pp_rv2hv
1.32 17.79 0.44 3708512 0.00 0.00 Perl_pp_pushmark
1.32 18.23 0.44 274452 0.00 0.00 S_regmatch
1.29 18.66 0.43 445172 0.00 0.00 Perl_pp_return
1.23 19.07 0.41 513143 0.00 0.00 Perl_pp_aassign
1.20 19.47 0.40 876634 0.00 0.00 Perl_sv_2nv
1.17 19.86 0.39 406441 0.00 0.00 Perl_pp_iter
1.11 20.23 0.37 292595 0.00 0.00 Perl_pp_match
0.99 20.56 0.33 777388 0.00 0.00 Perl_av_fetch
0.93 20.87 0.31 946209 0.00 0.00 Perl_pp_rv2sv
0.90 21.17 0.30 666441 0.00 0.00 Perl_pp_leavesub
0.87 21.46 0.29 739312 0.00 0.00 Perl_pp_enter
0.84 21.74 0.28 2552651 0.00 0.00 Perl_pp_const
0.84 22.02 0.28 624328 0.00 0.00 Perl_pp_padav
0.78 22.28 0.26 613095 0.00 0.00 Perl_pp_aelem
0.78 22.54 0.26 611990 0.00 0.00 Perl_av_store
0.78 22.80 0.26 271953 0.00 0.00 Perl_hv_exists_ent
0.75 23.05 0.25 890560 0.00 0.00 Perl_sv_setiv
0.75 23.30 0.25 352878 0.00 0.00 Perl_hv_fetch
0.72 23.54 0.24 812630 0.00 0.00 Perl_av_shift
0.69 23.77 0.23 1533815 0.00 0.00 Perl_sv_mortalcopy
0.69 24.00 0.23 1077589 0.00 0.00 Perl_free_tmps
0.66 24.22 0.22 1116474 0.00 0.00 Perl_pp_sassign
0.63 24.43 0.21 2364080 0.00 0.00 Perl_push_scope
0.63 24.64 0.21 1518141 0.00 0.00 Perl_pp_and
0.63 24.85 0.21 973339 0.00 0.00 Perl_safesysmalloc
0.63 25.06 0.21 714053 0.00 0.00 Perl_sv_grow
0.60 25.26 0.20 1353534 0.00 0.00 Perl_pp_gv
0.60 25.46 0.20 499163 0.00 0.00 Perl_pp_leave
0.60 25.66 0.20 328362 0.00 0.00 Perl_sv_eq
0.57 25.85 0.19 2034488 0.00 0.00 Perl_pop_scope
0.57 26.04 0.19 812393 0.00 0.00 Perl_pp_shift
0.57 26.23 0.19 635329 0.00 0.00 Perl_pp_or
0.57 26.42 0.19 270181 0.00 0.00 Perl_regexec_flags
0.54 26.60 0.18 1636750 0.00 0.00 Perl_save_clearsv
0.54 26.78 0.18 1043850 0.00 0.00 Perl_pp_method_named
0.54 26.96 0.18 404016 0.00 0.00 Perl_amagic_call
0.51 27.13 0.17 1148905 0.00 0.00 Perl_newSV
0.48 27.29 0.16 2159235 0.00 0.00 Perl_save_int
0.48 27.45 0.16 2125024 0.00 0.00 Perl_vivify_ref
0.48 27.61 0.16 65311 0.00 0.00 Perl_pp_enteriter
0.45 27.76 0.15 387333 0.00 0.00 Perl_pp_push
0.45 27.91 0.15 304028 0.00 0.00 Perl_sv_setpvn
0.42 28.05 0.14 92967 0.00 0.00 Perl_share_hek
0.39 28.18 0.13 777688 0.00 0.00 Perl_pp_cond_expr
0.39 28.31 0.13 110898 0.00 0.00 Perl_gv_fetchpv
0.36 28.43 0.12 239937 0.00 0.00 Perl_av_clear
0.36 28.55 0.12 55061 0.00 0.00 Perl_pp_unpack
--
Nick Ing-Simmons