grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026a XC?hnYã@srddlZddlZddlZddlZgd¢ZGdd„dƒZddd„Zddd „ZGd d „d ƒZd d „Z e dkrne ƒdS)éN)ÚrunÚrunctxÚProfilec@s,eZdZdd„Zdd„Zdd„Zdd„Zd S) Ú_UtilscCs ||_dS©N)Úprofiler)Úselfr©r ú,/opt/alt/python39/lib64/python3.9/profile.pyÚ__init__0sz_Utils.__init__c CsR| ¡}z4z| |¡Wnty*Yn0W| |||¡n| |||¡0dSr)rrÚ SystemExitÚ_show)rÚ statementÚfilenameÚsortÚprofr r r r3s  z _Utils.runc CsV| ¡}z8z| |||¡Wnty.Yn0W| |||¡n| |||¡0dSr)rrr r )rrÚglobalsÚlocalsrrrr r r r<s  z _Utils.runctxcCs"|dur| |¡n | |¡dSr)Ú dump_statsÚ print_stats)rrrrr r r r Es z _Utils._showN)Ú__name__Ú __module__Ú __qualname__r rrr r r r r r*s  réÿÿÿÿcCsttƒ |||¡Sr)rrr)rrrr r r rQs rcCsttƒ |||||¡Sr)rrr)rrrrrr r r r^src@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|_|dur&|j}||_|sHtj|_|_|j |_ nj||_| ¡}z t |ƒ}Wn t y‚||_|j |_ Yn00|dkr–|j |_ n|j|_ |tfdd„}||_| ¡|_| d¡dS)NÚécSs ||ƒƒSrr )ÚtimerÚsumr r r Úget_time_timer¯sz(Profile.__init__..get_time_timerr)ÚtimingsÚcurÚcmdÚ c_func_nameÚbiasÚtimeÚ process_timerÚget_timeÚtrace_dispatch_iÚ dispatcherÚlenÚ TypeErrorÚtrace_dispatchÚtrace_dispatch_lrÚtÚ simulate_call)rrr#r-Zlengthrr r r 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-Úrr r r r+·szProfile.trace_dispatchcCsT|j}|ƒ|j|j}|dkr(|j|_|j||||ƒrD|ƒ|_n |ƒ||_dS©Nr0r1©rr3r4r5rr-r r r r'És zProfile.trace_dispatch_icCs`|j}|ƒd|j|j}|dkr,|j|_|j||||ƒrL|ƒd|_n|ƒd||_dS)NgN@r0r1r8r r r Útrace_dispatch_macØszProfile.trace_dispatch_maccCsT|j}|ƒ|j|j}|dkr(|j|_|j||||ƒrD|ƒ|_n |ƒ||_dSr7)r&r-r#rr"r2)rr3r4r5r&r-r r r r,æs zProfile.trace_dispatch_lc CsD|j\}}}}}}||ur*|r*| ||¡S|||||||f|_dS©Nr/)r Útrace_dispatch_return) rr3r-ÚrptÚritÚretÚrfnÚrframeÚrcurr r r Útrace_dispatch_exceptionùs   z Profile.trace_dispatch_exceptioncCs¸|jr@|j|jdur@|j\}}}}}}t|tjƒs@| |d¡|j} | j| j| j f} |dd| ||jf|_|j } | | vr¢| | \} } }}}| | d|||f| | <nddddif| | <dS©Néþÿÿÿrr/) r Úf_backÚ isinstancerÚ fake_framer;Úf_codeÚ co_filenameÚco_firstlinenoÚco_namer)rr3r-r<r=r>r?r@rAZfcodeÚfnrÚccÚnsÚttÚctÚcallersr r r Útrace_dispatch_calls  zProfile.trace_dispatch_callc Csndd|jf}|dd|||jf|_|j}||vrX||\}}}}} ||d||| f||<nddddif||<dS)Nrrr/)r"r r) rr3r-rLrrMrNrOrPrQr r r Útrace_dispatch_c_calls zProfile.trace_dispatch_c_callcCsØ||jdur | |jdd¡|j\}}}}}}||}||}|\} } } } } }| | || || | |f|_|j}||\}}}}}|s˜||}|d}| |vr²|| d|| <nd|| <||d||||f||<dSrC)r r;r)rr3r-r<r=r>r?rAZ frame_totalZpptZpitZpetZpfnÚpframeZpcurrrMrNrOrPrQr r r r;"s"zProfile.trace_dispatch_return)ÚcallZ exceptionÚreturnr0Z c_exceptionZc_returncCs"|jdrdS||_| |¡dS)Nr)r r!r.)rr!r r r Úset_cmdXszProfile.set_cmdc@seZdZdd„Zdd„ZdS)zProfile.fake_codecCs||_||_||_d|_dS©Nr)rIÚco_linerKrJ)rrÚlineÚnamer r r r ^szProfile.fake_code.__init__cCst|j|j|jfƒSr)ÚreprrIrYrK©rr r r Ú__repr__dszProfile.fake_code.__repr__N)rrrr r^r r r r Ú fake_code]sr_c@seZdZdd„ZdS)zProfile.fake_framecCs||_||_dSr)rHrE)rÚcodeZpriorr r r r hszProfile.fake_frame.__init__N)rrrr r r r r rGgsrGcCsF| dd|¡}|jr |jd}nd}| ||¡}|jd||dƒdS)NZprofilerrDrU)r_r rGr2)rr[r`rTr3r r r r.ls   zProfile.simulate_callcCsJ|j}|ƒ|j}|jdr:|jd||jd|ƒd}q|ƒ||_dS)NrrVrDr)r&r-r r2)rr&r-r r r Úsimulate_cmd_completexs   zProfile.simulate_cmd_completercCs$ddl}| |¡ ¡ |¡ ¡dSrX)ÚpstatsZStatsZ strip_dirsZ sort_statsr)rrrbr r r rƒszProfile.print_statscCsDt|dƒ�&}| ¡t |j|¡Wdƒn1s60YdS)NÚwb)ÚopenÚ create_statsÚmarshalÚdumpÚstats)rÚfileÚfr r r rˆs zProfile.dump_statscCs| ¡| ¡dSr)raÚsnapshot_statsr]r r r re�szProfile.create_statsc Cs^i|_|j ¡D]H\}\}}}}}| ¡}d}| ¡D] }||7}q6|||||f|j|<qdSrX)rhrÚitemsÚcopyÚvalues) rÚfuncrMrNrOrPrQZncZcallcntr r r rk‘s  zProfile.snapshot_statscCsddl}|j}| |||¡SrX)Ú__main__Ú__dict__r)rr!rpÚdictr r r ržsz Profile.runc CsB| |¡t |j¡zt|||ƒWt d¡n t d¡0|Sr)rWÚsysÚ setprofiler(Úexec)rr!rrr r r r£s   zProfile.runctxc OsF| t|ƒ¡t |j¡z||i|¤ŽWt d¡St d¡0dSr)rWr\rsrtr()rroÚargsÚkwr r r Úruncall­s  þzProfile.runcallcCs@|jturtdƒ‚|j}d|_z| ||¡W||_S||_0dS)Nz&Subclasses must override .calibrate().r)Ú __class__rr*r#Ú_calibrate_inner)rÚmÚverboseZ saved_biasr r r Ú calibrateÞs  þzProfile.calibratecCs|j}dd„}|fdd„}||ƒ|ƒ}||ƒ|ƒ}||}|rLtd|ƒtƒ} |ƒ}|  dtƒtƒ¡|ƒ}||} |r†td| ƒd} d} | j ¡D]0\\} }}\}}}}}|d vr˜| |7} | |7} q˜|râtd | ƒtd | ƒ| |d krútd | ƒ‚| |d| }|�rtd|ƒ|S)NcSst|ƒD]}d}qdSr:©Úrange)ÚnÚiÚxr r r Úf1òs z$Profile._calibrate_inner..f1cSst|ƒD] }|dƒqdS)Nédr~)r{rƒr�r r r rjös z#Profile._calibrate_inner..fz elapsed time without profiling =zf(m)zelapsed time with profiling =g)rjrƒz!'CPU seconds' profiler reported =ztotal # calls =r/z internal error: total calls = %dg@z+mean stopwatch overhead per profile event =) r&ÚprintrrrrrrlÚ ValueError)rr{r|r&rƒrjZt0Út1Zelapsed_noprofileÚpZelapsed_profileZ total_callsZ reported_timerrZÚfuncnamerMrNrOrPrQZmeanr r r rzésB   ÿ      zProfile._calibrate_inner)NN)r)r)rrrr#r r+r'r9r,rBrRrSr;r2rWr_rGr.rarrrerkrrrxr}rzr r r r rgs>' ' 'ú     1 rc Cs²ddl}ddlm}d}||d�}d|_|jdddd dd �|jd d d ddd�|jdddddd �tjdd…s„| ¡t d¡|  ¡\}}|tjdd…<|j dur¸|j   |j ¡|_ t |ƒdk�r¦|jrêddl}d}|j|ddœ}nh|d} tj  d|j  | ¡¡t | ¡� } t|  ¡| dƒ}Wdƒn1�s:0Y| ddddœ}zt||d|j |jƒWn8t�y¢} zdt_t | j¡WYd} ~ n d} ~ 00n| ¡|S)Nr)Ú OptionParserzMprofile.py [-o output_file_path] [-s sort] [-m module | scriptfile] [arg] ...)ÚusageFz-oz --outfileÚoutfilezSave stats to )ÚdestÚhelpÚdefaultz-mÚmoduleÚ store_truezProfile a library module.)r�ÚactionrŽr�z-sz--sortrz?Sort order when printing to stdout, based on pstats.Stats classrr/rz(run_module(modname, run_name='__main__'))Ú run_moduleÚmodnamerurp)Ú__file__rÚ __package__Ú __cached__)ÚosZoptparserŠZallow_interspersed_argsZ add_optionrsÚargvZ print_usageÚexitÚ parse_argsrŒÚpathÚabspathr)r�Úrunpyr“ÚinsertÚdirnameÚioÚ open_codeÚcompileÚreadrrÚBrokenPipeErrorÚstdoutÚerrno) r˜rŠr‹ÚparserZoptionsrvržr`ZglobsZprognameÚfpÚexcr r r Úmain)sZ   ÿ ÿ þ   þ 0ü$r«rp)Nr)Nr) r¡rsr$rfÚ__all__rrrrr«rr r r r Ús ' E9