Edit File: profile.cpython-36.opt-2.pyc
3 � \ V������������������@���s����d�dl�Z�d�dlZd�dlZd�dlZd�dlmZ�dddgZG�dd��d�Zdd d�Zdd d�Z G�dd��d�Z dd ��Zedkr|e���dS�)�����N)�OptionParser�run�runctx�Profilec���������������@���s,���e�Zd�Zdd��Zdd��Zdd��Zdd��Zd S�) �_Utilsc�������������C���s ���||�_�d�S�)N)�profiler)�selfr�����r ����/usr/lib64/python3.6/profile.py�__init__1���s����z_Utils.__init__c�������������C���sF���|�j���}z(y|j|��W�n�tk r,���Y�nX�W�d�|�j|||��X�d�S�)N)r���r���� SystemExit�_show)r���� statement�filename�sort�profr ���r ���r ���r���4���s���� z _Utils.runc�������������C���sJ���|�j���}z,y|j|||��W�n�tk r0���Y�nX�W�d�|�j|||��X�d�S�)N)r���r���r���r ���)r���r����globals�localsr���r���r���r ���r ���r ���r���=���s���� z _Utils.runctxc�������������C���s"���|d�k r|j�|��n |j|��d�S�)N)� dump_stats�print_stats)r���r���r���r���r ���r ���r ���r ���F���s����z_Utils._showN)�__name__� __module__�__qualname__r���r���r���r ���r ���r ���r ���r ���r���+���s��� r�������c�������������C���s���t�t�j|�||�S�)N)r���r���r���)r���r���r���r ���r ���r ���r���R���s����c�������������C���s���t�t�j|�||||�S�)N)r���r���r���)r���r���r���r���r���r ���r ���r ���r���_���s����c���������������@���s����e�Zd�ZdZd3dd�Zdd��Zdd��Zd d ��Zdd��Zd d��Z dd��Z dd��Zdd��Ze e eeeed�Z dd��ZG�dd��d�ZG�dd��d�Zdd��Zdd��Zd5d!d"�Zd#d$��Zd%d&��Zd'd(��Zd)d*��Zd+d,��Zd-d.��Zd6d/d0�Zd1d2��ZdS�)7r���r���Nc�������������C���s����i�|�_�d�|�_d|�_d|�_|d�kr&|�j}||�_|sHtj�|�_|�_|�j |�_ nl||�_|�j��}yt|�}W�n"�tk r����||�_|�j |�_ Y�n0X�|dkr�|�j |�_ n|�j|�_ |tfdd�}||�_|�j��|�_|�jd��d�S�)N������c�������������S���s ���||����S�)Nr ���)�timer�sumr ���r ���r ����get_time_timer����s����z(Profile.__init__.<locals>.get_time_timerr���)�timings�cur�cmd�c_func_name�bias�timeZprocess_timer����get_time�trace_dispatch_i� dispatcher�len� TypeError�trace_dispatch�trace_dispatch_lr����t� simulate_call)r���r���r#���r,���Zlengthr���r ���r ���r ���r�������s0���� zProfile.__init__c�������������C���s����|�j�}|��}|d�|d��|�j�|�j�}|dkr8|j|�_|�j|�|�||�rd|��}|d�|d��|�_n|��}|d�|d��|�|�_d�S�)Nr���r����c_call)r���r,���r#���r���r"����dispatch)r����frame�event�argr���r,����rr ���r ���r ���r*�������s����zProfile.trace_dispatchc�������������C���sT���|�j�}|��|�j�|�j�}|dkr(|j|�_|�j|�|�||�rD|��|�_n|��|�|�_d�S�)Nr.���)r���r,���r#���r���r"���r/���)r���r0���r1���r2���r���r,���r ���r ���r ���r&�������s���� zProfile.trace_dispatch_ic�������������C���s`���|�j�}|��d�|�j�|�j�}|dkr,|j|�_|�j|�|�||�rL|��d�|�_n|��d�|�|�_d�S�)Ng������N@r.���)r���r,���r#���r���r"���r/���)r���r0���r1���r2���r���r,���r ���r ���r ����trace_dispatch_mac����s����zProfile.trace_dispatch_macc�������������C���sT���|�j�}|��|�j�|�j�}|dkr(|j|�_|�j|�|�||�rD|��|�_n|��|�|�_d�S�)Nr.���)r%���r,���r#���r���r"���r/���)r���r0���r1���r2���r%���r,���r ���r ���r ���r+�������s���� zProfile.trace_dispatch_lc������� ������C���sD���|�j�\}}}}}}||k r*|r*|�j||�S�|||�||||f|�_�dS�)Nr���)r ����trace_dispatch_return) r���r0���r,����rpt�rit�ret�rfn�rframe�rcurr ���r ���r ����trace_dispatch_exception����s ����z Profile.trace_dispatch_exceptionc�������������C���s����|�j�r@|j|�j�d�k r@|�j�\}}}}}}t|tj�s@|�j|d��|j} | j| j| j f} |dd| ||�j�f|�_�|�j }| |kr�|| �\}} }}}|| d�|||f|| <�nddddi�f|| <�dS�)Nr���r���r������)r ����f_back� isinstancer���� fake_framer5����f_code�co_filename�co_firstlineno�co_namer���)r���r0���r,���r6���r7���r8���r9���r:���r;���Zfcode�fnr����cc�ns�tt�ct�callersr ���r ���r ����trace_dispatch_call��s����zProfile.trace_dispatch_callc������� ������C���sn���dd|�j�f}|dd|||�jf|�_|�j}||krX||�\}}}}} ||d�||| f||<�nddddi�f||<�dS�)Nr���r���r���)r"���r ���r���) r���r0���r,���rE���r���rF���rG���rH���rI���rJ���r ���r ���r ����trace_dispatch_c_call��s����zProfile.trace_dispatch_c_callc�������������C���s����||�j�d�k r |�j|�j�d�d��|�j�\}}}}}}||�}||�}|\} } }}} }| | |�||�|| |f|�_�|�j}||�\}}}}}|s�||�}|d�}||kr�||�d�||<�nd||<�||d�||�||f||<�dS�)Nr���r���r���r=���r=���)r ���r5���r���)r���r0���r,���r6���r7���r8���r9���r;���Zframe_totalZpptZpitZpetZpfn�pframeZpcurr���rF���rG���rH���rI���rJ���r ���r ���r ���r5���#��s"����zProfile.trace_dispatch_return)�callZ exception�returnr.���Zc_exceptionZc_returnc�������������C���s"���|�j�d�rd�S�||�_|�j|��d�S�)Nr������)r ���r!���r-���)r���r!���r ���r ���r ����set_cmdY��s���� �zProfile.set_cmdc���������������@���s���e�Zd�Zdd��Zdd��ZdS�)zProfile.fake_codec�������������C���s���||�_�||�_||�_d|�_d�S�)Nr���)rB����co_linerD���rC���)r���r����line�namer ���r ���r ���r���_��s����zProfile.fake_code.__init__c�������������C���s���t�|�j|�j|�jf�S�)N)�reprrB���rR���rD���)r���r ���r ���r ����__repr__e��s����zProfile.fake_code.__repr__N)r���r���r���r���rV���r ���r ���r ���r ���� fake_code^��s���rW���c���������������@���s���e�Zd�Zdd��ZdS�)zProfile.fake_framec�������������C���s���||�_�||�_d�S�)N)rA���r>���)r����codeZpriorr ���r ���r ���r���i��s����zProfile.fake_frame.__init__N)r���r���r���r���r ���r ���r ���r ���r@���h��s���r@���c�������������C���sF���|�j�dd|�}|�jr |�jd�}nd�}|�j||�}|�jd�|�|d��d�S�)NZprofiler���r���rN���r=���)rW���r ���r@���r/���)r���rT���rX���rM���r0���r ���r ���r ���r-���m��s����zProfile.simulate_callc�������������C���sN���|�j�}|��|�j�}x*|�jd�r<|�jd�|�|�jd�|��d}qW�|��|�|�_d�S�)Nr���rO���r���r���rP���r=���)r%���r,���r ���r/���)r���r%���r,���r ���r ���r ����simulate_cmd_completey��s����zProfile.simulate_cmd_completer���c�������������C���s$���dd�l�}|j|��j��j|�j���d�S�)Nr���)�pstatsZStatsZ strip_dirsZ sort_statsr���)r���r���rZ���r ���r ���r ���r������s����zProfile.print_statsc���������� ���C���s0���t�|d��}|�j���tj|�j|��W�d�Q�R�X�d�S�)N�wb)�open�create_stats�marshal�dump�stats)r����file�fr ���r ���r ���r������s����zProfile.dump_statsc�������������C���s���|�j����|�j���d�S�)N)rY����snapshot_stats)r���r ���r ���r ���r]������s����zProfile.create_statsc������� ������C���sf���i�|�_�xZ|�jj��D�]L\}\}}}}}|j��}d}x|j��D�]}||7�}q:W�|||||f|�j�|<�qW�d�S�)Nr���)r`���r����items�copy�values) r����funcrF���rG���rH���rI���rJ���ZncZcallcntr ���r ���r ���rc������s����zProfile.snapshot_statsc�������������C���s���dd�l�}|j}|�j|||�S�)Nr���)�__main__�__dict__r���)r���r!���rh����dictr ���r ���r ���r������s����zProfile.runc�������������C���s8���|�j�|��tj|�j��zt|||��W�d�tjd���X�|�S�)N)rQ����sys� setprofiler'����exec)r���r!���r���r���r ���r ���r ���r������s���� zProfile.runctxc�������������O���s6���|�j�t|���tj|�j��z |||�S�tjd���X�d�S�)N)rQ���rU���rk���rl���r'���)r���rg����args�kwr ���r ���r ����runcall���s ���� zProfile.runcallc�������������C���s8���|�j�tk rtd��|�j}d|�_z|�j||�S�||�_X�d�S�)Nz&Subclasses must override .calibrate().r���)� __class__r���r)���r#����_calibrate_inner)r����m�verboseZ saved_biasr ���r ���r ���� calibrate���s���� zProfile.calibratec�������������C���s$��|�j�}dd��}|fdd�}||��|��}||��|��}||�}|rLtd|��t��} |��}| jdt��t����|��}||�} |r�td| ��d}d}x>| jj��D�]0\\} }}\}}}}}|dkr�||7�}||7�}q�W�|r�td|��td|��||d �k�r�td|���||�d�|�}|�r td|��|S�)Nc�������������S���s���xt�|��D�]}d}q W�d�S�)Nr���)�range)�n�i�xr ���r ���r ����f1���s����z$Profile._calibrate_inner.<locals>.f1c�������������S���s���xt�|��D�]}|d��q W�d�S�)N�d���)rv���)rs���rz���rx���r ���r ���r ���rb������s����z#Profile._calibrate_inner.<locals>.fz elapsed time without profiling =zf(m)zelapsed time with profiling =g��������rb���rz���z!'CPU seconds' profiler reported =ztotal # calls =r���z internal error: total calls = %dg�������@z+mean stopwatch overhead per profile event =)rb���rz���) r%����printr���r���r���r���r���rd���� ValueError)r���rs���rt���r%���rz���rb���Zt0Zt1Zelapsed_noprofile�pZelapsed_profileZtotal_callsZ reported_timer���rS����funcnamerF���rG���rH���rI���rJ���Zmeanr ���r ���r ���rr������sB���� " zProfile._calibrate_inner)NNrP���)rP���)r���)r���r���r���r#���r���r*���r&���r4���r+���r<���rK���rL���r5���r/���rQ���rW���r@���r-���rY���r���r���r]���rc���r���r���rp���ru���rr���r ���r ���r ���r ���r���h���s<���' '' 1 c����������� ���C���s����d}�t�|�d�}d|_|jddddd�d��|jd d dddd��tjd d���s\|j���tjd��|j��\}}|tjd�d��<�t|�dkr�|d�}tj j dtj j|���t |d��}t|j��|d�}W�d�Q�R�X�|dd�d�d�}t||d�|j|j��n|j���|S�)Nz?profile.py [-o output_file_path] [-s sort] scriptfile [arg] ...)�usageFz-oz --outfile�outfilezSave stats to <outfile>)�dest�help�defaultz-sz--sortr���z?Sort order when printing to stdout, based on pstats.Stats classr���r���r����rbrm���rh���)�__file__r����__package__� __cached__rP���)r���Zallow_interspersed_argsZ add_optionrk����argvZprint_usage�exit� parse_argsr(����path�insert�os�dirnamer\����compile�readr���r����r���)r�����parserZoptionsrn���Zprogname�fprX���Zglobsr ���r ���r ����main*��s2���� r����rh���rP���)NrP���rP���)NrP���) rk���r����r$���r^���Zoptparser����__all__r���r���r���r���r����r���r ���r ���r ���r ����<module>���s��� ' ���E"