ó
Þ‡GTc           @   sÖ   d  d l  Z  d  d l Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l Z e j j	 d ƒ Z
 d „  Z d d „ Z d d g d „ Z d d	 d
 „ Z i  a d	 a e d „ Z d „  Z d „  Z d S(   iÿÿÿÿNt   memoryc         C   s(   t  j j |  d ƒ t j d |  ƒ d  S(   Ns   
s   %s(   t   syst   stdoutt   writet
   memory_log(   t   s(    (    s\   C:\Users\Administrator Reset\Downloads\bundestrojaner_all\Unteralterbach-all\renpy\memory.pyR   %   s    c         C   s©  | d  k r i  } n  g  } t j t ƒ } d „  } xO |  D]G \ } } t | ƒ } | | k rd q: n  | | | <| j | | f ƒ q: Wt j } t j	 }	 t
 j }
 | j } t j t j t j f } xÛ | rž| j d ƒ \ } } t | | ƒ rô qÄ n  | | c |	 | ƒ 7<t | | ƒ rL| j ƒ  \ } } | | c | | | j ƒ  7<n  xL |
 | ƒ D]> } t | ƒ } | | k r}qYn  | | | <| | | f ƒ qYWqÄ W| | f S(   Nc         S   s   d  S(   N(    (   t   namet   o(    (    s\   C:\Users\Administrator Reset\Downloads\bundestrojaner_all\Unteralterbach-all\renpy\memory.pyt   addB   s    i    (   t   Nonet   collectionst   defaultdictt   intt   idt   appendt   pygamet   SurfaceR   t	   getsizeoft   gct   get_referentst   typest
   ModuleTypet	   ClassTypet   FunctionTypet   popt
   isinstancet   get_sizet   get_bytesize(   t   rootst   seent   worklistt   sizeR   R   R   t   id_oR   R   R   t   worklist_appendt   ignore_typest   wt   ht   vt   id_v(    (    s\   C:\Users\Administrator Reset\Downloads\bundestrojaner_all\Unteralterbach-all\renpy\memory.pyt   walk_memory)   s>    		
					!
t   renpyt   storec         C   sã   g  } xÐ t  t j j ƒ  ƒ D]¹ \ } } | d  k r: q n  x$ |  D] } | j | ƒ rA PqA qA Wq | j d ƒ p| | j d ƒ s… q n  | j d ƒ rš q n  x8 | j j ƒ  D]' \ } } | j | d | | f ƒ qª Wq Wt | ƒ S(   NR(   R)   s   renpy.storet   .(	   t   sortedR   t   modulest   itemsR	   t
   startswitht   __dict__R   R'   (   t   packagesR   t   mod_namet   modt   pR   R   (    (    s\   C:\Users\Administrator Reset\Downloads\bundestrojaner_all\Unteralterbach-all\renpy\memory.pyt   profile_memory_commono   s    
"#g      ð?i    c   	      C   s  g  t  ƒ  d j ƒ  D] \ } } | | f ^ q } | j ƒ  t d „  | Dƒ ƒ } | } t d d ƒ t d ƒ t d t j ƒ  d ƒ t d ƒ xZ | D]R \ } } | | | |  k  rá | | k rá t d j | | ƒ ƒ qá n  | | 8} q™ Wt d ƒ t d j | ƒ ƒ t d ƒ d  S(   Ni    c         s   s   |  ] } | d  Vq d S(   i    N(    (   t   .0t   i(    (    s\   C:\Users\Administrator Reset\Downloads\bundestrojaner_all\Unteralterbach-all\renpy\memory.pys	   <genexpr>¯   s    t   =iN   t    s   Memory profile at t   :s
   {:13,d} {}t   -i   sC   {:13,d} Total object, surface, and texture memory usage (in bytes).s   -------------(   R4   R-   t   sortt   sumR   t   timet   ctimet   format(	   t   fractiont   minimumt   kR%   t   usaget   totalt	   remainingR   R   (    (    s\   C:\Users\Administrator Reset\Downloads\bundestrojaner_all\Unteralterbach-all\renpy\memory.pyt   profile_memory’   s     2



c         C   sF  t  ƒ  d } t | j ƒ  ƒ } g  } x= | j ƒ  D]/ \ } } | j | t j | d ƒ | f ƒ q2 W| j ƒ  t d d ƒ t d ƒ t d t	 j
 ƒ  d ƒ t d ƒ xL | D]D \ } } | d k rÎ q° n  | r° t d j | | | | ƒ ƒ q° q° Wt d d ƒ t d j | t | d ƒ ƒ t d ƒ |  rB| a | a n  d  S(   Ni    R7   iN   R8   s   Memory diff at R9   s   renpy.memory.old_usages   {:+14,d} {:13,d} {}R:   i   t    i   s   Total memory usage (in bytes).s   --------------s   -------------- s   -------------(   R4   R<   t   valuest	   iteritemsR   t	   old_usaget   getR;   R   R=   R>   R?   t	   old_total(   t   updateRC   RD   t   diffRB   R%   t   changeR   (    (    s\   C:\Users\Administrator Reset\Downloads\bundestrojaner_all\Unteralterbach-all\renpy\memory.pyt   diff_memoryÈ   s.    


$
c          C   s¼  t  d d g ƒ d }  i  } t t j j j ƒ } | j ƒ  g  } x/| D]'} xŒ | j j ƒ  D]{ \ } } xl | j ƒ  D]^ \ } } | d | }	 t | ƒ }
 |
 |  k rÂ |
 | k rÂ |	 | |
 <n  | j	 |	 | f ƒ qw Wq^ Wx` | j
 D]U \ } } t | ƒ }
 d }	 | j |
 |	 ƒ }	 |  j |
 |	 ƒ }	 | j	 |	 | f ƒ qç W| j	 d | j j f ƒ | j	 d | j f ƒ qH Wt | |  ƒ d } t d	 d
 ƒ t d ƒ t d t j ƒ  d ƒ t d ƒ g  | j ƒ  D] \ } } | | f ^ qÍ} | j ƒ  t d j d ƒ d d j d ƒ ƒ t d d d d d ƒ xU | D]M \ } }	 |	 j d ƒ r[q:n  | r:t d j | | t | ƒ |	 ƒ ƒ q:q:Wt d ƒ t d j t | ƒ ƒ ƒ t d ƒ d  S(   NR)   s   renpy.displayi   R*   s	   <unknown>s   <scene lists>s	   <context>i    R7   iN   R8   s   Rollback profile at R9   s   Total Bytesi   RG   s   Per RollbackR:   i2   R(   s   {:13,d} {:13,d} {}s   {} Rollback objects exist.s   -------------s   ------------- s   -------------(   R4   t   listR(   t   gamet   logt   reverset   storesRI   R   R   t   objectsRK   t   contextt   scene_listsR'   R   R=   R>   R;   t   rjustR.   R?   t   len(   R   t   new_seenRS   R   t   rbt
   store_nameR)   t   var_nameR   R   R    t   rollt   sizesRB   R%   RC   R   (    (    s\   C:\Users\Administrator Reset\Downloads\bundestrojaner_all\Unteralterbach-all\renpy\memory.pyt   profile_rollbacký   sL    


+
$*
c            s~   t  j ƒ  t  j ƒ  ‰  ‡  f d †  } xR ˆ  D]J } t | |  ƒ r, d d  l } | j ƒ  d k  rv Hd GHH| | ƒ qv q, q, Wd  S(   Nc   
         s"  d } t  ƒ  } g  } g  } x t d ƒ D]ò} | j |  ƒ | t t |  ƒ ƒ Gt |  ƒ Gy: t |  t ƒ r‡ d |  k r‡ d G|  d GHn t |  ƒ GHWn d GHn Xt	 } t |  t
 j ƒ rÜ | sÄ Pn  | j ƒ  \ }  } q( n  t |  t j ƒ rWxf |  j j ƒ  D]R \ } } | | d k rþ | ƒ  } | j t | ƒ ƒ | j | | d f ƒ qþ qþ Wn  x– t j |  ƒ D]… }	 |	 ˆ  k sg|	 | k r‹qgn  t |	 ƒ | k r£qgn  t |	 t
 j ƒ r»qgn  | j t |	 ƒ ƒ | j |	 | d f ƒ t } PqgW| súPn  | sd	 GHn  | j ƒ  \ }  } q( Wd  S(
   NR8   i   t   __name__s	   with names	   Bad repr.iüÿÿÿs    (key) s     s   <no parent, popping>(   t   sett   rangeR   t   strR   t   typeR   t   dictt   reprt   FalseR   R   R   t   weakreft   WeakKeyDictionaryt   dataR-   R   R   t   get_referrerst	   FrameTypet   True(
   R   t   prefixR   t   queueRV   t   _it   foundRB   R%   R6   (   t   objs(    s\   C:\Users\Administrator Reset\Downloads\bundestrojaner_all\Unteralterbach-all\renpy\memory.pyt
   print_pathS  sR    			!iÿÿÿÿgš™™™™™¹?s3   ===================================================(   R   t   collectt   get_objectsR   t   random(   t   clsRu   R   Rx   (    (   Rt   s\   C:\Users\Administrator Reset\Downloads\bundestrojaner_all\Unteralterbach-all\renpy\memory.pyt   find_parentsI  s    
>(   R=   Rj   R   R   R
   R   R   R(   RS   t   openR   R   R	   R'   R4   RF   RJ   RL   Ro   RP   Ra   Rz   (    (    (    s\   C:\Users\Administrator Reset\Downloads\bundestrojaner_all\Unteralterbach-all\renpy\memory.pyt   <module>   s"   	F#35	L