PNG  IHDRX cHRMz&u0`:pQ<bKGD pHYsodtIME MeqIDATxw]Wug^Qd˶ 6`!N:!@xI~)%7%@Bh&`lnjVF29gΨ4E$|>cɚ{gk= %,a KX%,a KX%,a KX%,a KX%,a KX%,a KX%, b` ǟzeאfp]<!SJmɤY޲ڿ,%c ~ع9VH.!Ͳz&QynֺTkRR.BLHi٪:l;@(!MԴ=žI,:o&N'Kù\vRmJ雵֫AWic H@" !: Cé||]k-Ha oݜ:y F())u]aG7*JV@J415p=sZH!=!DRʯvɱh~V\}v/GKY$n]"X"}t@ xS76^[bw4dsce)2dU0 CkMa-U5tvLƀ~mlMwfGE/-]7XAƟ`׮g ewxwC4\[~7@O-Q( a*XGƒ{ ՟}$_y3tĐƤatgvێi|K=uVyrŲlLӪuܿzwk$m87k( `múcE)"@rK( z4$D; 2kW=Xb$V[Ru819קR~qloѱDyįݎ*mxw]y5e4K@ЃI0A D@"BDk_)N\8͜9dz"fK0zɿvM /.:2O{ Nb=M=7>??Zuo32 DLD@D| &+֎C #B8ַ`bOb $D#ͮҪtx]%`ES`Ru[=¾!@Od37LJ0!OIR4m]GZRJu$‡c=%~s@6SKy?CeIh:[vR@Lh | (BhAMy=݃  G"'wzn޺~8ԽSh ~T*A:xR[ܹ?X[uKL_=fDȊ؂p0}7=D$Ekq!/t.*2ʼnDbŞ}DijYaȲ(""6HA;:LzxQ‘(SQQ}*PL*fc\s `/d'QXW, e`#kPGZuŞuO{{wm[&NBTiiI0bukcA9<4@SӊH*؎4U/'2U5.(9JuDfrޱtycU%j(:RUbArLֺN)udA':uGQN"-"Is.*+k@ `Ojs@yU/ H:l;@yyTn}_yw!VkRJ4P)~y#)r,D =ě"Q]ci'%HI4ZL0"MJy 8A{ aN<8D"1#IJi >XjX֔#@>-{vN!8tRݻ^)N_╗FJEk]CT՟ YP:_|H1@ CBk]yKYp|og?*dGvzنzӴzjֺNkC~AbZƷ`.H)=!QͷVTT(| u78y֮}|[8-Vjp%2JPk[}ԉaH8Wpqhwr:vWª<}l77_~{s۴V+RCģ%WRZ\AqHifɤL36: #F:p]Bq/z{0CU6ݳEv_^k7'>sq*+kH%a`0ԣisqにtү04gVgW΂iJiS'3w.w}l6MC2uԯ|>JF5`fV5m`Y**Db1FKNttu]4ccsQNnex/87+}xaUW9y>ͯ骵G{䩓Գ3+vU}~jJ.NFRD7<aJDB1#ҳgSb,+CS?/ VG J?|?,2#M9}B)MiE+G`-wo߫V`fio(}S^4e~V4bHOYb"b#E)dda:'?}׮4繏`{7Z"uny-?ǹ;0MKx{:_pÚmFמ:F " .LFQLG)Q8qN q¯¯3wOvxDb\. BKD9_NN &L:4D{mm o^tֽ:q!ƥ}K+<"m78N< ywsard5+вz~mnG)=}lYݧNj'QJS{S :UYS-952?&O-:W}(!6Mk4+>A>j+i|<<|;ر^߉=HE|V#F)Emm#}/"y GII웻Jі94+v뾧xu~5C95~ūH>c@덉pʃ1/4-A2G%7>m;–Y,cyyaln" ?ƻ!ʪ<{~h~i y.zZB̃/,雋SiC/JFMmBH&&FAbϓO^tubbb_hZ{_QZ-sύodFgO(6]TJA˯#`۶ɟ( %$&+V'~hiYy>922 Wp74Zkq+Ovn錄c>8~GqܲcWꂎz@"1A.}T)uiW4="jJ2W7mU/N0gcqܗOO}?9/wìXžΏ0 >֩(V^Rh32!Hj5`;O28؇2#ݕf3 ?sJd8NJ@7O0 b־?lldщ̡&|9C.8RTWwxWy46ah嘦mh٤&l zCy!PY?: CJyв]dm4ǜҐR޻RլhX{FƯanшQI@x' ao(kUUuxW_Ñ줮[w8 FRJ(8˼)_mQ _!RJhm=!cVmm ?sFOnll6Qk}alY}; "baӌ~M0w,Ggw2W:G/k2%R,_=u`WU R.9T"v,<\Ik޽/2110Ӿxc0gyC&Ny޽JҢrV6N ``یeA16"J³+Rj*;BϜkZPJaÍ<Jyw:NP8/D$ 011z֊Ⱳ3ι֘k1V_"h!JPIΣ'ɜ* aEAd:ݺ>y<}Lp&PlRfTb1]o .2EW\ͮ]38؋rTJsǏP@芎sF\> P^+dYJLbJ C-xϐn> ι$nj,;Ǖa FU *择|h ~izť3ᤓ`K'-f tL7JK+vf2)V'-sFuB4i+m+@My=O҈0"|Yxoj,3]:cо3 $#uŘ%Y"y죯LebqtҢVzq¼X)~>4L׶m~[1_k?kxֺQ`\ |ٛY4Ѯr!)N9{56(iNq}O()Em]=F&u?$HypWUeB\k]JɩSع9 Zqg4ZĊo oMcjZBU]B\TUd34ݝ~:7ڶSUsB0Z3srx 7`:5xcx !qZA!;%͚7&P H<WL!džOb5kF)xor^aujƍ7 Ǡ8/p^(L>ὴ-B,{ۇWzֺ^k]3\EE@7>lYBȝR.oHnXO/}sB|.i@ɥDB4tcm,@ӣgdtJ!lH$_vN166L__'Z)y&kH;:,Y7=J 9cG) V\hjiE;gya~%ks_nC~Er er)muuMg2;֫R)Md) ,¶ 2-wr#F7<-BBn~_(o=KO㭇[Xv eN_SMgSҐ BS헃D%g_N:/pe -wkG*9yYSZS.9cREL !k}<4_Xs#FmҶ:7R$i,fi!~' # !6/S6y@kZkZcX)%5V4P]VGYq%H1!;e1MV<!ϐHO021Dp= HMs~~a)ަu7G^];git!Frl]H/L$=AeUvZE4P\.,xi {-~p?2b#amXAHq)MWǾI_r`S Hz&|{ +ʖ_= (YS(_g0a03M`I&'9vl?MM+m~}*xT۲(fY*V4x@29s{DaY"toGNTO+xCAO~4Ϳ;p`Ѫ:>Ҵ7K 3}+0 387x\)a"/E>qpWB=1 ¨"MP(\xp߫́A3+J] n[ʼnӼaTbZUWb={~2ooKױӰp(CS\S筐R*JغV&&"FA}J>G֐p1ٸbk7 ŘH$JoN <8s^yk_[;gy-;߉DV{c B yce% aJhDȶ 2IdйIB/^n0tNtџdcKj4϶v~- CBcgqx9= PJ) dMsjpYB] GD4RDWX +h{y`,3ꊕ$`zj*N^TP4L:Iz9~6s) Ga:?y*J~?OrMwP\](21sZUD ?ܟQ5Q%ggW6QdO+\@ ̪X'GxN @'4=ˋ+*VwN ne_|(/BDfj5(Dq<*tNt1х!MV.C0 32b#?n0pzj#!38}޴o1KovCJ`8ŗ_"]] rDUy޲@ Ȗ-;xџ'^Y`zEd?0„ DAL18IS]VGq\4o !swV7ˣι%4FѮ~}6)OgS[~Q vcYbL!wG3 7띸*E Pql8=jT\꘿I(z<[6OrR8ºC~ډ]=rNl[g|v TMTղb-o}OrP^Q]<98S¤!k)G(Vkwyqyr޽Nv`N/e p/~NAOk \I:G6]4+K;j$R:Mi #*[AȚT,ʰ,;N{HZTGMoּy) ]%dHء9Պ䠬|<45,\=[bƟ8QXeB3- &dҩ^{>/86bXmZ]]yޚN[(WAHL$YAgDKp=5GHjU&99v簪C0vygln*P)9^͞}lMuiH!̍#DoRBn9l@ xA/_v=ȺT{7Yt2N"4!YN`ae >Q<XMydEB`VU}u]嫇.%e^ánE87Mu\t`cP=AD/G)sI"@MP;)]%fH9'FNsj1pVhY&9=0pfuJ&gޤx+k:!r˭wkl03׼Ku C &ѓYt{.O.zҏ z}/tf_wEp2gvX)GN#I ݭ߽v/ .& и(ZF{e"=V!{zW`, ]+LGz"(UJp|j( #V4, 8B 0 9OkRrlɱl94)'VH9=9W|>PS['G(*I1==C<5"Pg+x'K5EMd؞Af8lG ?D FtoB[je?{k3zQ vZ;%Ɠ,]E>KZ+T/ EJxOZ1i #T<@ I}q9/t'zi(EMqw`mYkU6;[t4DPeckeM;H}_g pMww}k6#H㶏+b8雡Sxp)&C $@'b,fPߑt$RbJ'vznuS ~8='72_`{q纶|Q)Xk}cPz9p7O:'|G~8wx(a 0QCko|0ASD>Ip=4Q, d|F8RcU"/KM opKle M3#i0c%<7׿p&pZq[TR"BpqauIp$ 8~Ĩ!8Սx\ւdT>>Z40ks7 z2IQ}ItԀ<-%S⍤};zIb$I 5K}Q͙D8UguWE$Jh )cu4N tZl+[]M4k8֦Zeq֮M7uIqG 1==tLtR,ƜSrHYt&QP윯Lg' I,3@P'}'R˪e/%-Auv·ñ\> vDJzlӾNv5:|K/Jb6KI9)Zh*ZAi`?S {aiVDԲuy5W7pWeQJk֤#5&V<̺@/GH?^τZL|IJNvI:'P=Ϛt"¨=cud S Q.Ki0 !cJy;LJR;G{BJy޺[^8fK6)=yʊ+(k|&xQ2`L?Ȓ2@Mf 0C`6-%pKpm')c$׻K5[J*U[/#hH!6acB JA _|uMvDyk y)6OPYjœ50VT K}cǻP[ $:]4MEA.y)|B)cf-A?(e|lɉ#P9V)[9t.EiQPDѠ3ϴ;E:+Օ t ȥ~|_N2,ZJLt4! %ա]u {+=p.GhNcŞQI?Nd'yeh n7zi1DB)1S | S#ًZs2|Ɛy$F SxeX{7Vl.Src3E℃Q>b6G ўYCmtկ~=K0f(=LrAS GN'ɹ9<\!a`)֕y[uՍ[09` 9 +57ts6}b4{oqd+J5fa/,97J#6yν99mRWxJyѡyu_TJc`~W>l^q#Ts#2"nD1%fS)FU w{ܯ R{ ˎ󅃏џDsZSQS;LV;7 Od1&1n$ N /.q3~eNɪ]E#oM~}v֯FڦwyZ=<<>Xo稯lfMFV6p02|*=tV!c~]fa5Y^Q_WN|Vs 0ҘދU97OI'N2'8N֭fgg-}V%y]U4 峧p*91#9U kCac_AFңĪy뚇Y_AiuYyTTYЗ-(!JFLt›17uTozc. S;7A&&<ԋ5y;Ro+:' *eYJkWR[@F %SHWP 72k4 qLd'J "zB6{AC0ƁA6U.'F3:Ȅ(9ΜL;D]m8ڥ9}dU "v!;*13Rg^fJyShyy5auA?ɩGHRjo^]׽S)Fm\toy 4WQS@mE#%5ʈfFYDX ~D5Ϡ9tE9So_aU4?Ѽm%&c{n>.KW1Tlb}:j uGi(JgcYj0qn+>) %\!4{LaJso d||u//P_y7iRJ߬nHOy) l+@$($VFIQ9%EeKʈU. ia&FY̒mZ=)+qqoQn >L!qCiDB;Y<%} OgBxB!ØuG)WG9y(Ą{_yesuZmZZey'Wg#C~1Cev@0D $a@˲(.._GimA:uyw֬%;@!JkQVM_Ow:P.s\)ot- ˹"`B,e CRtaEUP<0'}r3[>?G8xU~Nqu;Wm8\RIkբ^5@k+5(By'L&'gBJ3ݶ!/㮻w҅ yqPWUg<e"Qy*167΃sJ\oz]T*UQ<\FԎ`HaNmڜ6DysCask8wP8y9``GJ9lF\G g's Nn͵MLN֪u$| /|7=]O)6s !ĴAKh]q_ap $HH'\1jB^s\|- W1:=6lJBqjY^LsPk""`]w)󭃈,(HC ?䔨Y$Sʣ{4Z+0NvQkhol6C.婧/u]FwiVjZka&%6\F*Ny#8O,22+|Db~d ~Çwc N:FuuCe&oZ(l;@ee-+Wn`44AMK➝2BRՈt7g*1gph9N) *"TF*R(#'88pm=}X]u[i7bEc|\~EMn}P瘊J)K.0i1M6=7'_\kaZ(Th{K*GJyytw"IO-PWJk)..axӝ47"89Cc7ĐBiZx 7m!fy|ϿF9CbȩV 9V-՛^pV̌ɄS#Bv4-@]Vxt-Z, &ֺ*diؠ2^VXbs֔Ìl.jQ]Y[47gj=幽ex)A0ip׳ W2[ᎇhuE^~q흙L} #-b۸oFJ_QP3r6jr+"nfzRJTUqoaۍ /$d8Mx'ݓ= OՃ| )$2mcM*cЙj}f };n YG w0Ia!1Q.oYfr]DyISaP}"dIӗթO67jqR ҊƐƈaɤGG|h;t]䗖oSv|iZqX)oalv;۩meEJ\!8=$4QU4Xo&VEĊ YS^E#d,yX_> ۘ-e\ "Wa6uLĜZi`aD9.% w~mB(02G[6y.773a7 /=o7D)$Z 66 $bY^\CuP. (x'"J60׿Y:Oi;F{w佩b+\Yi`TDWa~|VH)8q/=9!g߆2Y)?ND)%?Ǐ`k/sn:;O299yB=a[Ng 3˲N}vLNy;*?x?~L&=xyӴ~}q{qE*IQ^^ͧvü{Huu=R|>JyUlZV, B~/YF!Y\u_ݼF{_C)LD]m {H 0ihhadd nUkf3oٺCvE\)QJi+֥@tDJkB$1!Đr0XQ|q?d2) Ӣ_}qv-< FŊ߫%roppVBwü~JidY4:}L6M7f٬F "?71<2#?Jyy4뷢<_a7_=Q E=S1И/9{+93֮E{ǂw{))?maÆm(uLE#lïZ  ~d];+]h j?!|$F}*"4(v'8s<ŏUkm7^7no1w2ؗ}TrͿEk>p'8OB7d7R(A 9.*Mi^ͳ; eeUwS+C)uO@ =Sy]` }l8^ZzRXj[^iUɺ$tj))<sbDJfg=Pk_{xaKo1:-uyG0M ԃ\0Lvuy'ȱc2Ji AdyVgVh!{]/&}}ċJ#%d !+87<;qN޼Nفl|1N:8ya  8}k¾+-$4FiZYÔXk*I&'@iI99)HSh4+2G:tGhS^繿 Kتm0 вDk}֚+QT4;sC}rՅE,8CX-e~>G&'9xpW,%Fh,Ry56Y–hW-(v_,? ; qrBk4-V7HQ;ˇ^Gv1JVV%,ik;D_W!))+BoS4QsTM;gt+ndS-~:11Sgv!0qRVh!"Ȋ(̦Yl.]PQWgٳE'`%W1{ndΗBk|Ž7ʒR~,lnoa&:ü$ 3<a[CBݮwt"o\ePJ=Hz"_c^Z.#ˆ*x z̝grY]tdkP*:97YľXyBkD4N.C_[;F9`8& !AMO c `@BA& Ost\-\NX+Xp < !bj3C&QL+*&kAQ=04}cC!9~820G'PC9xa!w&bo_1 Sw"ܱ V )Yl3+ס2KoXOx]"`^WOy :3GO0g;%Yv㐫(R/r (s } u B &FeYZh0y> =2<Ϟc/ -u= c&׭,.0"g"7 6T!vl#sc>{u/Oh Bᾈ)۴74]x7 gMӒ"d]U)}" v4co[ ɡs 5Gg=XR14?5A}D "b{0$L .\4y{_fe:kVS\\O]c^W52LSBDM! C3Dhr̦RtArx4&agaN3Cf<Ԉp4~ B'"1@.b_/xQ} _߃҉/gٓ2Qkqp0շpZ2fԫYz< 4L.Cyυι1t@鎫Fe sYfsF}^ V}N<_`p)alٶ "(XEAVZ<)2},:Ir*#m_YӼ R%a||EƼIJ,,+f"96r/}0jE/)s)cjW#w'Sʯ5<66lj$a~3Kʛy 2:cZ:Yh))+a߭K::N,Q F'qB]={.]h85C9cr=}*rk?vwV렵ٸW Rs%}rNAkDv|uFLBkWY YkX מ|)1!$#3%y?pF<@<Rr0}: }\J [5FRxY<9"SQdE(Q*Qʻ)q1E0B_O24[U'],lOb ]~WjHޏTQ5Syu wq)xnw8~)c 쫬gٲߠ H% k5dƝk> kEj,0% b"vi2Wس_CuK)K{n|>t{P1򨾜j>'kEkƗBg*H%'_aY6Bn!TL&ɌOb{c`'d^{t\i^[uɐ[}q0lM˕G:‚4kb祔c^:?bpg… +37stH:0}en6x˟%/<]BL&* 5&fK9Mq)/iyqtA%kUe[ڛKN]Ě^,"`/ s[EQQm?|XJ߅92m]G.E΃ח U*Cn.j_)Tѧj̿30ڇ!A0=͜ar I3$C^-9#|pk!)?7.x9 @OO;WƝZBFU keZ75F6Tc6"ZȚs2y/1 ʵ:u4xa`C>6Rb/Yм)^=+~uRd`/|_8xbB0?Ft||Z\##|K 0>>zxv8۴吅q 8ĥ)"6>~\8:qM}#͚'ĉ#p\׶ l#bA?)|g g9|8jP(cr,BwV (WliVxxᡁ@0Okn;ɥh$_ckCgriv}>=wGzβ KkBɛ[˪ !J)h&k2%07δt}!d<9;I&0wV/ v 0<H}L&8ob%Hi|޶o&h1L|u֦y~󛱢8fٲUsւ)0oiFx2}X[zVYr_;N(w]_4B@OanC?gĦx>мgx>ΛToZoOMp>40>V Oy V9iq!4 LN,ˢu{jsz]|"R޻&'ƚ{53ўFu(<٪9:΋]B;)B>1::8;~)Yt|0(pw2N%&X,URBK)3\zz&}ax4;ǟ(tLNg{N|Ǽ\G#C9g$^\}p?556]/RP.90 k,U8/u776s ʪ_01چ|\N 0VV*3H鴃J7iI!wG_^ypl}r*jɤSR 5QN@ iZ#1ٰy;_\3\BQQ x:WJv츟ٯ$"@6 S#qe딇(/P( Dy~TOϻ<4:-+F`0||;Xl-"uw$Цi󼕝mKʩorz"mϺ$F:~E'ҐvD\y?Rr8_He@ e~O,T.(ފR*cY^m|cVR[8 JҡSm!ΆԨb)RHG{?MpqrmN>߶Y)\p,d#xۆWY*,l6]v0h15M˙MS8+EdI='LBJIH7_9{Caз*Lq,dt >+~ّeʏ?xԕ4bBAŚjﵫ!'\Ը$WNvKO}ӽmSşذqsOy?\[,d@'73'j%kOe`1.g2"e =YIzS2|zŐƄa\U,dP;jhhhaxǶ?КZ՚.q SE+XrbOu%\GتX(H,N^~]JyEZQKceTQ]VGYqnah;y$cQahT&QPZ*iZ8UQQM.qo/T\7X"u?Mttl2Xq(IoW{R^ ux*SYJ! 4S.Jy~ BROS[V|žKNɛP(L6V^|cR7i7nZW1Fd@ Ara{詑|(T*dN]Ko?s=@ |_EvF]׍kR)eBJc" MUUbY6`~V޴dJKß&~'d3i WWWWWW
Current Directory: /usr/share/emacs/24.3/lisp
Viewing File: /usr/share/emacs/24.3/lisp/profiler.elc
;ELC ;;; Compiled by mockbuild@buildfarm01-new.corp.cloudlinux.com on Tue Nov 11 12:48:38 2025 ;;; from file /builddir/build/BUILD/emacs-24.3/lisp/profiler.el ;;; in Emacs version 24.3.1 ;;; with all optimizations. ;;; This file uses dynamic docstrings, first added in Emacs 19.29. ;;; This file does not contain utf-8 non-ASCII characters, ;;; and so can be loaded in Emacs versions earlier than 23. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (byte-code "\300\301!\210\302\303\304\305\306\307\310\311\312\313& \207" [require cl-lib custom-declare-group profiler nil "Emacs profiler." :group lisp :version "24.3" :prefix "profiler-"] 10) (defconst profiler-version "24.3") (byte-code "\300\301\302\303\304DD\305\306\307\310\311&\207" [custom-declare-variable profiler-sampling-interval funcall function #[0 "\300\207" [1000000] 1 "\n\n(fn)"] "Default sampling interval in nanoseconds." :type integer :group profiler] 8) (defalias 'profiler-ensure-string #[257 "\211;\203\207\2119\203\300!\207\211\247\203\301!\207\302\303\"\207" [symbol-name number-to-string format "%s"] 4 "\n\n(fn OBJECT)"]) (defalias 'profiler-format-percent #[514 "\300\301_\245!\302P\207" [number-to-string 100 "%"] 5 "\n\n(fn NUMBER DIVISOR)"]) #@54 Format NUMBER in human readable string. (fn NUMBER) (defalias 'profiler-format-number #[257 "\211\250\203U\211\300V\203U\301\302!!T\303\246\304\305!\306\"\306\211:\203D@\262\300U\2033\211\307C\244\262\303\262\211C\244\262S\262A\262\202\310\311@\307=\203RA\202S\"\207\312!\207" [0 floor log10 3 append number-to-string nil 44 apply string profiler-ensure-string] 9 (#$ . 1337)]) (defalias 'profiler-format #[385 "\300\211\211\211\300\211\211\211 :\203\300 @\262 \211A\262\n@\262\211A\262\n@\262@\262:\203\300@\262:\203D\301\302#\202f;\203Q\303\"\202f9\203c\304!\203c!\202f\305!\262G\262W\203\200\211\306\nOC\244\262\202\264\211\307 Z\310\"\311 \312\"\203\226P\202\256\311 \313\"\203\244\211P\202\256\314\315\n\316#\205\256\300\262C\244\262 A\262\nA\262\202\n\301\317\"\207" [nil apply profiler-format format fboundp profiler-ensure-string 0 make-string 32 eql left right error "cl-ecase failed: %s, %s" (left right) concat] 18 "\n\n(fn FMT &rest ARGS)"]) #@106 Format ENTRY in human readable string. ENTRY would be a function name of a function itself. (fn ENTRY) (defalias 'profiler-format-entry #[257 "\211\242\300>\203\301\302\303!\"\207\304!\203\301\305\303!\"\207\306!\204+\2119\204+\211;\2030\301\307\"\207\301\310\303!\"\207" [(closure lambda) format "#<lambda 0x%x>" sxhash byte-code-function-p "#<compiled 0x%x>" subrp "%s" "#<unknown 0x%x>"] 5 (#$ . 2396)]) (defalias 'profiler-fixup-entry #[257 "\2119\203\207\300!\207" [profiler-format-entry] 3 "\n\n(fn ENTRY)"]) (defalias 'profiler-fixup-backtrace #[257 "\300\301\302\303\"\"\207" [apply vector mapcar profiler-fixup-entry] 6 "\n\n(fn BACKTRACE)"]) #@57 Compare LOG1 with LOG2 and return diff. (fn LOG1 LOG2) (defalias 'profiler-compare-logs #[514 "\300\301\302\"\303\304\305\306\307\310!\311\"\312\313%\"\210\303\304\305\314\307\310\"\315\"\316\313%\"\210\211\207" [make-hash-table :test equal maphash make-byte-code 514 "\301\300#\207" vconcat vector [puthash] 6 "\n\n(fn BACKTRACE COUNT)" "\302\303\300\304#Z\301#\207" [puthash gethash 0] 8] 11 (#$ . 3073)]) (defalias 'profiler-fixup-log #[257 "\300\301\302\"\303\304\305\306\307\310!\311\"\312\313%\"\210\211\207" [make-hash-table :test equal maphash make-byte-code 514 "\301\302!\300#\207" vconcat vector [puthash profiler-fixup-backtrace] 6 "\n\n(fn BACKTRACE COUNT)"] 9 "\n\n(fn LOG)"]) (byte-code "\300\301\302\303#\210\304\211\203\300\301\305\306\307!!#\210\207" [put profiler-profile-tag compiler-macro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block profiler-profile-tag (aref cl-x 0)) nil] 9 "\n\n(fn CL-WHOLE-ARG CL-X)"] "/builddir/build/BUILD/emacs-24.3/lisp/profiler.el" compiler-macro-file purecopy file-name-nondirectory] 7) (defalias 'profiler-profile-tag #[257 "\211\300H\207" [0] 3 "\n\n(fn CL-X)"]) (byte-code "\300\301\302\303#\210\304\211\203\300\301\305\306\307!!#\210\207" [put profiler-profile-version compiler-macro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block profiler-profile-version (aref cl-x 1)) nil] 9 "\n\n(fn CL-WHOLE-ARG CL-X)"] "/builddir/build/BUILD/emacs-24.3/lisp/profiler.el" compiler-macro-file purecopy file-name-nondirectory] 7) (defalias 'profiler-profile-version #[257 "\211\300H\207" [1] 3 "\n\n(fn CL-X)"]) (byte-code "\300\301\302\303#\210\304\211\203\300\301\305\306\307!!#\210\207" [put profiler-profile-type compiler-macro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block profiler-profile-type (aref cl-x 2)) nil] 9 "\n\n(fn CL-WHOLE-ARG CL-X)"] "/builddir/build/BUILD/emacs-24.3/lisp/profiler.el" compiler-macro-file purecopy file-name-nondirectory] 7) (defalias 'profiler-profile-type #[257 "\211\300H\207" [2] 3 "\n\n(fn CL-X)"]) (byte-code "\300\301\302\303#\210\304\211\203\300\301\305\306\307!!#\210\207" [put profiler-profile-log compiler-macro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block profiler-profile-log (aref cl-x 3)) nil] 9 "\n\n(fn CL-WHOLE-ARG CL-X)"] "/builddir/build/BUILD/emacs-24.3/lisp/profiler.el" compiler-macro-file purecopy file-name-nondirectory] 7) (defalias 'profiler-profile-log #[257 "\211\300H\207" [3] 3 "\n\n(fn CL-X)"]) (byte-code "\300\301\302\303#\210\304\211\203\300\301\305\306\307!!#\210\207" [put profiler-profile-timestamp compiler-macro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block profiler-profile-timestamp (aref cl-x 4)) nil] 9 "\n\n(fn CL-WHOLE-ARG CL-X)"] "/builddir/build/BUILD/emacs-24.3/lisp/profiler.el" compiler-macro-file purecopy file-name-nondirectory] 7) (defalias 'profiler-profile-timestamp #[257 "\211\300H\207" [4] 3 "\n\n(fn CL-X)"]) (byte-code "\300\301\302\303#\210\304\211\203\300\301\305\306\307!!#\210\207" [put profiler-profile-diff-p compiler-macro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block profiler-profile-diff-p (aref cl-x 5)) nil] 9 "\n\n(fn CL-WHOLE-ARG CL-X)"] "/builddir/build/BUILD/emacs-24.3/lisp/profiler.el" compiler-macro-file purecopy file-name-nondirectory] 7) (defalias 'profiler-profile-diff-p #[257 "\211\300H\207" [5] 3 "\n\n(fn CL-X)"]) (defalias 'copy-profiler-profile #[257 "\300!\207" [copy-sequence] 3 "\n\n(fn X)"]) (byte-code "\300\301\302\303#\210\304\211\203\300\301\305\306\307!!#\210\207" [put profiler-make-profile compiler-macro #[385 "\300>\206\301A@\302>\206\303A@\304>A@\305>A@\306>A@\307>A@\211\203T\211@\310>\203<\211AA\262\202)\311>A@\203K\312\262\202)\313\314@\"\210\202)\210\315\316\317\312 \312      & \207" [:tag (nil 'profiler-profile) :version (nil profiler-version) :type :log :timestamp :diff-p (:tag :version :type :log :timestamp :diff-p :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:tag :version :type :log :timestamp :diff-p)" cl--defsubst-expand (tag version type log timestamp diff-p) (cl-block profiler-make-profile (vector tag version type log timestamp diff-p))] 20 "\n\n(fn CL-WHOLE &cl-quote &key TAG VERSION TYPE LOG TIMESTAMP DIFF-P)"] "/builddir/build/BUILD/emacs-24.3/lisp/profiler.el" compiler-macro-file purecopy file-name-nondirectory] 7) #@51 (fn &key TAG VERSION TYPE LOG TIMESTAMP DIFF-P) (defalias 'profiler-make-profile #[128 "\301>\206\302A@\303>\206\304DA@\305>A@\306>A@\307>A@\310>A@\211\203V\211@\311>\203>\211AA\262\202+\312>A@\203M\304\262\202+\313\314@\"\210\202+\210\315&\207" [profiler-version :tag (nil profiler-profile) :version nil :type :log :timestamp :diff-p (:tag :version :type :log :timestamp :diff-p :allow-other-keys) :allow-other-keys error "Keyword argument %s not one of (:tag :version :type :log :timestamp :diff-p)" vector] 14 (#$ . 7607)]) (byte-code "\301C\302\303\304\305#\210\302\303\306\307#\210\302\303\310\311#\210\302\303\312\311#\210\302\313\314\315#\210\302\316\314\315#\210\302\317\314\315#\210\302\320\314\315#\210\302\321\314\315#\210\302\322\314\315#\210\302\323\314\315#\210\302\324\314\315#\207" [cl-struct-profiler-profile-tags cl-struct-profiler-profile put profiler-profile cl-struct-slots ((tag 'profiler-profile) (version profiler-version) (type) (log) (timestamp) (diff-p)) cl-struct-type (vector nil) cl-struct-include nil cl-struct-print profiler-make-profile side-effect-free t copy-profiler-profile profiler-profile-diff-p profiler-profile-timestamp profiler-profile-log profiler-profile-type profiler-profile-version profiler-profile-tag] 4) #@73 Compare PROFILE1 with PROFILE2 and return diff. (fn PROFILE1 PROFILE2) (defalias 'profiler-compare-profiles #[514 "\300H\300H=\204\301\302!\210\303\304\300H\305\306 \307\310\311\312\n\313H\n\313H\"&\207" [2 error "Can't compare different type of profiles" profiler-make-profile :type :timestamp current-time :diff-p t :log profiler-compare-logs 3] 14 (#$ . 8909)]) #@80 Fixup PROFILE so that the profile could be serialized into file. (fn PROFILE) (defalias 'profiler-fixup-profile #[257 "\300\301\302H\303\304H\305\306H\307\310 \311H!&\207" [profiler-make-profile :type 2 :timestamp 4 :diff-p 5 :log profiler-fixup-log 3] 12 (#$ . 9289)]) #@76 Write PROFILE into file FILENAME. (fn PROFILE FILENAME &optional CONFIRM) (defalias 'profiler-write-profile #[770 "\302\303!r\211q\210\304\305\306\307\310\311!\312\"\313\314%DC\216\315\211\316\317!p\"\210*\320\"*\207" [print-length print-level generate-new-buffer " *temp*" funcall make-byte-code 0 "\301\300!\205 \302\300!\207" vconcat vector [buffer-name kill-buffer] 2 "\n\n(fn)" nil print profiler-fixup-profile write-file] 11 (#$ . 9572)]) #@49 Read profile from file FILENAME. (fn FILENAME) (defalias 'profiler-read-profile #[257 "\300\301!r\211q\210\302\303\304\305\306\307!\310\"\311\312%DC\216\313!\210eb\210\314p!*\207" [generate-new-buffer " *temp*" funcall make-byte-code 0 "\301\300!\205 \302\300!\207" vconcat vector [buffer-name kill-buffer] 2 "\n\n(fn)" insert-file-contents read] 9 (#$ . 10032)]) #@27 Return CPU profile. (fn) (defalias 'profiler-cpu-profile #[0 "\300\301!\205\300\302!\205\301 \205\303\304\305\306\307 \310\302 &\207" [fboundp profiler-cpu-running-p profiler-cpu-log profiler-make-profile :type cpu :timestamp current-time :log] 7 (#$ . 10407)]) #@30 Return memory profile. (fn) (defalias 'profiler-memory-profile #[0 "\300 \205\301\302\303\304\305 \306\307 &\207" [profiler-memory-running-p profiler-make-profile :type memory :timestamp current-time :log profiler-memory-log] 7 (#$ . 10683)]) (byte-code "\300\301\302\303#\210\304\211\203\300\301\305\306\307!!#\210\207" [put profiler-calltree-entry compiler-macro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block profiler-calltree-entry (or (and (memq (aref cl-x 0) cl-struct-profiler-calltree-tags)) (error "%s accessing a non-%s" 'profiler-calltree-entry 'profiler-calltree)) (aref cl-x 1)) nil] 9 "\n\n(fn CL-WHOLE-ARG CL-X)"] "/builddir/build/BUILD/emacs-24.3/lisp/profiler.el" compiler-macro-file purecopy file-name-nondirectory] 7) (defalias 'profiler-calltree-entry #[257 "\211\301H>\204\302\303\304\305#\210\211\306H\207" [cl-struct-profiler-calltree-tags 0 error "%s accessing a non-%s" profiler-calltree-entry profiler-calltree 1] 5 "\n\n(fn CL-X)"]) (byte-code "\300\301\302\303#\210\304\211\203\300\301\305\306\307!!#\210\207" [put profiler-calltree-count compiler-macro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block profiler-calltree-count (or (and (memq (aref cl-x 0) cl-struct-profiler-calltree-tags)) (error "%s accessing a non-%s" 'profiler-calltree-count 'profiler-calltree)) (aref cl-x 2)) nil] 9 "\n\n(fn CL-WHOLE-ARG CL-X)"] "/builddir/build/BUILD/emacs-24.3/lisp/profiler.el" compiler-macro-file purecopy file-name-nondirectory] 7) (defalias 'profiler-calltree-count #[257 "\211\301H>\204\302\303\304\305#\210\211\306H\207" [cl-struct-profiler-calltree-tags 0 error "%s accessing a non-%s" profiler-calltree-count profiler-calltree 2] 5 "\n\n(fn CL-X)"]) (byte-code "\300\301\302\303#\210\304\211\203\300\301\305\306\307!!#\210\207" [put profiler-calltree-count-percent compiler-macro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block profiler-calltree-count-percent (or (and (memq (aref cl-x 0) cl-struct-profiler-calltree-tags)) (error "%s accessing a non-%s" 'profiler-calltree-count-percent 'profiler-calltree)) (aref cl-x 3)) nil] 9 "\n\n(fn CL-WHOLE-ARG CL-X)"] "/builddir/build/BUILD/emacs-24.3/lisp/profiler.el" compiler-macro-file purecopy file-name-nondirectory] 7) (defalias 'profiler-calltree-count-percent #[257 "\211\301H>\204\302\303\304\305#\210\211\306H\207" [cl-struct-profiler-calltree-tags 0 error "%s accessing a non-%s" profiler-calltree-count-percent profiler-calltree 3] 5 "\n\n(fn CL-X)"]) (byte-code "\300\301\302\303#\210\304\211\203\300\301\305\306\307!!#\210\207" [put profiler-calltree-parent compiler-macro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block profiler-calltree-parent (or (and (memq (aref cl-x 0) cl-struct-profiler-calltree-tags)) (error "%s accessing a non-%s" 'profiler-calltree-parent 'profiler-calltree)) (aref cl-x 4)) nil] 9 "\n\n(fn CL-WHOLE-ARG CL-X)"] "/builddir/build/BUILD/emacs-24.3/lisp/profiler.el" compiler-macro-file purecopy file-name-nondirectory] 7) (defalias 'profiler-calltree-parent #[257 "\211\301H>\204\302\303\304\305#\210\211\306H\207" [cl-struct-profiler-calltree-tags 0 error "%s accessing a non-%s" profiler-calltree-parent profiler-calltree 4] 5 "\n\n(fn CL-X)"]) (byte-code "\300\301\302\303#\210\304\211\203\300\301\305\306\307!!#\210\207" [put profiler-calltree-children compiler-macro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block profiler-calltree-children (or (and (memq (aref cl-x 0) cl-struct-profiler-calltree-tags)) (error "%s accessing a non-%s" 'profiler-calltree-children 'profiler-calltree)) (aref cl-x 5)) nil] 9 "\n\n(fn CL-WHOLE-ARG CL-X)"] "/builddir/build/BUILD/emacs-24.3/lisp/profiler.el" compiler-macro-file purecopy file-name-nondirectory] 7) (defalias 'profiler-calltree-children #[257 "\211\301H>\204\302\303\304\305#\210\211\306H\207" [cl-struct-profiler-calltree-tags 0 error "%s accessing a non-%s" profiler-calltree-children profiler-calltree 5] 5 "\n\n(fn CL-X)"]) (byte-code "\300\301\302\303#\210\304\211\203\300\301\305\306\307!!#\210\207" [put profiler-calltree-p compiler-macro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block profiler-calltree-p (and (vectorp cl-x) (>= (length cl-x) 6) (memq (aref cl-x 0) cl-struct-profiler-calltree-tags) t)) nil] 9 "\n\n(fn CL-WHOLE-ARG CL-X)"] "/builddir/build/BUILD/emacs-24.3/lisp/profiler.el" compiler-macro-file purecopy file-name-nondirectory] 7) (defalias 'profiler-calltree-p #[257 "\301!\205\211G\302Y\205\211\303H>\205\304\207" [cl-struct-profiler-calltree-tags vectorp 6 0 t] 3 "\n\n(fn CL-X)"]) (defalias 'copy-profiler-calltree #[257 "\300!\207" [copy-sequence] 3 "\n\n(fn X)"]) (byte-code "\300\301\302\303#\210\304\211\203\300\301\305\306\307!!#\210\207" [put profiler-make-calltree compiler-macro #[385 "\300>A@\301>\206\f\302A@\303>\206\304A@\305>A@\306>A@\211\203M\211@\307>\2035\211AA\262\202\"\310>A@\203D\311\262\202\"\312\313@\"\210\202\"\210\314\315\316\311\n\311\n\n\n\n\n&\n\207" [:entry :count (nil 0) :count-percent (nil "") :parent :children (:entry :count :count-percent :parent :children :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:entry :count :count-percent :parent :children)" cl--defsubst-expand (entry count count-percent parent children) (cl-block profiler-make-calltree (vector 'cl-struct-profiler-calltree entry count count-percent parent children))] 18 "\n\n(fn CL-WHOLE &cl-quote &key ENTRY COUNT COUNT-PERCENT PARENT CHILDREN)"] "/builddir/build/BUILD/emacs-24.3/lisp/profiler.el" compiler-macro-file purecopy file-name-nondirectory] 7) #@55 (fn &key ENTRY COUNT COUNT-PERCENT PARENT CHILDREN) (defalias 'profiler-make-calltree #[128 "\300>A@\301>\206\f\302A@\303>\206\304A@\305>A@\306>A@\211\203M\211@\307>\2035\211AA\262\202\"\310>A@\203D\311\262\202\"\312\313@\"\210\202\"\210\314\315&\207" [:entry :count (nil 0) :count-percent (nil "") :parent :children (:entry :count :count-percent :parent :children :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:entry :count :count-percent :parent :children)" vector cl-struct-profiler-calltree] 13 (#$ . 16435)]) (byte-code "\301C\302\303\304\305#\210\302\303\306\307#\210\302\303\310\311#\210\302\303\312\313#\210\302\314\315\313#\210\302\316\315\313#\210\302\317\315\320#\210\302\321\315\313#\210\302\322\315\313#\210\302\323\315\313#\210\302\324\315\313#\210\302\325\315\313#\207" [cl-struct-profiler-calltree-tags cl-struct-profiler-calltree put profiler-calltree cl-struct-slots ((cl-tag-slot) (entry) (count 0) (count-percent "") (parent) (children)) cl-struct-type (vector nil) cl-struct-include nil cl-struct-print t profiler-make-calltree side-effect-free copy-profiler-calltree profiler-calltree-p error-free profiler-calltree-children profiler-calltree-parent profiler-calltree-count-percent profiler-calltree-count profiler-calltree-entry] 4) (defalias 'profiler-calltree-leaf-p #[257 "\211\301H>\204\302\303\304\305#\210\211\306H?\207" [cl-struct-profiler-calltree-tags 0 error "%s accessing a non-%s" profiler-calltree-children profiler-calltree 5] 5 "\n\n(fn TREE)"]) (defalias 'profiler-calltree-count< #[514 "\301H>\204\302\303\304\305#\210\306H\307=\203\307\207\211\301H>\204&\302\303\304\305#\210\211\306H\307=\2030\310\207\301H>\204>\302\303\311\305#\210\312H\301H>\204O\302\303\311\305#\210\312HW\207" [cl-struct-profiler-calltree-tags 0 error "%s accessing a non-%s" profiler-calltree-entry profiler-calltree 1 t nil profiler-calltree-count 2] 7 "\n\n(fn A B)"]) (defalias 'profiler-calltree-count> #[514 "\300\"?\207" [profiler-calltree-count<] 5 "\n\n(fn A B)"]) (defalias 'profiler-calltree-depth #[257 "\211\301H>\204\302\303\304\305#\210\211\306H\211\204\301\202\307!T\207" [cl-struct-profiler-calltree-tags 0 error "%s accessing a non-%s" profiler-calltree-parent profiler-calltree 4 profiler-calltree-depth] 5 "\n\n(fn TREE)"]) #@59 Return a child tree of ENTRY under TREE. (fn TREE ENTRY) (defalias 'profiler-calltree-find #[514 "\301\302H>\204\303\304\305\306#\210\307H\211\203<\204<\211@\211\302H>\204*\303\304\310\306#\210\211\311H\232\2035\211\262A\266\202\202\207" [cl-struct-profiler-calltree-tags nil 0 error "%s accessing a non-%s" profiler-calltree-children profiler-calltree 5 profiler-calltree-entry 1] 9 (#$ . 18798)]) (defalias 'profiler-calltree-walk #[514 "\211!\210\301H>\204\302\303\304\305#\210\306H\211\205'\211@\307\"\210A\266\202\202\207" [cl-struct-profiler-calltree-tags 0 error "%s accessing a non-%s" profiler-calltree-children profiler-calltree 5 profiler-calltree-walk] 7 "\n\n(fn CALLTREE FUNCTION)"]) (defalias 'profiler-calltree-build-1 #[770 "\300\301\302\303\304\305\"\306\"\307\310%\"\207" [maphash make-byte-code 514 "\300G\211\303\211W\205u\211\301\203\202\304\305#H\211\203l\306\"\211\204P\307\310\303\311 \312&\262\303H\n>\204D\313\314\315\316#\210\211\317\317HBI\266\211\303H\n>\204^\313\314\320\316#\210\211\211\321\321H \\I\266\262\266\211T\262\202\266\202\207" vconcat vector [cl-struct-profiler-calltree-tags 0 - 1 profiler-calltree-find vector cl-struct-profiler-calltree "" nil error "%s accessing a non-%s" profiler-calltree-children profiler-calltree 5 profiler-calltree-count 2] 16 "\n\n(fn BACKTRACE COUNT)"] 11 "\n\n(fn TREE LOG &optional REVERSE)"]) (defalias 'profiler-calltree-compute-percentages #[257 "\301C\301H>\204\302\303\304\305#\210\306H\211\2037\211@\211@\301H>\204*\302\303\307\305#\210\310H\\\240\210A\266\202\202\210\311@!?\205P\312\313\314\315\316\317!\320\"\321\322%\"\207" [cl-struct-profiler-calltree-tags 0 error #1="%s accessing a non-%s" profiler-calltree-children profiler-calltree 5 profiler-calltree-count 2 zerop profiler-calltree-walk make-byte-code 257 "\211\302H >\204\303\304\305\306#\210\211\211\307\310\302H >\204 \303\304\311\306#\210\312H\300@\"I\207" vconcat vector [cl-struct-profiler-calltree-tags 0 error #1# profiler-calltree-count-percent profiler-calltree 3 profiler-format-percent profiler-calltree-count 2] 9 "\n\n(fn NODE)"] 10 "\n\n(fn TREE)"]) #@25 (fn LOG &key REVERSE) (defalias 'profiler-calltree-build #[385 "\300>A@\211\2030\211@\301>\203\211AA\262\202\302>A@\203'\303\262\202\304\305@\"\210\202\210\306\307\303\310\311\303\211&\312#\210\313!\210\211\262\207" [:reverse (:reverse :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:reverse)" vector cl-struct-profiler-calltree 0 "" profiler-calltree-build-1 profiler-calltree-compute-percentages] 10 (#$ . 21008)]) (defalias 'profiler-calltree-sort #[514 "\301H>\204\302\303\304\305#\210\306H\301H>\204\302\303\304\305#\210\211\306\307\"I\266\301H>\2048\302\303\304\305#\210\306H\211\205M\211@\310\"\210A\266\202\202;\262\207" [cl-struct-profiler-calltree-tags 0 error "%s accessing a non-%s" profiler-calltree-children profiler-calltree 5 sort profiler-calltree-sort] 9 "\n\n(fn TREE PREDICATE)"]) (byte-code "\300\301\302\303\304DD\305\306\307\310\311&\210\300\312\302\303\313DD\314\306\307\310\311&\210\300\315\302\303\316DD\317\306\307\310\311&\207" [custom-declare-variable profiler-report-closed-mark funcall function #[0 "\300\207" ["+"] 1 "+\n\n(fn)"] "An indicator of closed calltrees." :type string :group profiler profiler-report-open-mark #[0 "\300\207" ["-"] 1 "-\n\n(fn)"] "An indicator of open calltrees." profiler-report-leaf-mark #[0 "\300\207" [" "] 1 " \n\n(fn)"] "An indicator of calltree leaves."] 8) (defvar profiler-report-cpu-line-format '((50 left) (24 right ((19 right) (5 right))))) (defvar profiler-report-memory-line-format '((55 left) (19 right ((14 right profiler-format-number) (5 right))))) #@22 The current profile. (defvar profiler-report-profile nil (#$ . 22624)) (make-variable-buffer-local 'profiler-report-profile) #@82 True if calltree is rendered in bottom-up. Do not touch this variable directly. (defvar profiler-report-reversed nil (#$ . 22755)) (make-variable-buffer-local 'profiler-report-reversed) #@85 The value can be `ascending' or `descending'. Do not touch this variable directly. (defvar profiler-report-order nil (#$ . 22948)) (make-variable-buffer-local 'profiler-report-order) (defalias 'profiler-report-make-entry-part #[257 "\211\300=\203\n\301\202'\2119\203$\302!\203$\303\304!\305\306\307\310\311\312&\202'\313!\303\314#\207" [t "Others" fboundp propertize symbol-name face link mouse-face highlight help-echo "mouse-2: jump to definition\nRET: expand or collapse" profiler-format-entry profiler-entry] 9 "\n\n(fn ENTRY)"]) (defalias 'profiler-report-make-name-part #[257 "\211\303H>\204\304\305\306\307#\210\211\310H\311!\312S\313_\314\"\315!\203% \202&\n\316!\317\320$\207" [cl-struct-profiler-calltree-tags profiler-report-leaf-mark profiler-report-closed-mark 0 error "%s accessing a non-%s" profiler-calltree-entry profiler-calltree 1 profiler-calltree-depth make-string 2 32 profiler-calltree-leaf-p profiler-report-make-entry-part format "%s%s %s"] 11 "\n\n(fn TREE)"]) (defalias 'profiler-report-header-line-format #[385 "\300\301#\302\303\304#\305P\207" [apply profiler-format replace-regexp-in-string "%" "%%" " "] 7 "\n\n(fn FMT &rest ARGS)"]) (defalias 'profiler-report-line-format #[257 "\304H\305!\306H >\204\307\310\311\312#\210\313H\306H >\204%\307\310\314\312#\210\315H\316\317\313H\320\"\2036\n\202N\317\313H\321\"\203C \202N\307\322\313H\323#\205N\324\203h\306V\203b\325\326\"\202c\327D\202kD#\207" [profiler-report-profile cl-struct-profiler-calltree-tags profiler-report-cpu-line-format profiler-report-memory-line-format 5 profiler-report-make-name-part 0 error "%s accessing a non-%s" profiler-calltree-count profiler-calltree 2 profiler-calltree-count-percent 3 profiler-format eql cpu memory "cl-ecase failed: %s, %s" (cpu memory) nil format "+%s" ""] 11 "\n\n(fn TREE)"]) (defalias 'profiler-report-insert-calltree #[257 "\300!\301\302P\303#c\207" [profiler-report-line-format propertize "\n" calltree] 6 "\n\n(fn TREE)"]) (defalias 'profiler-report-insert-calltree-children #[257 "\301\302\303H>\204\304\305\306\307#\210\310H\"\207" [cl-struct-profiler-calltree-tags mapc profiler-report-insert-calltree 0 error "%s accessing a non-%s" profiler-calltree-children profiler-calltree 5] 7 "\n\n(fn TREE)"]) (defvar profiler-report-mode-map (byte-code "\300 \301\302\303#\210\301\304\305#\210\301\306\307#\210\301\310\307#\210\301\311\307#\210\301\312\313#\210\301\314\313#\210\301\315\313#\210\301\316\317#\210\301\320\321#\210\301\322\323#\210\301\324\325#\210\301\326\327#\210\301\330\331#\210\301\332\333#\210\301\334\335#\210\211\207" [make-sparse-keymap define-key "n" profiler-report-next-entry "p" profiler-report-previous-entry " " profiler-report-toggle-entry " " "i" "f" profiler-report-find-entry "j" [mouse-2] "d" profiler-report-describe-entry "C" profiler-report-render-calltree "B" profiler-report-render-reversed-calltree "A" profiler-report-ascending-sort "D" profiler-report-descending-sort "=" profiler-report-compare-profile "" profiler-report-write-profile "q" quit-window] 5)) (defalias 'profiler-report-make-buffer-name #[257 "\300\301\302\303H\304\"\203\305\202'\302\303H\306\"\203\307\202'\310\311\303H\312#\205'\313\314\315\316H\"#\207" [format "*%s-Profiler-Report %s*" eql 2 cpu CPU memory Memory error "cl-ecase failed: %s, %s" (cpu memory) nil format-time-string "%Y-%m-%d %T" 4] 8 "\n\n(fn PROFILE)"]) #@56 Make a buffer for PROFILE and return it. (fn PROFILE) (defalias 'profiler-report-setup-buffer-1 #[257 "\303!\304!r\211q\210\305 \210\306\307)\207" [profiler-report-profile profiler-report-reversed profiler-report-order profiler-report-make-buffer-name get-buffer-create profiler-report-mode nil descending] 4 (#$ . 26416)]) #@83 Make a buffer for PROFILE with rendering the profile and return it. (fn PROFILE) (defalias 'profiler-report-setup-buffer #[257 "\300!r\211q\210\301 \210)\211\207" [profiler-report-setup-buffer-1 profiler-report-render-calltree] 3 (#$ . 26753)]) (byte-code "\300\301N\204\302\300\301\303\304!#\210\305\306!\204\302\306\307\310#\210\300\207" [profiler-report-mode-hook variable-documentation put purecopy "Hook run when entering Profiler-Report mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it. (This is true for all hook variables.)" boundp profiler-report-mode-map definition-name profiler-report-mode] 5) (defvar profiler-report-mode-map (make-sparse-keymap)) (byte-code "\300\301N\204\302\300\301\303\304!#\210\305\306!\204\302\306\307\310#\210\300\207" [profiler-report-mode-map variable-documentation put purecopy "Keymap for `profiler-report-mode'." boundp profiler-report-mode-syntax-table definition-name profiler-report-mode] 5) (defvar profiler-report-mode-syntax-table (make-syntax-table)) (byte-code "\300\301N\204\302\300\301\303\304!#\210\302\305\306\307#\207" [profiler-report-mode-syntax-table variable-documentation put purecopy "Syntax table for `profiler-report-mode'." profiler-report-mode-abbrev-table definition-name profiler-report-mode] 5) (defvar profiler-report-mode-abbrev-table (progn (define-abbrev-table 'profiler-report-mode-abbrev-table nil) profiler-report-mode-abbrev-table)) (byte-code "\300\301N\204\302\300\301\303\304!#\210\302\305\306\307#\207" [profiler-report-mode-abbrev-table variable-documentation put purecopy "Abbrev table for `profiler-report-mode'." profiler-report-mode derived-mode-parent special-mode] 5) #@225 Profiler Report Mode. In addition to any hooks its parent mode `special-mode' might have run, this mode runs the hook `profiler-report-mode-hook', as the final step during initialization. \{profiler-report-mode-map} (fn) (defalias 'profiler-report-mode #[0 "\306\300!\210\307\310 \210\311\312\310\313N\203\314\311\313\310\313N#\210\315 !\204'\316 \317 \"\210\320\f!\211\2035\211\321 =\203;\322\f\323 \"\210\210\324 \325\"\204R =\204R\326 \325C#\210\327 !\210\330\f!\210 \307\211\307)\331\332!\207" [delay-mode-hooks major-mode mode-name profiler-report-mode-map profiler-report-mode-syntax-table profiler-report-mode-abbrev-table make-local-variable t special-mode profiler-report-mode "Profiler-Report" mode-class put keymap-parent set-keymap-parent current-local-map char-table-parent standard-syntax-table set-char-table-parent syntax-table abbrev-table-get :parents abbrev-table-put use-local-map set-syntax-table run-mode-hooks profiler-report-mode-hook local-abbrev-table buffer-read-only buffer-undo-list truncate-lines] 6 (#$ . 28473) nil]) (defalias 'profiler-report-calltree-at-point #[256 "\300\206`\301\"\207" [get-text-property calltree] 4 "\n\n(fn &optional POINT)"]) (defalias 'profiler-report-move-to-entry #[0 "\300\301 \302\"\211\203\211b\202\303 \207" [next-single-property-change line-beginning-position profiler-entry back-to-indentation] 3 "\n\n(fn)"]) #@34 Move cursor to next entry. (fn) (defalias 'profiler-report-next-entry #[0 "\300y\210\301 \207" [nil profiler-report-move-to-entry] 1 (#$ . 29886) nil]) #@38 Move cursor to previous entry. (fn) (defalias 'profiler-report-previous-entry #[0 "\300y\210\301 \207" [-1 profiler-report-move-to-entry] 1 (#$ . 30045) nil]) #@30 Expand entry at point. (fn) (defalias 'profiler-report-expand-entry #[0 "\212\303 \210\304\305P\306 \307#\205(\310 \211\205&\307\311\n\305P!\210\312y\210\313!\210)\307\262)\207" [profiler-report-closed-mark inhibit-read-only profiler-report-open-mark beginning-of-line search-forward " " line-end-position t profiler-report-calltree-at-point replace-match nil profiler-report-insert-calltree-children] 4 (#$ . 30211) nil]) #@32 Collapse entry at point. (fn) (defalias 'profiler-report-collapse-entry #[0 "\212\303 \210\304\305P\306 \307#\205N\310 \311!\312\313!\314\203K\307\315\n\305P!\210\314y\316=\203E\317`\320\"\211\205:\311!\211\262\247\262\203E\211V\204$\312 |\210)\266\307)\207" [profiler-report-open-mark inhibit-read-only profiler-report-closed-mark beginning-of-line search-forward " " line-end-position t profiler-report-calltree-at-point profiler-calltree-depth line-beginning-position 2 nil replace-match 0 get-text-property calltree] 7 (#$ . 30647) nil]) #@75 Expand entry at point if the tree is collapsed, otherwise collapse. (fn) (defalias 'profiler-report-toggle-entry #[0 "\300 \206\301 \207" [profiler-report-expand-entry profiler-report-collapse-entry] 1 (#$ . 31212) nil]) #@44 Find entry at point. (fn &optional EVENT) (defalias 'profiler-report-find-entry #[256 "\211\203\n\301\302!!\210\303 \211\205&\211\304H>\204\305\306\307\310#\210\211\311H\312!\262\207" [cl-struct-profiler-calltree-tags posn-set-point event-end profiler-report-calltree-at-point 0 error "%s accessing a non-%s" profiler-calltree-entry profiler-calltree 1 find-function] 6 (#$ . 31442) (list last-nonmenu-event)]) #@32 Describe entry at point. (fn) (defalias 'profiler-report-describe-entry #[0 "\301 \211\205 \211\302H>\204\303\304\305\306#\210\211\307H\310\311!\210\312!\262\207" [cl-struct-profiler-calltree-tags profiler-report-calltree-at-point 0 error "%s accessing a non-%s" profiler-calltree-entry profiler-calltree 1 require help-fns describe-function] 5 (#$ . 31868) nil]) #@56 (fn PROFILE &key REVERSE (ORDER (quote descending))) (defalias 'profiler-report-render-calltree-1 #[385 "\304>A@\305>\206\f\306A@\211\2039\211@\307>\203\"\211AA\262\202\310>A@\2030\311\262\202\312\313@\"\210\202\210\314\315H\304#\316\317H\320\"\203T\321\322\323\324D#\202s\316\317H\325\"\203g\321 \322\326\324D#\202s\312\327\317H\330#\205s\311\316\331\"\203\332\202\223\316\333\"\203\212\334\202\223\312\327\335#\205\223\311\336\"\266\337\340 \210\341!\210eb\210\342 )\262\207" [profiler-report-cpu-line-format profiler-report-memory-line-format header-line-format inhibit-read-only :reverse :order (nil descending) (:reverse :order :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:reverse :order)" profiler-calltree-build 3 eql 2 cpu profiler-report-header-line-format "Function" "CPU samples" "%" memory "Bytes" "cl-ecase failed: %s, %s" (cpu memory) ascending profiler-calltree-count< descending profiler-calltree-count> (ascending descending) profiler-calltree-sort t erase-buffer profiler-report-insert-calltree-children profiler-report-move-to-entry] 10 (#$ . 32245)]) (defalias 'profiler-report-rerender-calltree #[0 "\303\304 \305\n%\207" [profiler-report-profile profiler-report-reversed profiler-report-order profiler-report-render-calltree-1 :reverse :order] 6 "\n\n(fn)"]) #@29 Render calltree view. (fn) (defalias 'profiler-report-render-calltree #[0 "\301\302 \207" [profiler-report-reversed nil profiler-report-rerender-calltree] 1 (#$ . 33616) nil]) #@38 Render reversed calltree view. (fn) (defalias 'profiler-report-render-reversed-calltree #[0 "\301\302 \207" [profiler-report-reversed t profiler-report-rerender-calltree] 1 (#$ . 33800) nil]) #@46 Sort calltree view in ascending order. (fn) (defalias 'profiler-report-ascending-sort #[0 "\301\302 \207" [profiler-report-order ascending profiler-report-rerender-calltree] 1 (#$ . 34000) nil]) #@47 Sort calltree view in descending order. (fn) (defalias 'profiler-report-descending-sort #[0 "\301\302 \207" [profiler-report-order descending profiler-report-rerender-calltree] 1 (#$ . 34203) nil]) (defalias 'profiler-report-profile #[257 "\300\301!!\207" [switch-to-buffer profiler-report-setup-buffer] 4 "\n\n(fn PROFILE)"]) (defalias 'profiler-report-profile-other-window #[257 "\300\301!!\207" [switch-to-buffer-other-window profiler-report-setup-buffer] 4 "\n\n(fn PROFILE)"]) (defalias 'profiler-report-profile-other-frame #[257 "\300\301!!\207" [switch-to-buffer-other-frame profiler-report-setup-buffer] 4 "\n\n(fn PROFILE)"]) #@56 Compare the current profile with another. (fn BUFFER) (defalias 'profiler-report-compare-profile #[257 "r\211q\210)\301\"\300!\207" [profiler-report-profile profiler-compare-profiles] 6 (#$ . 34849) (byte-code "\300\301!C\207" [read-buffer "Compare to: "] 2)]) #@80 Write the current profile into file FILENAME. (fn FILENAME &optional CONFIRM) (defalias 'profiler-report-write-profile #[513 "\301#\207" [profiler-report-profile profiler-write-profile] 6 (#$ . 35122) (byte-code "\302\303\" ?D\207" [default-directory current-prefix-arg read-file-name "Write profile: "] 3)]) #@227 Start/restart profilers. MODE can be one of `cpu', `mem', or `cpu+mem'. If MODE is `cpu' or `cpu+mem', time-based profiler will be started. Also, if MODE is `mem' or `cpu+mem', then memory profiler will be started. (fn MODE) (defalias 'profiler-start #[257 "\301\302\"\203\303!\210\304\305!\207\301\306\"\203\307 \210\304\310!\207\301\311\"\203/\303!\210\307 \210\304\312!\207\313\314\315#\2058\316\207" [profiler-sampling-interval eql cpu profiler-cpu-start message "CPU profiler started" mem profiler-memory-start "Memory profiler started" cpu+mem "CPU and memory profiler started" error "cl-ecase failed: %s, %s" (cpu mem cpu+mem) nil] 5 (#$ . 35443) (byte-code "\300\301!\204\n\302\202\303\304\305\306\307\310\307\211\311&!C\207" [fboundp profiler-cpu-start mem intern completing-read "Mode (default cpu): " ("cpu" "mem" "cpu+mem") nil t "cpu"] 9)]) #@60 Stop started profilers. Profiler logs will be kept. (fn) (defalias 'profiler-stop #[0 "\300\301!\205\301 \302 \303\304\203\203\305\202)\203 \306\202)\203(\307\202)\310\"\207" [fboundp profiler-cpu-stop profiler-memory-stop message "%s profiler stopped" "CPU and memory" "Memory" "CPU" "No"] 5 (#$ . 36320) nil]) #@28 Reset profiler logs. (fn) (defalias 'profiler-reset #[0 "\300\301!\203 \301 \210\302 \210\303\207" [fboundp profiler-cpu-log profiler-memory-log t] 2 (#$ . 36655) nil]) (defalias 'profiler-report-cpu #[0 "\300 \211\205 \301!\207" [profiler-cpu-profile profiler-report-profile-other-window] 3 "\n\n(fn)"]) (defalias 'profiler-report-memory #[0 "\300 \211\205 \301!\207" [profiler-memory-profile profiler-report-profile-other-window] 3 "\n\n(fn)"]) #@33 Report profiling results. (fn) (defalias 'profiler-report #[0 "\300 \210\301 \207" [profiler-report-cpu profiler-report-memory] 1 (#$ . 37114) nil]) #@39 Open profile FILENAME. (fn FILENAME) (defalias 'profiler-find-profile #[257 "\300\301!!\207" [profiler-report-profile profiler-read-profile] 4 (#$ . 37270) (byte-code "\301\302\"C\207" [default-directory read-file-name "Find profile: "] 3)]) #@39 Open profile FILENAME. (fn FILENAME) (defalias 'profiler-find-profile-other-window #[257 "\300\301!!\207" [profiler-report-profile-other-window profiler-read-profile] 4 (#$ . 37521) (byte-code "\301\302\"C\207" [default-directory read-file-name "Find profile: "] 3)]) #@39 Open profile FILENAME. (fn FILENAME) (defalias 'profiler-find-profile-other-frame #[257 "\300\301!!\207" [profiler-report-profile-other-frame profiler-read-profile] 4 (#$ . 37798) (byte-code "\301\302\"C\207" [default-directory read-file-name "Find profile: "] 3)]) (provide 'profiler)