Your IP : 3.142.50.218
a
?�gnY�@srddlZddlZddlZddlZgd�ZGdd�d�Zddd�Zddd �ZGd
d�d�Zdd
�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__cCsR|��}z4z|�|�Wnty*Yn0W|�|||�n|�|||�0dSr)rr�
SystemExit�_show)r� statement�filename�sort�profr r r
r3sz
_Utils.runcCsV|��}z8z|�|||�Wnty.Yn0W|�|||�n|�|||�0dSr)rrrr
)rr�globals�localsrrrr r r
r<sz
_Utils.runctxcCs"|dur|�|�n
|�|�dSr)�
dump_stats�print_stats)rrrrr r r
r
Esz_Utils._showN)�__name__�
__module__�__qualname__rrrr
r r r r
r*s r���cCstt��|||�Sr)rrr)rrrr r r
rQsrcCstt��|||||�Sr)rrr)rrrrrr r r
r^src@s�eZdZdZd3dd�Zdd�Zdd�Zd d
�Zdd�Zd
d�Z dd�Z
dd�Zdd�Ze
e eeeed�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||_|��}zt|�}Wn ty�||_|j |_
Yn00|dkr�|j
|_
n|j|_
|tfdd�}||_|��|_|�d�dS)N��cSs
||��Srr )�timer�sumr r r
�get_time_timer�sz(Profile.__init__.<locals>.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_callszProfile.trace_dispatch_callc
Csndd|jf}|dd|||jf|_|j}||vrX||\}}}}} ||d||| f||<nddddif||<dS)Nrrr/)r"r r)
rr3r-rLrrMrNrOrPrQr r r
�trace_dispatch_c_callszProfile.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?rAZframe_totalZpptZpitZpetZpfn�pframeZpcurrrMrNrOrPrQr r r
r;"s"zProfile.trace_dispatch_return)�callZ exception�returnr0Zc_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)rrrrr^r r r r
� fake_code]sr_c@seZdZdd�ZdS)zProfile.fake_framecCs||_||_dSr)rHrE)r�codeZpriorr r r
rhszProfile.fake_frame.__init__N)rrrrr r r r
rGgsrGcCsF|�dd|�}|jr |jd}nd}|�||�}|jd||d�dS)NZprofilerrDrU)r_r rGr2)rr[r`rTr3r r r
r.lszProfile.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�szProfile.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�szProfile.runc CsB|�|�t�|j�zt|||�Wt�d�nt�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|�||dkr�td
|��||d|}|�rtd|�|S)NcSst|�D]}d}qdSr:��range)�n�i�xr r r
�f1�sz$Profile._calibrate_inner.<locals>.f1cSst|�D]}|d�qdS)N�dr~)r{r�r�r r r
rj�sz#Profile._calibrate_inner.<locals>.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_profileZtotal_callsZ
reported_timerrZ�funcnamerMrNrOrPrQZmeanr r r
rz�sB
�
zProfile._calibrate_inner)NN)r)r)rrrr#rr+r'r9r,rBrRrSr;r2rWr_rGr.rarrrerkrrrxr}rzr r r r
rgs>'
''�
1
rc
Cs�ddl}ddlm}d}||d�}d|_|jdddd dd
�|jddd
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 <outfile>)�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�argvZprint_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
�<module>s
'
E9
?>