grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026B âռʣ¤éíã@slddlZddlZddlZdddgZGdd„dƒZddd„Zdd d„ZGd d„dƒZd d „Ze d krheƒdS)éNÚrunÚrunctxÚProfilec@s,eZdZdd„Zdd„Zdd„Zdd„Zd S) Ú_UtilscCs ||_dS)N)Úprofiler)Úselfr©rú,/opt/alt/python37/lib64/python3.7/profile.pyÚ__init__/sz_Utils.__init__c CsF| ¡}z(y| |¡Wntk r,YnXWd| |||¡XdS)N)rrÚ SystemExitÚ_show)rÚ statementÚfilenameÚsortÚprofrrr r2s  z _Utils.runc CsJ| ¡}z,y| |||¡Wntk r0YnXWd| |||¡XdS)N)rrr r )rr ÚglobalsÚlocalsrrrrrr r;s  z _Utils.runctxcCs"|dk r| |¡n | |¡dS)N)Ú dump_statsÚ print_stats)rrrrrrr r Ds z _Utils._showN)Ú__name__Ú __module__Ú __qualname__r rrr rrrr r)s  réÿÿÿÿcCsttƒ |||¡S)N)rrr)r rrrrr rPs cCsttƒ |||||¡S)N)rrr)r rrrrrrr r]sc@sìeZdZdZd3dd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dd„Z dd„Z dd„Z e e e e e e dœZ dd„ZGdd„dƒZGdd„dƒZdd„Zdd„Zd4d!d"„Zd#d$„Zd%d&„Zd'd(„Zd)d*„Zd+d,„Zd-d.„Zd5d/d0„Zd1d2„ZdS)6rrNcCsÌi|_d|_d|_d|_|dkr&|j}||_|sHtj|_|_|j |_ nl||_| ¡}y t |ƒ}Wn"t k r„||_|j |_ Yn0X|dkr˜|j |_ n|j|_ |tfdd„}||_| ¡|_| d¡dS)NÚécSs ||ƒƒS)Nr)ÚtimerÚsumrrr Úget_time_timer®sz(Profile.__init__..get_time_timerr)ÚtimingsÚcurÚcmdÚ c_func_nameÚbiasÚtimeZ process_timerÚget_timeÚtrace_dispatch_iÚ dispatcherÚlenÚ TypeErrorÚtrace_dispatchÚtrace_dispatch_lrÚtÚ simulate_call)rrr"r+Úlengthrrrr r �s0    zProfile.__init__cCs„|j}|ƒ}|d|d|j|j}|dkr8|j|_|j||||ƒrd|ƒ}|d|d|_n|ƒ}|d|d||_dS)NréÚc_call)rr+r"rr!Údispatch)rÚframeÚeventÚargrr+Úrrrr r)¶szProfile.trace_dispatchcCsT|j}|ƒ|j|j}|dkr(|j|_|j||||ƒrD|ƒ|_n |ƒ||_dS)Nr/)rr+r"rr!r0)rr1r2r3rr+rrr r%Ès zProfile.trace_dispatch_icCs`|j}|ƒd|j|j}|dkr,|j|_|j||||ƒrL|ƒd|_n|ƒd||_dS)NgN@r/)rr+r"rr!r0)rr1r2r3rr+rrr Útrace_dispatch_mac×szProfile.trace_dispatch_maccCsT|j}|ƒ|j|j}|dkr(|j|_|j||||ƒrD|ƒ|_n |ƒ||_dS)Nr/)r$r+r"rr!r0)rr1r2r3r$r+rrr r*ås zProfile.trace_dispatch_lc CsD|j\}}}}}}||k r*|r*| ||¡S|||||||f|_dS)Nr.)rÚtrace_dispatch_return) rr1r+ÚrptÚritÚretÚrfnÚrframeÚrcurrrr Útrace_dispatch_exceptionøs   z Profile.trace_dispatch_exceptioncCs¸|jr@|j|jdk r@|j\}}}}}}t|tjƒs@| |d¡|j} | j| j| j f} |dd| ||jf|_|j } | | kr¢| | \} } }}}| | d|||f| | <nddddif| | <dS)Néþÿÿÿrr.) rÚf_backÚ isinstancerÚ fake_framer6Úf_codeÚ co_filenameÚco_firstlinenoÚco_namer)rr1r+r7r8r9r:r;r<ZfcodeÚfnrÚccÚnsÚttÚctÚcallersrrr Útrace_dispatch_calls  zProfile.trace_dispatch_callc Csndd|jf}|dd|||jf|_|j}||krX||\}}}}} ||d||| f||<nddddif||<dS)Nrrr.)r!rr) rr1r+rFrrGrHrIrJrKrrr Útrace_dispatch_c_calls zProfile.trace_dispatch_c_callcCsØ||jdk r | |jdd¡|j\}}}}}}||}||}|\} } } } } }| | || || | |f|_|j}||\}}}}}|s˜||}|d}| |kr²|| d|| <nd|| <||d||||f||<dS)Nr>rr.)rr6r)rr1r+r7r8r9r:r<Z frame_totalZpptZpitZpetZpfnÚpframeZpcurrrGrHrIrJrKrrr r6!s"zProfile.trace_dispatch_return)ÚcallZ exceptionÚreturnr/Z c_exceptionZc_returncCs"|jdrdS||_| |¡dS)Nr)rr r,)rr rrr Úset_cmdWs zProfile.set_cmdc@seZdZdd„Zdd„ZdS)zProfile.fake_codecCs||_||_||_d|_dS)Nr)rCÚco_linerErD)rrÚlineÚnamerrr r ]szProfile.fake_code.__init__cCst|j|j|jfƒS)N)ÚreprrCrRrE)rrrr Ú__repr__cszProfile.fake_code.__repr__N)rrrr rVrrrr Ú fake_code\srWc@seZdZdd„ZdS)zProfile.fake_framecCs||_||_dS)N)rBr?)rÚcodeZpriorrrr r gszProfile.fake_frame.__init__N)rrrr rrrr rAfsrAcCsF| dd|¡}|jr |jd}nd}| ||¡}|jd||dƒdS)NZprofilerr>rO)rWrrAr0)rrTrXrNr1rrr r,ks   zProfile.simulate_callcCsN|j}|ƒ|j}x*|jdr<|jd||jd|ƒd}qW|ƒ||_dS)NrrPr>r)r$r+rr0)rr$r+rrr Úsimulate_cmd_completews   zProfile.simulate_cmd_completercCs$ddl}| |¡ ¡ |¡ ¡dS)Nr)ÚpstatsZStatsZ strip_dirsZ sort_statsr)rrrZrrr r‚szProfile.print_statsc Cs0t|dƒ�}| ¡t |j|¡WdQRXdS)NÚwb)ÚopenÚ create_statsÚmarshalÚdumpÚstats)rÚfileÚfrrr r‡s zProfile.dump_statscCs| ¡| ¡dS)N)rYÚsnapshot_stats)rrrr r]ŒszProfile.create_statsc Csfi|_xZ|j ¡D]L\}\}}}}}| ¡}d}x| ¡D] }||7}q:W|||||f|j|<qWdS)Nr)r`rÚitemsÚcopyÚvalues) rÚfuncrGrHrIrJrKZncZcallcntrrr rc�s zProfile.snapshot_statscCsddl}|j}| |||¡S)Nr)Ú__main__Ú__dict__r)rr rhÚdictrrr r�sz Profile.runc Cs8| |¡t |j¡zt|||ƒWdt d¡X|S)N)rQÚsysÚ setprofiler&Úexec)rr rrrrr r¢s    zProfile.runctxc OsŒt|ƒdkr|^}}}n>|s&tdƒ‚n0d|krB| d¡}|^}}ntdt|ƒdƒ‚| t|ƒ¡t |j¡z |||ŽSt d¡XdS)Nrz:descriptor 'runcall' of 'Profile' object needs an argumentrgz7runcall expected at least 1 positional argument, got %dr.)r'r(ÚpoprQrUrkrlr&)ÚargsÚkwrrgrrr Úruncall¬s       zProfile.runcallcCs8|jtk rtdƒ‚|j}d|_z | ||¡S||_XdS)Nz&Subclasses must override .calibrate().r)Ú __class__rr(r"Ú_calibrate_inner)rÚmÚverboseZ saved_biasrrr Ú calibrateés  zProfile.calibratecCs"|j}dd„}|fdd„}||ƒ|ƒ}||ƒ|ƒ}||}|rLtd|ƒtƒ} |ƒ}|  dtƒtƒ¡|ƒ}||} |r†td| ƒd} d} x>| j ¡D]0\\} }}\}}}}}|d krš| |7} | |7} qšW|rætd | ƒtd | ƒ| |d krþtd | ƒ‚| |d| }|�rtd|ƒ|S)NcSsxt|ƒD]}d}q WdS)Nr.)Úrange)ÚnÚiÚxrrr Úf1ýsz$Profile._calibrate_inner..f1cSsxt|ƒD] }|dƒq WdS)Néd)rw)rtr{ryrrr rbsz#Profile._calibrate_inner..fz elapsed time without profiling =zf(m)zelapsed time with profiling =g)rbr{z!'CPU seconds' profiler reported =ztotal # calls =r.z internal error: total calls = %dg@z+mean stopwatch overhead per profile event =) r$ÚprintrrrrrrdÚ ValueError)rrtrur$r{rbZt0Zt1Zelapsed_noprofileÚpZelapsed_profileZ total_callsZ reported_timerrSÚfuncnamerGrHrIrJrKZmeanrrr rsôsB   "      zProfile._calibrate_inner)NN)r)r)rrrr"r r)r%r5r*r=rLrMr6r0rQrWrAr,rYrrr]rcrrrqrvrsrrrr rfs<' ' '      = c Cs ddl}ddlm}d}||d�}d|_|jdddd dd �|jd d d ddd �tjdd…sp| ¡t d¡|  ¡\}}|tjdd…<t |ƒdkrþ|d}tj   d|j   |¡¡t|dƒ�}t| ¡|dƒ}WdQRX|ddddœ} t|| d|j|jƒn| ¡|S)Nr)Ú OptionParserz?profile.py [-o output_file_path] [-s sort] scriptfile [arg] ...)ÚusageFz-oz --outfileÚoutfilezSave stats to )ÚdestÚhelpÚdefaultz-sz--sortrz?Sort order when printing to stdout, based on pstats.Stats classrr.rÚrbrmrh)Ú__file__rÚ __package__Ú __cached__)ÚosZoptparser�Zallow_interspersed_argsZ add_optionrkÚargvÚ print_usageÚexitÚ parse_argsr'ÚpathÚinsertÚdirnamer\ÚcompileÚreadrrƒr) r‹r�r‚ÚparserÚoptionsroZprognameÚfprXZglobsrrr Úmain4s6         r˜rh)Nr)Nr) rkr#r^Ú__all__rrrrr˜rrrrr Ús ' Q%