grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026o ®û|jpYã@sx ddlZddlZddlZddlZgd¢ZGdd„dƒZddd„Zddd „ZGd d „d ƒZd d „Z e dkr:e ƒdSdS)éN)ÚrunÚrunctxÚProfilec@s.eZdZ dd„Zdd„Zdd„Zdd„Zd S) Ú_UtilscCs ||_dS©N)Úprofiler)Úselfr©r ú./opt/alt/python310/lib64/python3.10/profile.pyÚ__init__0ó z_Utils.__init__c Csd| ¡}z%z| |¡Wn tyYn wW| |||¡dSW| |||¡dS| |||¡wr)rrÚ SystemExitÚ_show)rÚ statementÚfilenameÚsortÚprofr r r r3s ÿÿþ"z _Utils.runc Csh| ¡}z'z | |||¡Wn tyYn wW| |||¡dSW| |||¡dS| |||¡wr)rrr r)rrÚglobalsÚlocalsrrrr r r r<s ÿÿþ"z _Utils.runctxcCs$|dur | |¡dS| |¡dSr)Ú dump_statsÚ print_stats)rrrrr r r rEsz _Utils._showN)Ú__name__Ú __module__Ú __qualname__r rrrr r r r r*s  réÿÿÿÿcCs ttƒ |||¡Sr)rrr)rrrr r r rQs rcCs ttƒ |||||¡Sr)rrr)rrrrrr r r r^src@sîeZdZ dZd3dd„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}||_|s$tj|_|_|j |_ n5||_| ¡}zt |ƒ}Wnt yA||_|j |_ Ynw|dkrK|j |_ n|j|_ |tfdd„}||_| ¡|_| d¡dS)NÚécSs ||ƒƒSrr )ÚtimerÚsumr r r Úget_time_timer¯r z(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 �s2    þ  zProfile.__init__cCs†|j}|ƒ}|d|d|j|j}|dkr|j|_|j||||ƒr3|ƒ}|d|d|_dS|ƒ}|d|d||_dS)NréÚc_call©rr.r$rr#Údispatch)rÚframeÚeventÚargrr.Úrr r r r,·szProfile.trace_dispatchcCóV|j}|ƒ|j|j}|dkr|j|_|j||||ƒr#|ƒ|_dS|ƒ||_dS©Nr1r2©rr4r5r6rr.r r r r(Éó zProfile.trace_dispatch_icCsb|j}|ƒd|j|j}|dkr|j|_|j||||ƒr'|ƒd|_dS|ƒd||_dS)NgN@r1r2r:r r r Útrace_dispatch_macØszProfile.trace_dispatch_maccCr8r9)r'r.r$rr#r3)rr4r5r6r'r.r r r r-ær;zProfile.trace_dispatch_lc CsD|j\}}}}}}||ur|r| ||¡S|||||||f|_dS©Nr0)r!Útrace_dispatch_return) rr4r.Ú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 } | | vrR| | \} } }}}| | d|||f| | <dSddddif| | <dS©Néþÿÿÿrr0) r!Úf_backÚ isinstancerÚ fake_framer>Úf_codeÚ co_filenameÚco_firstlinenoÚco_namer )rr4r.r?r@rArBrCrDZfcodeÚfnr ÚccÚnsÚttÚctÚcallersr r r Útrace_dispatch_calls  ÿzProfile.trace_dispatch_callc Cspdd|jf}|dd|||jf|_|j}||vr-||\}}}}} ||d||| f||<dSddddif||<dS)Nrrr0)r#r!r ) rr4r.rOr rPrQrRrSrTr r r Útrace_dispatch_c_calls ÿzProfile.trace_dispatch_c_callcCsØ||jdur| |jdd¡|j\}}}}}}||}||}|\} } } } } }| | || || | |f|_|j}||\}}}}}|sL||}|d}| |vrY|| d|| <nd|| <||d||||f||<dSrF)r!r>r )rr4r.r?r@rArBrDZ frame_totalZpptZpitZpetZpfnÚpframeZpcurr rPrQrRrSrTr r r r>"s"zProfile.trace_dispatch_return)ÚcallZ exceptionÚreturnr1Z 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)rLÚco_linerNrM)rrÚlineÚnamer r r r ^s zProfile.fake_code.__init__cCst|j|j|jfƒSr)ÚreprrLr]rN©rr r r Ú__repr__dszProfile.fake_code.__repr__N)rrrr rbr r r r Ú fake_code]s rcc@seZdZdd„ZdS)zProfile.fake_framecCs||_||_dSr)rKrH)rÚcodeZpriorr r r r hs zProfile.fake_frame.__init__N)rrrr r r r r rJgs rJcCsF| dd|¡}|jr|jd}nd}| ||¡}|jd||dƒdS)NZprofilerrGrX)rcr!rJr3)rr_rdrWr4r r r r/ls   zProfile.simulate_callcCsR|j}|ƒ|j}|jdr!|jd||jd|ƒd}|jds|ƒ||_dS)NrrYrGr)r'r.r!r3)rr'r.r r r Úsimulate_cmd_completexs   üzProfile.simulate_cmd_completercCs$ddl}| |¡ ¡ |¡ ¡dSr\)ÚpstatsZStatsZ strip_dirsZ sort_statsr)rrrfr r r rƒs zProfile.print_statscCsFt|dƒ�}| ¡t |j|¡WdƒdS1swYdS)NÚwb)ÚopenÚ create_statsÚmarshalÚdumpÚstats)rÚfileÚfr r r rˆs "þzProfile.dump_statscCs| ¡| ¡dSr)reÚsnapshot_statsrar r r ri�s zProfile.create_statsc Cs^i|_|j ¡D]$\}\}}}}}| ¡}d}| ¡D]}||7}q|||||f|j|<qdSr\)rlr ÚitemsÚcopyÚvalues) rÚfuncrPrQrRrSrTZncZcallcntr r r ro‘s  ûzProfile.snapshot_statscCsddl}|j}| |||¡Sr\)Ú__main__Ú__dict__r)rr"rtÚdictr r r ržsz Profile.runc Cs@| |¡t |j¡zt|||ƒWt d¡|St d¡wr)r[ÚsysÚ setprofiler)Úexec)rr"rrr r r r£s    ÿzProfile.runctxc OsB| t|ƒ¡t |j¡z ||i|¤ŽWt d¡St d¡wr)r[r`rwrxr))rrsÚargsÚkwr r r Úruncall­s  zProfile.runcallcCs<|jtur tdƒ‚|j}d|_z | ||¡W||_S||_w)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„}||ƒ|ƒ}||ƒ|ƒ}||}|r&td|ƒtƒ} |ƒ}|  dtƒtƒ¡|ƒ}||} |rCtd| ƒd} d} | j ¡D]\\} }}\}}}}}|d vrd| |7} | |7} qL|rqtd | ƒtd | ƒ| |d kr}td | ƒ‚| |d| }|rŒtd|ƒ|S)NcSst|ƒD]}d}qdSr=©Úrange)ÚnÚiÚxr r r Úf1òs ÿz$Profile._calibrate_inner..f1cSst|ƒD]}|dƒqdS)Nédr‚)rr‡r…r r r rnös  ÿz#Profile._calibrate_inner..fz elapsed time without profiling =zf(m)zelapsed time with profiling =g)rnr‡z!'CPU seconds' profiler reported =ztotal # calls =r0z internal error: total calls = %dg@z+mean stopwatch overhead per profile event =) r'Úprintrrrrr rpÚ ValueError)rrr€r'r‡rnZt0Út1Zelapsed_noprofileÚpZelapsed_profileZ total_callsZ reported_timerr^ÚfuncnamerPrQrRrSrTZmeanr r r r~ésD   ÿ€     zProfile._calibrate_inner)NN)r)r)rrrr$r r,r(r<r-rErUrVr>r3r[rcrJr/rerrrirorrr|r�r~r r r r rgsB& ' 'ú    1 rc Cs®ddl}ddlm}d}||d�}d|_|jdddd dd �|jd d d ddd�|jdddddd �tjdd…sB| ¡t d¡|  ¡\}}|tjdd…<|j dur\|j   |j ¡|_ t |ƒdkrÑ|jrtddl}d}|j|ddœ}n3|d} tj  d|j  | ¡¡t | ¡�} t|  ¡| dƒ}Wdƒn1s›wY| ddddœ}z t||d|j |jƒW|StyÐ} zdt_t | j¡WYd} ~ |Sd} ~ ww| ¡|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 classrr0rz(run_module(modname, run_name='__main__'))Ú run_moduleÚmodnameryrt)Ú__file__rÚ __package__Ú __cached__)ÚosZoptparserŽZallow_interspersed_argsZ add_optionrwÚargvZ print_usageÚexitÚ parse_argsr�ÚpathÚabspathr*r”Úrunpyr—ÚinsertÚdirnameÚioÚ open_codeÚcompileÚreadrrÚBrokenPipeErrorÚstdoutÚerrno) rœrŽr�ÚparserZoptionsrzr¢rdZglobsZprognameÚfpÚexcr r r Úmain)sd   ÿ ÿ þ    þ ÿüú€úr¯rtrZ) r¥rwr%rjÚ__all__rrrrr¯rr r r r Ús" '  E9 ÿ