Mailing List Archive

DProf Oct7,1995
Here's a new version of DProf for Oct7,1995. This replaces the Apr5,1995
version.

Changes...

DProf.xs, DProf.pm:

VMS patches from Charles. The tmon.out is now opened in the XS file
in BOOT. Documentation updates in DProf.pm.

dprofpp:

Documentation updates. Can now print a compressed version of the
subroutine call tree. The new default switch is -z; I used -t for
the compressed sub call tree. Cleaned up some handling of exit time
stamps.

Added a test suite. Well, a framework for it, anyway. Handles some testing
of dprofpp's -T and -t, with and without -F. So "make test" now does
something useful.


Dean


begin 644 Devel-DProf-Oct7.1995.tar.Z
M'YV01,K8*<.F!1$H<MZ8:?%D#)T;+F+DR%'C!8"+&#-JW,BQH\>/($/"@$$#
MQHT:-0",E%&#Y R5(V/<F ESI,V;*FW F%&#Q@P8-FC&K&%#)H"4(9,J7<JT
M:<@Z<^B$D0,S81DT<M*,0>-T8QTS=,I$[<KQIHP9,6K"J'$C+=FW<./*G4MW
M8\"!!0\F7-CP8<2)%>E8K$N8[,B2)U.N;.FSIDRA-R/#R+FSY\^@-F#&T%GT
M:.'/H#]"E4IUI%6L6KG&_1IV[%RS:-6R=1NZMNW;H>\2-(A0(4.'$"52?"'8
MB@LX;7#CAA%CI T:-&"R=.EXY@VU-F62I,S3)] ;T6/:L"$C[63EZ.6.GEKU
MS=6L6]6#%4N'+FSS-F>GW\^__T8X88RQ1AAGE &"%3LHH !4!AY1!AUOP$&'
M#CI,00<9()Q0((02SG%"@AM&2,<<*)Q@!QPZG)!"@@K(448<=:3A(@A%X ''
M&W*$)4>"0"0Q11 @])!AC3?F6(8<'RH(1!%80/&$%%0$"4(<=Z AEP[. 4'
M'""0(.(7=G3IXAQUL#%BEV786(9#96#H8I%T@ #$F&6>N:("2S;Y)!5?/+&$
ME%1:Z<8;$*X!PAN&DN!&'6V <*<";>31Y1MUQ"DD# DJRJB4F"I IUFSB$E
M"6G"L698& IY0I(DF"H'&Z-^R24??'3I!18L9IF&&W&*P(4;KK*A0Y?!_BH"
M"&F8,:F$8":8K)4A@-""LJT>"6L*>UR9AH$B7('&D66<("H4UOYP;!\*DBG&
ME5DJM"4(>RB00*1=SG%'&G1L)9:4<Z"1+!TL)A!A&6Y8200+((A0[:L@N.#"
M"UAJR24)]N*KKZ@R^ #"D7* P,>Q*7A<ZQU3N9$P"3 ,.T08;IP0IQQUN.%"
MER$8FV "<XI5IZA"\D"$#S>/P<8;<QA(1, #%PS"P0GSP#'((H- LAPF*YPR
M""NW'&?2PY)0LQLBW P$QU+Z#+2\0A-M],UP0(6&E3F3&2K"8\O1<<C)RLEQ
MP)_J'"J@<>P1]\Y]W-RWW&?VX <(<[SP*PB.N_'"&6T8#NJ(":*K@+H@O(EC
MG/$FH&FC0O;[[\WT4ES'NJ7["Q;JDI* !]]X2&F"ZF(87OL/()B * C#FC!H
MH9FGN_JAAH:^P@I>5LIV5KPF_/OH+X2M@.:<#_^[\LQ3"K"\ND8OPO#(=[EH
M&]7?_.RR=(#I:.@)A-_KKU+X3<>O>QQ.N,WRQ@]]KT0Z59OP1RHUL8D,?>!?
M M"EN2(X@0CP H'\$F8L9%'+>R#0G )BD"#_-$4W>>D-7X#SE^$(IC5TB($+
MZN-!N3#'.="1#F->DAWK8,<F9S&/3KIS&?!HY@8R.(E*6DA$CZRG-# X#7Q4
M Q?6T,<^.(S-3?13Q"I:,2Z<,\,;W@ O\/TO8;MBW/&T^ 8%BF$J*+@3]HYW
MQHZ%;H(B""/GVLB_-:[KC'KHHO]VU2LYLC$,>C C&N^4 #*FL7@*:.,A$PG(
M11KR3E>,I"0G2<E*>A"$O-G+;_PBG, 0ASXR6*$ED_)"H,1P,=2I(60D(P.=
M<,<RWU$,<V[P$_.,TC]';,][4B,?%$)Q)5+,3UMN2<Q(9G&+>H2C']=%1D'*
M89%V!$$;D_G%.)ILCE.IH_'N"$AJ\A&,U_QC(,%V,T42TISE'.3-'HE(=#+R
MF7?"HR.WN,ABVO.>^,PG73"I%]_T)3B (<XGHS(#4>H3(Z5\3GA@,)W&J/(Z
MDEF)0W<(RZ#(4B8_H>%!;9-+T[@'-?%9S7Q<X\(HXF<D5-RH2D%S3"Z^L9K+
M!$$SR2FO-.$+!3 XISJOMTUI3L6;XHLI'6D:33P"M8_AY.8XK9< =Q:2GFI4
MD#OE>2=V*F"E6,VJ5C?*3Q%N$J F'&@*76"'E2;TE R=8756&1FBT)"BWL',
M#]%BRZW2I:-)_.@2>_G$UYA4-L.TJV"=,@()6DM!##H0BR+F+CA8Z00MH,()
M')6I4@DP55,*7! J]08FO"$,9#@2A=+0!CA!*@R[HE ;3YM:'>!1 2"(;1M0
MZP;53@6VLJ4MA<B(V]CFMK6KG6UK>>M;X=;6M;<M7(O* "<0Q !AG,M6 4UU
MP(W%04SV$Y5R%<!8,VRI1)$U@HH2Y+D<@4 &T#V>="U;W1=A%W':76R[O.O8
M#+6 #I.]4WGC-(/TKFN]!D25==^[LPS*5V+@I8-X]<O<SX& !OZ-X'0O.V#]
M_4VY@]5G5S7YSQ)Z$H6A+*M*S[K0AM(P)C:,:'-F\-;*Q/4&F4%Q1H>8X29&
MA3T>W65(FSA2%I84F"==2V!K3&2/%#98B"V:8A74W>_:5[*4]11[!2RD.&B6
MLYX%K6AU0%K3&M>V<F#M<8.K6^3JH;=?1FZ8BUOFU;(9N+=]\W&)Z]O?COFV
M::8S"-*\6N7NU[D1!C!U!>Q>"Y]INTUV+&2IL&#R-MB\Z!7C?]$4X#95^'+Q
M9?)\G0Q9_$9YPM6M\I4AE.70RF&TI?V<F,$, A3( \I6+69T=SFGZ)@!K"F
M]7"WV%LY@UG6>N9S<AW=W/Y*6L)3MG2A,6U@32.XTXU>;G,A?&Q!4WC9V6UV
MD;?-[6Y[6[ ;]B<).RE0%!94Q!LEL0Q3B6*V9L<D,GCEBV,\RY] ]-M+P:L2
M>2E27_H5R("E#;Z)?.3#+DC)"')V8Q\;V?Q6-@:C2C9FK;R'S9+ZLZ9&M9=K
M'69AG]G7:M;UG'GM<6#S^@A3$0,;+#W?-*P<6:)J0QKF,(==G8%Q;VB#@6P:
M)SJ0UD W+NT<=* *LA!4BZ"F1O<8'-V24QJ^$*#M(S@@NL1V\'/K3:E!ZWL
MZQHZT]S=M*+#.UXIRR#BE9[XJ#N+\2UW6=7"[GBM/V[G7X.<MT8(PQJ:?G:>
M@\#G.@^Z8^>0@JK[^=%QBG1TMWYMKS,;T6)GN*?O!&HJHXF#TG:PL1</<<@_
M^[[1KKREA40J&5S=O-1>O.@QA&WX:GO@L(^][&??D7"/D),![:<97("'.6!5
MW:AT:+LA&ID8T EBH%K#Q<JD_+4E?9>N3$2][WCMSB1I'&Y3\"A+]@1[$IH
M=0AMPIA$A2)(P0DN0(,(%.!]-X!?_"((5OK7W_[.W<PL+4ZB"$.:OH!>H@/U+
M(Q $02&Z)RT@$ 8@0"X,,P9O('XMMW)A5E@@< -OX! 4P7X N!4L4R"-(P9U
M< :B8@9I@ >65G/N9R U$ 990A$@,!!R4'-O8#(M0 9M<&H *"V@%5H88@5-
M, 42% ;Y\BTAF!"-,@1H,!4K-P?[.=X,M,"AW<"BF8C(/0P=M$(,N@$%A) 1/
M\ 144'6%I8%NP($OX($@*%,C6(+?9R RH()RP((N"(,R2(,V*(%-^ 9/.%ML
M,#1CT'0LLS%X0 =R@(!BD =A(5,X\G?? @)< / $VM?>(1A*!9C^($A>(88
M8H)C8"#,,5MM6 ,M>"1P*"UR2'1T&!70<P;)LBT8PH#BYR+*,G,@P" 8HD4=
MXP9AH'.'HBPL$X-Y4(50(6E>&%LM\'UL$'Y )Q7] @*VB(OW0@=29XHVEXJ6
MQHH&XHK!*"V))7]C("Y+(P0F> 8OQS(80@3>N#K76(=/"!5--P8)H7=I=(!N
M@"%34S"%QX1P!'A' G.' C;25 :T:"!T4 =4TW3XV#%6R(2)-0=A8 ;^Z")E
M\(Z[.$A5E %JY*%,.F4;GZ")L("DQF(!-\'=<U"YVD ;B9P9E BL XHS*>(L
MR454:(7><XX3Q#&#8D&Q:(LJUY)2DQ6%^)(R$Y,9"(EB2(:52(*7F(8@L!,,
M*09N"(IIT)$S6(.D*(P,V 8ZQRMS$)0;*(E$:89&R3A(B1:A-08Y0 .?^()/
M&8=2R80YR') >#$6F7,@$ 3QF =$X(4*H (OT'\J, *A)8)N8#1"< 1?D']"
MX%P)X'\@H)<*X']^Z8^[(IB$205)T 3FAYB*R9CLERQ_V8V$:9@W^)>1Z9F%
MJ7]?X 1<F 1&D 4H$ 0L( 0A,X]6XIH@<)B.2!!%$YJ0&9BD:9BGF9JKV9JO
M&3*0HP+*2"C^$H:+N9<C0#!DD"P*XGUFT)GD.)F5:7ZZ"9B2^064:9E2\)N4
M&9Q!$)LE,YN.PGZX60;9.9K5R9W7^9VH&9ZL.9ZQI9C#DYPWQYC-&8_0V9C&
MB01:$"1"DC8"\G=:L0:BXBJ,LR8QB"'ZR9G^>" ]N)Z\":!8PP1+P)U#L 0W
M2(S&" (\('TK1P?IIS'%*4$) 2%TD >F8H@=,P=Y, <DL"& ]XZ,Z5L$N@9?
M$"?=M:,_1R*F6 <.\7=M("HJX('>!8@A$SHYNJ.=\R!V$ 9L<#.*Z2!Q0C)Y
M:*"X*(X@P(!NX((]QT7-L6>BPD='$J5L("H0(B^+B:(-**0 F8@N$I!4TX)2
M6@<&TEU^.&A&RIRQE3>B&9AD@ )?\ 5$4 1#, 0A8P(F<"6[:6F$^@5!P 10
M@ 3C>8-_ZG[%*'X\P$=S4*+R$B.\\APM6*3X>#-?("!V4*11 :0Q.J,/4J,F
ML*I1\7,I0$BTBH^0(R3-<1,W,Z=H*B6Y^G.]DY1X< -FD*S*:@8)(H'I*2^*
MB0)/P :F!@)H\(2'. 9C("ID$(,N8ZUA,!#P>( 0(G-C +/T0)B@"]_QZ)E
M %U<= ?JF0!MJ@8?"(X&,@,RH*[LZJFMQJ4(: 9# X0A R%N2@9P>H!:6@9.
M>CEL:IS-*'4RQW1X" )#0W,5N2NT.%L^9X4APY@),#3*^4W#JG-;( -=P (N
M8ERFQ@+/.9)S<(B\&AFHJJJL.B(H *,R2J.DA0(H$#,U=P:":K$Q>'/?I (I
M4+)E<*LWH[1;$ -=T#N7<JS*N@/U:9Q9(H#1\P8N*+!VB"PF4P1$D 16L)SR
MDJIK0*NMB@)LD 9B0"HOBP(F\+(SAR,LH+0LP+9%"[9Q@K0F *Q2R@)_6P8L
M>R1,>X/."9V):9Q&X'*P$D;.>(PP,Z14*"KJJ)R1BS50P@2=XSVC.3.@"[+X
M2"(H0 =(RI!RX*1(BZ02(@>$-*<":3(HT*1T$#* .Z6]A2X2&*@&0@4_B@*M
M&S(HT*.C"[.Q*>IMIJIZ[.^Z@@X+N!9[.RNVVK%&[.R.^*=F$(\1"J"8:D&=.008
MJJ$<*H%UQKL@8*'>FZ%4L*';^ZSBZUOD:Z$ZL;[\:0:(.[_H:;^;(Q4^=ZY3
M4+;&.06KLP.+*T%O8*8=8[ D0(X4PCF,>6/["P)&D 1,4 2+Z5T"K)@W8L @
M2:0P62EF^'*:J9A%X(*$B)_ZZ($NMS4F4[PR4'BQ-05E8"#X$G,L R %XJ(*
M&UISP(YI("%I"5O&J1"(")"D97.?"L1[F;] J!7Y.[D]5Z3^HQ!?('UTP +]
M,U]?X)PLXL!,3+L)D !R@,54C#"*21 J6#1N,I&P@H\( [D'VJ?]$\9[.D<7Q
MR"(QDY9N:@9?P#*2PJ1ZJ*-// =?4"D_9[.4G.@9ML[.",$X5Q$D8,\J( DHEF
MFP"T2Z2"7*LZ9\B*B<AUH,ASP,A@RS@Q&A:- K*5[.")2>JJ^5<9L<,:6ALIK
M_'-MO,)O/,D:V#$JL(QE<#,10HT2M**FDCDL LQM$J%WW)%8S,<)* 5/8 1!
MX 19L,7ZJQ7+W,S/G 4)H +S=6,"DB!<?*Y\%,5FP,TZ.ENUPZLR@ />/,W@
MS"OB3,Y?,(*<PB)*_,!V4,!DH !8S(EK8"42XJ[GV<L-:"#_',P*$#I!2KE%
M^G=!\\<-J\:GBC9'B,NZC##:; =!,]&+B09VH,LW,P54( 43[ 062S ?[;]S
M@-$*D@#KL\U2(2#Q7#LK *>J#$N'2#E' :U@RU7O!?P;,Y2<M,P#=3&.0.0
M<UXWDP#U$YA5DL?DC#!"G=-X@#!0P,S.#,U1MD K#<NZ*B3.*Q9R6[ML$R9"
M,@5V 568"4 + 8(LW(F\R@L;09J;0?,O 0HL-8AP]-?K)A!0 >D+"$;/%MK
M8"!#\ 2'^J3CS#AM>P9H0 <;B2RAQ2NI& 8Y*4UYT#]MZJ'/B;G?(B,_*" $
M8B"Z7'5?/,D)D-)2<M=6@+1F+05IC==)O3ZHS:@@8-94D 504 0Y:P<ATP-E
M;07M@]9#4+9Z_<4<K<M2@@1VX 1!8)DH, 1V -)!, 5(L-N'^\4A2S @L *E
M XAN;27'S9*.LMU(?;7;?7:T"#PI L?]@RY?G)YZ],7L^%G]G# %N,]3T<\A
M<[$J+$9;HC884MB'[8H@4 *?:BQ0'2:$I-5?C-Q",KL:C;0*R9!XJ(=6XM9M
M6G-Z4 8* >%3$3(S#7$+;HJ(G >"PI(($]ZX..* . 9 >.(ZAS B0"$@D]0D
M_N(K&>,2I. WX][I"3\.WFJWO)@I,.&$*Z467M(F8YP:SN%R?<L@[EQ9?=HM
M#@<FGN/ONN-9K3GO_-)KL 51'=/+TP7'0<Q!3<S/HQ#D#.8^[>5BO@)D7KF#
MW-5_MT)%.N>%[$5J[N5LON<X_>9Q?N>8;"!"0J)R/NAI/LY\'N8C..8NP-7$
M*B20GLEZKN@XW>>6#M.-#N<N$.0>S5/U3,WW3)+Z/,<NPH!R,*AZ/>2YS)+J
M$SUGI&27PLMPX,L%O<MHX]"!C.>43LFZ;LE3'-&^7H& _*2IG.?0:IS>I8])
M8VF0FXA:R(4+ZA!X#++>]3]R[5TR/@)F\ 1R0 5Y0 5W\ 051$C7SD?9#@<R
M3@)HH <]4 )DL ,(7KX!:N[RD^[;/I=9BJ9X*BI382"H.! F$T8 6N[K=.\H
MH.TG8S<QP^ME\.[4:K6?HG3!_G,0'^]B0O$Y8O$E0*T(WM-2[)QV+LB$C(LM
MD,?!/A6&?N<E_ZX@K\<B?^BZ>O)B3!HK?\EL',=8[)P&*,=23,59?>Z\@N\)
M P5! "4R8/ K?0?^LG)6$NL&P@-.[>;R7-RW'M1M?NE0[^BWGM1RWO)8[^<"
ML@5;S^E?+^P)(/.1/O5:'P9%X^AJW^M@#-%K']5D[_9EX.B3CNL-+MY"8O=E
M3^:?WC\5$X3^;.;%[>)*]@10\ 43' 164 2&2738+?1T@.\B</(=CR&;7^#4
M6N!S\/'8G?8LS\; /N@(L_<(@]P+WE2HO 9)K?@&POA?X$#E)P63WS^%A/#:
M+@(SW?G __D&+OK8??:R?/JFK_I8/N6N/Y&PWS]_&09U0OE?;/F8+T(NEX\Q
MLP9.:#+SU:4#7>!D,.^WON#N[=YFD#9%8R7+'E7L1[ZT^ 6PO)G3&:'Q/_\*
M@'\H@'^&*@13O#JQ)G20 ?QS]([ %+@99.!))($CT 2.WA+X:%! 6@@)?$&X
MYD# :$^^*3ZI)M:4,/!/-U(7*,# I8!Y9];0VEU;':LO#.2U@)'2IMB#2 -V
MP&!X(YNS<A &(UH1)^HY*:3*1H[ 4AA:.2U (FV)IJ.9Q-D7X&=6@O;9/O-C
MF+(:%*@"U*T!2@&[!@(4( -T@%$&?%B+5(7DIE@,K&TH$ 0<@<IDF;*@$42"
M5;#Q/;[(UP0)R10P>D<@""0!)W SGB 5$ )!8$/]J@<1NQ#)?GI.RD(QW3\U
M9K;H7V="(39GI34!PU8%)IB4 "$$2(1\,:.WH8+ $:!@0H(<K;11E\].V^I
M 0[#!<2:20@%!%P1(#K0SPI*P0?8/Q33&Y2 R(*46<#8TI8PQ" " ;UG=;P+
MD)4 ,*!ITH#!J0/Z('($ D4@"3QKKRT,VJ(5N-).FQUP@3[G"Q)#&ICE;J#5
M4DPZD+*]G![XC8"@$(0#1#")?3'\)@?JFQ)T K>O#2:U)Q@%'6 2E (+<!6:
MP?BQ!5U<'O*":BT,CL$F4 ;AVAG,;TE0#18!R"?Y],^4>X.64 [.2P59HG.P@
M'M2#M) ,Z"#+A@O5Q2Y,8G\P;R@F1*B<--,B) *-$!,&(+P0"??"),R#2\ 2
MBD1(J -TCX+@A K @1"!-"(OH$ I-&RG4%[X/)@7CZ3$5R,1)F#GQ2-"TIZZ
MD_D!3QL0!8@ [ >!%E;'@$4*8?<8"T*"Q4X=CE!U+"+:40'*Q]3TGPA08#I
M78@ A,'_R-'_8VL?;&E]M.,A)(Y =$MKQ! "K 3A=R$V!@02"XB>C"PO>0,
MH2$,E('=L!I2EAPX<[2A8/*!^"H(AH4AV!'%X?I(>%Q"2&B1*&0E1(!/ND*5
M8BPFC#L ,GJ;D' "C9!SC4)*UH[ZV5<4(<,B9AC&#78'>!) JD(_J5(@#)K$
M180$O)MWM-$,.H$RT-1@ %3+>@+B-XH]J4;5K-HURVI%\3TAQ>"T%/="]CM@
M/^<IB@HK-!5_5<U3>3[.Q=P7%.4;%( GWD22VYZMXF!= !1K0&[. KP">ML)M9
MXFYB@@Q@*/*FAUR4Y\ 3:,QWQ CZ1J_P&Q[.C;WX,0PDF*&7(W,>5<O*(!)?*
M7"A$C%# JJ, B 0*@/#@@J@@3J ,(Q/;6,NS@4PG!<9H /TE0X@"MN-H8P$
M!6 $B-"P$ %!8"N0EMKT!M! 8*(#QX('! @T,">(!A!R :6E#+2 ,S 55&08
MPI%PX RX@-#B Q2 QCAY0 (2D0%)X8R:SAV@%)]/#*BG(FFBZHS3:2P-PV&(
M(L/R*G985@!LC$,.[."$)T0)$1 L01V=2#I2A4&@DC:1O<49 *+8\H#A%T*R%
ME^QA5RKJ##$N"2MD$47$$M;B77 IID<PW&1LR5QW$K#!(L T<[.X%AF 94BI&
MT4D.%AOCA-MS5#IB8EF:6YBY3D H/ &&$@IU+)FA(!QD6!@632 &(0R6<"&Y
M1"?9D#J !N" #WEV5D I(9$F,F&D2'_1*(1 BWR1,7)&UDB%1*)RY([LD?@)
M2 I)(NDFH8 +F (N8%@@ 7#!C>C%"9"2?BT?P4F3<9]LSF1I,M:"<? PP 8G
MXT02B$5*9DUIC (1F )1(9J30\=-NLD1$ )> %20 R] #TFI,;0K7@"2T1@D
MP(%8@3V0VT1:#2!'?4!*G(#$PA)USPY($AHC3:P)6X$%$ 9D(0,G@&X4P(1S
M50:DQ_R8 R<\=AARHWN.0W(P*[U*H:P;X<,>B4];B0$P,S[.&DA^R&2;#>?"8
M^5'',!'KTV-^R7\,,BD%9.J3PM(P18@!0D *"%;8.N<(@6X0!;) -0 #/:*M
MU($HD5="0R<H*:6@%>2)WA >BTIS2!A)J"G0 C32@\00[2)W'*<G-*(H)6:,
M$\A-2H*K>+1R,$08P3_!" P-):LI@KX2)M)$,8 3-26T!)5&$1-Z4J@.0[2*
M._ H>R(*^WPIR46*M_1V&;V'5HI$5;,,]4VL*<F44AE@2EW3*17.M42'KN8E
MRCEYJ@))$TIT.&OADX(1,@(%N0";T#HEHJ5I 4]H>.BDKE0TJ%U'$F(W(I]-
M3<PYB32G)?*!DDPLK8FR=)9"$=B<2@8H>$HCX:D@7 3LG!$U8':.!!;1 [.X%
M:($XS,TRE4H!)"Q:HM$\>4@S7"Y-A? <%43WG$AD .),@2R FJ# %/ 1*ZU@
M,H&#*01Z@ A@F.2S)"J$';!^$D"I<##ZDW^NM&#AB6;0WZ$/QX$-N$_O&3^7
MAN0; O 0"E"F)^ $%(2$-!H!U'SNA<\V(&X8+$J?"RC\S4DY,#.:E[\0%?<B
M2S&@/'0J%(#&PA$<"X]UI,PE,>_BJ%1D0@R%PHI$:2E[HA!#E*NC3*VP(T0'
M-L>X)%&Q14+"HALJ!W)H1W)Q)D-N^DF#%5HRY6AB>JE!TB0$0A:8_)V+.#@$
M*1%5H:B@R :EO]@*8M1SE=$#-".DY#I"<I9FC6Z-^2 SHN@+M:%N8&,ML2O:
MAZ14S.I'Z-+2&"QV-)$*41_JH82L(YV!0 0'I,X1341$U(KU"SO4=-3%&/4Y
MO,ELCDK3 0>.6-'A(HFE228HG!;:]F0"[8$$8R0E!#=PE>)$E,H*J[$-C 9$
M6C3"U!!3 %HD#W%2Y<3O(&3^-#_[DQSY3P!*$D7H "V@!]2\O%(AX$%#$M,T
M$$)47'[)EQ$S]F2PX%M'(FOI"*BCDC*7$. !,TACA!8RA(K"T.9H1ENAA7[0
M//8<$ZF:2D3K]%XU'32P11!4"YT"+LF:LL^70T050!+@ 2@D@FJ,S!5,A\:]
M4$Y5:;;TQ$U:)FRA@9!%J) >OHH&BB$2*AR0H K 6V@W1/E$'V@5W14/\IX2
MM&O:,6(HK$!8I<6;7E.P)4A'I0(P6 $K^W4I/(HA#FKEK!0^0)YBTCJP)=J6
MI3FHB6:A;A&EV8>T*!H#28!41XC3/4E%K:C) *-P=(HNT3@Y)X6J@6BHP_3F
M1%1QI !<*HKZ)@@R0C@73^1)Y>B^P*I29XNJ4:+1<WY.1DTTU?2L1H]'2H)\
M*!Z;I"K(DBH+)"H&/FED4J)[DH@FTE\*5A^J6,TY$I4,W%6Q(RVH@((8 C$(
M<>Q)$9!HCH5$M6%?]1 AIWPD(M*2*7V?W[,V50$#J""2@+)(FOIH5]RSP2:/
M]*0Y1:=W0&.@@'EDQ$*&P"(00\QD%,T1ZE(5@(M++ BHE:E) P$C6(;/65$5
MB;>&(37%1>2F_&@3#!+_Z)\Y@# >)RB5*3'#=[H![@J/,(0. T1""D*\H)VZ
M= @%(M4Y;D\@;4I),5P5 H-L J@%5I"A)P4G_%U/9$A 2+Z^SGYW)@Q6YF*@
M+0!.@*(]DU^;3MMBHT"(1/* (L #S(0/0+ *]@4!@84$'\) I],*+=(%5"4*
M>P;H@ \(JA,4?LK/(D#!)M44> (*@@GP@&#A Q"&C$VJ"(.%Q1H%T -\J(*(
M9"54,+&(PB)%107G@$5OHI5E(ELH*?J0!_2:'6DAC=,#RU)/V!89$8!(!9D*
M,E!U.$=T83][1'P,"C?@ >.B&$ !N&,$TA31$1CG&0@H+-F0!QZFP*@8F0LX
M=*=QS4J0#%XQ%0*1I"AN&]9VX(ZDMF%[.7$U)7O"#!" @(7$[U$524[2&5G,0
MV1=Z;&!18"IFYE4@=5*;1U2[[/'H@=D"S,*1,5MFA0 YTB;5\T7$B!E!!/*
M+2HU1X)'U%<S0"%\!)"H,E6BU;[:MN.Z6(08N+*F2 6-Q 'D3)F5@L \"\J7
M1BY@^@:$J6.U4\7(F-9$9,H_EZF2F;4$M*;8" 1*;37A*:6GX2@!A4O%JG2\
M:;@T8.(T'T6L/7E.TZFC8J>)L/#%4S^Z4@>J]BL:*O7=ZE/EQ$\1Q:=Z80$5
MW *=)VI0$2H$_:@+-1$UUG4$6;D418V2%Q6-950&NB4]*D@5J4MTX&Y3DSJQ
M4JI,M;<MU7%="4;!):BLO:6I.'20NH&;RD5RZLNQAW43!/A4V/@V@RJ]]6\?
M517)7!Z05$%2LV6OB'2+OH$&23XSB;C!/<.A 3H!U23YJ,#O29EHQ<2L%9<9
M&7*(S+0HFB$HS(![\S%S)DC9F63A^OB8[/-7IHB %)KXI&0BAP8I0GA/5E*Z
M3!>D*0#\.MA$T,IQ 5" "80=B7%3#RX;^&()DDQ0P"N1%5R0 I " Y$(B,_R
MV*UNZ@LP#FOWA- '%=)$)6]44"%VP/&"F!6B>4$)6>F\!(7S6EXZ<&XZ)MH]
MO:BWBHC,<1-0Z"YDNKMY-]U W1*C5A[*#7$.,2#YN)@>0F]D E'@NCA3^NB2
MK\M7L ]<T#YF5^"D7F*26&H$':@"/B=-40C7ZWIWA*>P D?BU\HZYY(@KH!K
M=+UV]R')BQ,0/HO "?AB/4!CG(!9FS'';^3#?4F @Y[?])LA1B9@:+\)X 0(
MC8G4,M"OQM@#)R""3; I,%GHKV6DN1CDA"!@#R88GD8?L&+YETD4@2\@@"7?
M_-486^ $))H3D+(4P*/@'$T@"U (% (FTD 8^ (3K8R*BCT@ D0 N@#!(E@'
MD."1=((5:^B(%%:"8A $,X P%@8;Z,&*M;?)B2\ .]X+WQ@3HZ)HL(&%X /X
MX0BF#R6X!C_1'!PL@'!))22'(T@LCL91NOQN"G@!) #B)%AB82U>@.40"\5C
M^7J$U8MT X/?S2KI4>K:WHCR'H/(U84,,B$&2!&0Z77W2K_I*_[.1ZB9?-6Q/
M"LZK2#(&0@@0C*W SQ)$8K%2(H)"6 @,H2$>A(CP$"#"$G>($F$'DH .0!%E
MQ[.BB@>?T3#+$Y+%)#M1E) D@@$)XAIS8F"" =P !6#PL>( *< %;@ [.8@2YP
M-CP% R4#K"-#,%-BZS!9!0-M6\'82S"+<TDK0( :*&!*XP2D"+HQ!X? I_FF
MI$=61 T2<"M8Q/I0QNU#P;V4;V(9Z</0D1.M6(' D6#1-8K%FEW'UJ(&(.-V
M'(^1L3;YQMAX<;0!/N %N,##J!5ZS0=+"1'@ GRP]4 7ZR-:3 LRS#"PA;;@
M%B+517"CI&DN,DA/F9-Z)'4DR-9Q.N0%O1@<H:((DX#V ?2$!%.K38L8#31B
M>:$O847 = (#<YHF3-+SBW,'2ZY 4JI+"$R"26V90!(0 C.9(;,!>>RVD 9E
M! %28-U]4P<ZDNF#QX :S7@>G8RKD36^E=*9&5Y#@8#DQ &BI,#9&'9*1@JH
M#[G&/MR'U:LF"B3,QHFMG)6TFD>.'>U#1>7D0O=S "%9/LF*V/VHY/S6@TFR
MS<MJ$V1T :(<')<)1>#*$(,"#N07&8=J-\?Q<$')HH^]Y2ZQD1F'Z_@>\D)G
MD3*A;#%;0!)P 1F3,M.''OPE[, /@"QV0!JOBLZLF'MPL$ DGJ)6\*H$ 4:=
M'CHVQ^]#7C1E-LJ1P<)M;E7/XYOLYC@Q,SSE9*D=KH81G3RW5F*ESG F)-]X
M(R\.XD "7D!N'H<S=3@;6@.*:/L'9#8#<)D^1%K32XC+LWD^SZJWZ.H>\4AN
M$@T<[E6)866>F)9Y0\X"#3 ^=YCX-)_W:!\'9!_>CSRS/Y)=@#.(T7,EH9?$
MH;3XRWB<:J^G[+0)] S.4M:3IP,_:AB0%-\4(Y,!(!0&G&8%H@,7: 1<SKUI
M//TF4MJ:G:AY?DW#63HAA)"*JUQ"2;8MY23$_(Y@OD6E]!R)D3/ @<Y$"S "
M4N-;F P;_:.D@M"AHP9"YM <FZ.C76=5REHT1]GTU4BZPAS2#PI"^\(,$*&Y
MI"+;@!" :AXL9E2K^W*-ZHP3DA9Y!!9EKNA7)PZ0>+5:CVP%:&;"M;!T=+<Z
M5WI3+.1-H<25^.;Q_)O.!08LI<'I/%FTV"035FDJ2(H;JH^N*Y-U5&9 ^ID)
MA/$EP)FH. ,QJ SHZ,UY.G'1G5Z=(.APYFD,@=RXJ-@9T7VZ1'-.330#!G7H
M))QJ*6P:($ZM+6 6'KN%&RXAZ.@D&R"2M#)KR6D$ANI)'%R/2N>9EA^6JVC(
M 3D]RNCTZ/J3_DA2-]'VM3:QD5X]$X]L82&,%E %KK7E&J^? [L>3EI]IQD%
MP9AF,6A<'T_OT3:JV 83&E,A,B.B./FL_QT("'C:38XPJ'ATQ$HG%JW6D7JP
M^2%V=:./=-XPN>%7'_%(.9"3N"RJSIQ%:54[EQM@K]P \X2RL1IZTKP&-#UU
M-*H[=5OC\Y7K6JIR94HKNP/]6FRZ3KJT)(D -TI)%P,O@8 4FUK+K\*A+P:H
M0K<R#!TN-32'IMD5='[6S_LY!6[VN]@"[38,^ ^T&[UP-)NMVS@::-3.R"U
MN;4/B%I(&YW.@:HM!ZIV';C:("!KMX X +;%MA$HV^WV"70I7E&VYV07,-I<
MHMU2 0S<;L\VUG;;<+LVH5,3&[;K=MN^IF^;QU)0B'.HI@ &30(:-/YVT**3
MB)"JV-$88[4GHMLYE:!FZH:6"@<+3CWJS#5K2QW(;:%"0%*P:3-Q)7&V645E
M'57AZM29V\'X]J 4N3K[0M_41)1[XR@9?:MO5.K8Z\MU<S*7'JW30!OB,+X-
MZ@2*-H_E6ODH:O)8"M@KT:G25A U;Q(J4I*V5X@S)44M["MWFXL=UJ9M]YN
M 4Y;00RO:%TG0D;TCA.W\!91BJVE+.+TG&X4NDH6>54S](+B!$-BFX=U<_#3
MBFJ9OU8>H!1!.HQJ;U"Z+W;W-]J3OQL?,<@>X+VA=I%4 .>;(IX/*6F0E 7,
MI:Z)=748UC(J5&'1;)$4WX(-< F2=*XCLW$51R3)XZ:W73&CF;3[;.!3^X%'
M\/3M@EJIKOIDYSJ4#?##.G)/T<:8D3LU#W5P&@;""0(<L*&1S>> 9_;ZG"YW
MECY$+'Q7,.F9O;PW<[NM @^<"' 1\A&S<D0+)0(SQT(OZHQ[*%)=/M(B8CJ4
M9:Y ](2ZZ@NWXNCT;"L((X C)%GF8I='HF0+L8"]<_ P2[2.+I,*8M$PU\_
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
MYO]19@ @0\;U!8!DP-DG*A 2[DU"5I9U:X 6WJ?M40P.!A! @B ,<JCA?=Q
M 866O.#C)"_QC:(U*K" %I ,*"]P<SF8W'?\Q'[Z7]'7@UV (UD&V/_Q"CT8
M N+^ " PS)G0_4DVN(C!\LA %UU=ZJ/&4&H=P^I7I]%; ,CEH+#!0/G:-;&O
MC7UXB9<5JQ K-]B5\P2:/N"?$ 8$$&$KS3?V)=P-B=8:N/9 ?YE?&0"&M3O;
M&6XB!S(+'V =Z ,Z?M8?/K('Z@%]8)KR![8/G<SZ9P<2@J9?RW,()H)%@R#H
M_1$Z&0_@-^A,@CJ@!E%8U _-!8+TH^AP8^ 1PSF(=&E@#W@)]F#M3A 8> R!
M2(ZH\/^]@E8?$M@EX(#CC9#P!L(..=A4TR6<?4!85L/MI%P3@OE !%8T]<*:
MP/^Y"C"7:_;CK32T2"_H9LD.((J<L )V@ /@++0\4(/KW]EW V*#,4H+X -L
M ;+#VM<_* I7G]47"XJ#^</9A_2)#D&.HE#TL8,D@#OX:+EB16#@00^Z@YS@
M%Z.#87.E \(C I0 +D"KIAE1#%/.PH#.!838CE)$$-( 9L!!V#B@@[%@0ECK
M1 \,(;KC$+H ,D!$"(%A-X]@&< [^"S_H*A@G86$'TN@!@/,3BG L& -]0^M
M$07T:%V$ED(R"! :@Q4A338!(CD#&5.1 ,2$A4AM]I H.<T9T;?B)#6M#!L5
M,R0AHD(+T (<@=^#5J-!< [T'[[EY<A\^)\K*!; @GD(_S>Z<( >8"XXA/&"
M70(IIA5F-3@890:$C3(]&%?3@STR<8+>IP;Z@B2 'C $HH62 A! SJ0V<B$Z
MMA<^.'WA2$;92 DS@$@61LQ^\D)AL;(0+G%>4A@GH'.AA82@N_U7X=4/I<M,
M9B0 &Q#/F RDQZX@DFF&0<ZJ()*]"=/>[#<OQ YO@BFB,*5X/V'3\Y#D?CV?
M#U#<!"9_B$WR G@!(X 9UC\XAK:A%V#T0 FZH7S#3\$!20V:919V"7#A6A@5
MM(40C58HA 5U^$+ $-?X%CG8E] ()@![@.A0$Y( <.$7X]YP9S4'6=;R?8#8
MH7:8A(TRWF'_X >*AW.@HU >CF2C E>3'KXWR<L7DQW"AZ0'7$C>4 SH(9?S
M )( I-B <0*L /D%_/ ??@E10G&#G7T3D\5Q=@NZ >N.+I.6^8-A!'=#F5$V
M20V#0Q^&A]4ALQ 7&HB<'YFP)4QZAT*ET*[M(XS#Y%09XC$'6R(W^D1^"!V2
MXV"13_H(0.>PC3YY YJE&1Z&G>%NUQ-EAE\ <E-HZ#)+BN[C#Y*&O,+RD"$N
M$)V?D@$BB@ZI(2"B,+4:GM(VB"22*"< K $JC3ZE3=[0-]"$2Z):EB&,B;4#
MD+@KK#N@(4OR)9HBQH*1^,5XB6DB+L*;B(9NXIHH):H*W][H\R66AH]?G;@C
M<H8/8I@(),:#G\[.H\QU2B":#A2@8VF38S:$H O(NBM/^1P_J,@F3@@@/SH,^
M0/Y *8X*A2)(.+I,BBQ)4-8IC#YM0[.\ -UR#'N!9V/H<BOW?.I@IRH,Z1Q^@
M).H^U*"0L 48A5D.?&@.8C>EXML@)SPU7<).(QUR?O2"BD2MY$501Y9R(D8N
MGHVNDM3-*^.0VP W8%DXC0TT#R4 M&%4J"%^8P&B>P%9%(BZ#\\A>&Q_>J&7
M@S# @-1B<*068H"OH)$86\"*60[.W=R9>B.M"ZY,M)C7?X>\G @@!%,F<U#5\
M 4Q%",@>>HC7&93(7*B&J@*5Z )8B<S%CP>::8DVR9[.(*R0U$T2#B MU"7\B
MFA@DJHE1HAR@0' YZT.YB-,4C")@RP>D*8A2F0B <C!L,9<G%W/,' =<S(*+
MF'+'2""G TR(_P@01PVB "*C@% DDHI?A.P@#FX!,$#*XBNL6?/A%Z,O&AU(
MQY$0,S =R@DAMV[]:"[ A%A8G$O=BM8@-3A74\<&(S?E=/W($3*2X A.83?7
M1&$W$D@.\ +$ #C "\""R"'MC7K8G6$WLDG"D'?L'<K)L3 S[#!2"AKQ*UZ%
M(</,<"S0C.,BX5$U@@VM3\X(1^V,3\H;8B#TC(:"I0@OC@IXP-!8-"Z)XB(J
M1RX"B^@BL#B2S8);H9OX+B*#\B*$2"\R/]_A^0/J< Z9(XZ&%=8+YB)EYCFZ
M:_G@5H@K!H"FXZ(H%NZ"*TU:*#L,@3U8'O'\G3,$3'VA NZ%T!E9%BU BL%B
MP:@OKHP-F\"%,)!R?,B0QBMH2\2*X!$PR@O?6.4X#A:-RHB!,#D6-\\C*,=R
M7%,(0\P@<0QL=14NHCUN9XL@=[*-?0D?XCFX LH@I(=4P"BZ-U](L[5R#"G&
M(AF C^AFY\K?$R&<BNEBY'@S0'V&62P3!5):_-RY<H2("E*2=A,@1$/S2ETX
M*L0))X_0. Y"+0MD28.Q 'K10Q@10()7[L<1P_G)26^"O893:2O,!2>'R!D(
M 22R^-D%" Q(1I<8^A;I#4\HQ- +"IQN]BF^BINBA8AFY1$ TQB0 O .&F0'
M.09T#>=*!XD(KC1'AML3<S!)Q(K!0B_0?^<:]TB6J8 )9,'8_P4U!Z0U&$8N
M.+TB NDYGBO5G_ XGO44RY_,UR7T?/S"99;1') DP!=0-C1_:(!L>/Z! -'"
M;<CM>#O@CKCS!%1GSN.VD# X >X5 I*A75/;8VN8_: L&$?.1NF"8U,((0;
M!H<AB]N324(.ON'10P5PD@*!E/)& B"@H(.Q[RTL"=:1,"VLB!T)W<>O.6;K
M C,HI9PKJ: ZV!6"CLL@**(,@H79X.X(!YZ&O6!?IO_U8-X@7!,--H^S3O,H
M]:B .*#5L@WN-(F6-]@9@H-SP-!8#CY:@&*KV!7N@P/@.X@?LHMB 3B9!R1,
M)R$?> ZZ"ER?.1F4P8=,9)QP$IH,+N$I.4>X>[J*=#%$Y@]B0,+$ ]!?M6,V
M^2J& 0G3"\9&N'MSGG1QP=&#_22( E NE -E04E+6C;O'O4F84B*$667$E/!
MBP(E/RE1WI-[C!W [R4RT@4[J0PRE/XD0&E2;BOT($%ID2D(-176\/YQ"$'"
M*245P I%@.?W5'TU4@(0<&+]E!H##"/V925HENF7!QXUL5^L$5OXE$!E4]F\
MK#U,)5!Y(0V5GH+&ERL.@NI)"<!3"I5UGY4T JP,7>&T\P*@<TX 2Z( ,$@Q
M9?E74X( 7L!/Z5NTE6XE7-E4GEAOI5/I!? >&5>J5?NE7QE7^E7ZI6^V(\'
MA/V2..$NR9 U@[CB6:D@&&B,Y0>AGGD5]M=P@'@% 8I7$:!5Q&&UU_!Q>^T$
MK41^EG71 $+$S>2?"5\Y!O'UAQE?;P'R)4PH7XUE%0$% '=*AI>B61U8#4@H
MHW:U 0S2*M?)_&N R3AB-.U0B<@08/20-#*'W7"(U!RMP?PV6T@D'8-P^<R
M)87(S$%T\)!T (KP KP 8 $<X +P<P_"=ID&^$NK0[ZT@=0!H4WC$"R\ ,ZE
M$["7%"!:U9[1@/A+;0 ;,(;D =*/,X(CO "*EQ3 (!%=+$.+H!]M!4 .W*A
9U7=M 'G66AZ8"&:"J6 NF QF@^E@/I@&&@"*

end
Re: DProf Oct7,1995 [ In reply to ]
Dean Roehrich writes:
>
> Here's a new version of DProf for Oct7,1995. This replaces the Apr5,1995
> version.
>
> Changes...
>
> DProf.xs, DProf.pm:
>
> VMS patches from Charles. The tmon.out is now opened in the XS file
> in BOOT. Documentation updates in DProf.pm.
>
> dprofpp:
>
> Documentation updates. Can now print a compressed version of the
> subroutine call tree. The new default switch is -z; I used -t for
> the compressed sub call tree. Cleaned up some handling of exit time
> stamps.
>
> Added a test suite. Well, a framework for it, anyway. Handles some testing
> of dprofpp's -T and -t, with and without -F. So "make test" now does
> something useful.
>


`make test' almost works. I needed the following patches to make it
work:

*** Devel-DProf-Oct7.1995/test.pl Sat Oct 07 00:52:30 1995
--- Devel-DProf-Oct7.1995.my/test.pl Thu Oct 19 20:30:42 1995
***************
*** 2,14 ****

use Benchmark;
use Getopt::Std 'getopts';
getopts('vI:p:');

chdir( 't' ) if -d 't';
! @tests = @ARGV ? @ARGV : <*.[tv]>;

$perl5db = 'use Devel::DProf;';
! $perl5lib = $opt_I || join( ':', @INC );
$perl = $opt_p || $^X;

if( $opt_v ){
--- 2,16 ----

use Benchmark;
use Getopt::Std 'getopts';
+ use Config;
getopts('vI:p:');

chdir( 't' ) if -d 't';
! @tests = @ARGV ? @ARGV : sort <*.t *.v>;

$perl5db = 'use Devel::DProf;';
! $path_sep = $Config{path_sep} || ':';
! $perl5lib = $opt_I || join( $path_sep, @INC , "../blib");
$perl = $opt_p || $^X;

if( $opt_v ){

============================================================
(you may ignore sort <*.t *.v> change, it is for broken OS/2 globbing
which will be fixed sooner or later)
============================================================

`dprofpp -t' gives the same output as -T (at least) if the called sub
calls somebody else.

Output of dprofpp is almost useless ;-) since nowhere is it stated
whether times are cumulative or flat. Btw, there should be a flag that
allows sorting basing on Ctime vs. time, and in the default format
both should be present (there is enough screen real estate for this).

Thanks,
Ilya
Re: DProf Oct7,1995 [ In reply to ]
> From: Ilya Zakharevich <ilya@math.ohio-state.edu>

> `make test' almost works. I needed the following patches to make it
> work:

thanks.


> `dprofpp -t' gives the same output as -T (at least) if the called sub
> calls somebody else.

The -t option compresses multiple consecutive calls to the same sub, at the
same call level, into a single line.

> Output of dprofpp is almost useless ;-) since nowhere is it stated
> whether times are cumulative or flat.

The default output does contain both "seconds" and "sec/call", isn't that
sufficient to show that one column is cumulative and the other is avg
per-call?

> Btw, there should be a flag that
> allows sorting basing on Ctime vs. time

What is Ctime? What is time? How should the 'vs' sort work?

> and in the default format
> both should be present (there is enough screen real estate for this).

And should that be...

Seconds sec/call
%Time Ctime User+System #Calls Ctime User+System Name

...or do you have something else in mind?


How about a one-question survey for everyone.... Should -F be thrown out
and its behavior turned on permanently? Yes/no? Why/why not?

Dean
Re: DProf Oct7,1995 [ In reply to ]
Dean Roehrich writes:
>
> > Output of dprofpp is almost useless ;-) since nowhere is it stated
> > whether times are cumulative or flat.
>
> The default output does contain both "seconds" and "sec/call", isn't that
> sufficient to show that one column is cumulative and the other is avg
> per-call?
>

Oh, I see why you did not put it: "cumulative" means "with called
subroutines". Looking on the output I guessed it is what the output
is. Only after looking in the code I found that DProf is too smart.

Below is the patch that combines two variants in the output:

Best,
Ilya

*** F:/ckermit/get/Devel-DProf-Oct7.1995/dprofpp Sat Oct 07 00:52:30 1995
--- dprofpp Fri Oct 20 01:32:34 1995
***************
*** 172,178 ****
my $monout = shift || "tmon.out";
my $fh = "main::fh";
local $names = {};
! local $times = {}; # times in hz
local $calls = {};
local $persecs = {}; # times in seconds
local $idkeys = [];
--- 172,179 ----
my $monout = shift || "tmon.out";
my $fh = "main::fh";
local $names = {};
! local $times = {}; # times in hz
! local $ctimes = {}; # Cumulative times in hz
local $calls = {};
local $persecs = {}; # times in seconds
local $idkeys = [];
***************
*** 198,204 ****
$^ = 'CSTAT_top';
}

! parsestack( $fh, $names, $calls, $times, $idkeys );

exit(0) if $opt_T || $opt_t;

--- 199,205 ----
$^ = 'CSTAT_top';
}

! parsestack( $fh, $names, $calls, $times, $ctimes, $idkeys );

exit(0) if $opt_T || $opt_t;

***************
*** 212,218 ****
else {
$a = $idkeys;
}
! display( $runtime, $hz, $names, $calls, $times, $cnt, $a );
}


--- 213,219 ----
else {
$a = $idkeys;
}
! display( $runtime, $hz, $names, $calls, $times, $ctimes, $cnt, $a );
}


***************
*** 239,246 ****

# Report the times in seconds.
sub display {
! my( $runtime, $hz, $names, $calls , $times, $cnt, $idkeys ) = @_;
! my( $x, $key, $s );
#format: $ncalls, $name, $secs, $percall, $pcnt

for( $x = 0; $x < @$idkeys; ++$x ){
--- 240,247 ----

# Report the times in seconds.
sub display {
! my( $runtime, $hz, $names, $calls, $times, $ctimes, $cnt, $idkeys ) = @_;
! my( $x, $key, $s, $cs );
#format: $ncalls, $name, $secs, $percall, $pcnt

for( $x = 0; $x < @$idkeys; ++$x ){
***************
*** 249,255 ****
--- 250,259 ----
$name = $names->{$key};
$s = $times->{$key}/$hz;
$secs = sprintf("%.3f", $s );
+ $cs = $ctimes->{$key}/$hz;
+ $csecs = sprintf("%.3f", $cs );
$percall = sprintf("%.4f", $s/$ncalls );
+ $cpercall = sprintf("%.4f", $cs/$ncalls );
$pcnt = sprintf("%.2f",
$runtime? (($secs / $runtime) * 100.0): 0 );
write;
***************
*** 261,267 ****


sub parsestack {
! my( $fh, $names, $calls, $times, $idkeys ) = @_;
my( $dir, $name );
my( $t, $syst, $realt, $usert );
my( $x, $z, $c );
--- 265,271 ----


sub parsestack {
! my( $fh, $names, $calls, $times, $ctimes, $idkeys ) = @_;
my( $dir, $name );
my( $t, $syst, $realt, $usert );
my( $x, $z, $c );
***************
*** 312,317 ****
--- 316,322 ----
if( ! defined $names->{$name} ){
$names->{$name} = $name;
$times->{$name} = 0;
+ $ctimes->{$name} = 0;
push( @$idkeys, $name );
}
$calls->{$name}++;
***************
*** 324,330 ****
next;
}
if( $dir eq '-' ){
! exitstamp( \@stack, \@tstack, $t, $times,
$name, \$in, $tab );
next;
}
--- 329,335 ----
next;
}
if( $dir eq '-' ){
! exitstamp( \@stack, \@tstack, $t, $times, $ctimes,
$name, \$in, $tab );
next;
}
***************
*** 349,355 ****
warn( "Faking " . scalar( @stack ) . " exit timestamp(s).\n");
foreach $x ( reverse @stack ){
$name = $x->[0];
! exitstamp( \@stack, \@tstack, $t, $times,
$name, \$in, $tab );
}
}
--- 354,360 ----
warn( "Faking " . scalar( @stack ) . " exit timestamp(s).\n");
foreach $x ( reverse @stack ){
$name = $x->[0];
! exitstamp( \@stack, \@tstack, $t, $times, $ctimes,
$name, \$in, $tab );
}
}
***************
*** 357,363 ****
}

sub exitstamp {
! my( $stack, $tstack, $t, $times, $name, $in, $tab ) = @_;

my( $x, $c, $z );

--- 362,368 ----
}

sub exitstamp {
! my( $stack, $tstack, $t, $times, $ctimes, $name, $in, $tab ) = @_;

my( $x, $c, $z );

***************
*** 375,380 ****
--- 380,386 ----
$c = pop( @$tstack );
# total time this func has been active
$z = $t - $x->[1];
+ $ctimes->{$name} += $z;
# less time spent in child funcs.
# prepare to accept that the children may account
# for all of my time.
***************
*** 427,437 ****
($rrun_rtime / $hz)
@>>>>>>>>>> Time = @>>>>>> Seconds
$whichtime, $runtime
! %Time Seconds #Calls sec/call Name
.

format STAT =
! ^>>> ^>>>> ^>>>>>>>>> ^>>>>> ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
! $pcnt, $secs, $ncalls, $percall, $name
.

--- 433,443 ----
($rrun_rtime / $hz)
@>>>>>>>>>> Time = @>>>>>> Seconds
$whichtime, $runtime
! %Time Seconds Cumul #Calls sec/call Csec/c Name
.

format STAT =
! ^>>> ^>>>> ^>>>> ^>>>>> ^>>>>> ^>>>>> ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
! $pcnt, $secs, $csecs, $ncalls, $percall, $cpercall, $name
.
Re: DProf Oct7,1995 [ In reply to ]
> From: Ilya Zakharevich <ilya@math.ohio-state.edu>

> Oh, I see why you did not put it: "cumulative" means "with called
> subroutines". Looking on the output I guessed it is what the output
> is. Only after looking in the code I found that DProf is too smart.

I looked through 4 profilers that I have access to: prof, gprof, CRI's MPP
Apprentice, and flowview. Flowview and MPP Apprentice show routine times
exclusive of child times, by default. prof and gprof show both exclusive
and inclusive times in the default report.

The output you are looking for is similar to the last part of gprof's
default output. Some of the other stuff in gprof's default report is
interesting, too. Maybe I'll look at doing more of that kind of stuff.

Dean