-í
zæ>c       sp  d  Z  d k Z d k Z d k Z d k Z d k l Z d „  Z d „  Z d „  Z	 d „  Z
 d „  Z d „  Z d	 „  Z d
 „  Z d „  Z h  d d <d d <d d <d d <d d <d d <d d <d d <d d <d d <d  d! <d" d# <d$ d% <d& d' <d( d) <d* d+ <d, d- <d. d/ <d0 d1 <d2 d3 <d4 d5 <Z e d6 j o e i e ƒ  ƒ n d S(7   sÒ  Trace file statistics analyzer.

Usage: stats.py [-h] [-i interval] [-q] [-s] [-S] [-v] [-X] tracefile
-h: print histogram of object load frequencies
-i: summarizing interval in minutes (default 15; max 60)
-q: quiet; don't print summaries
-s: print histogram of object sizes
-S: don't print statistics
-v: verbose; print each record
-X: enable heuristic checking for misaligned records: oids > 2**32
    will be rejected; this requires the tracefile to be seekable
N(   s
   StringTypec    s   t  i |  IJt  i t IJd  S(   N(   s   syss   stderrs   msgs   __doc__(   s   msg(    (    s1   /usr/pkg/lib/python2.2/site-packages/ZEO/stats.pys   usage> s    c  :   s
  d } d }2 d } d }7 d } d }( d } y# t i t i	 d d ƒ \ }9 }& Wn& t i j
 o } t | ƒ d Sn Xxù |9 D]ñ \ }	 }- |	 d j o
 d } n |	 d j oH t d t |- ƒ ƒ }( |( d j o
 d }( n |( d	 j o
 d	 }( n n |	 d
 j o d }2 d } n |	 d j o
 d }7 n |	 d j o
 d } n |	 d j o
 d } n |	 d j o
 d } n q} Wt |& ƒ d j o t d ƒ d Sn |& d } | i d ƒ o y d  k }5 Wn$ t j
 o t i d IJd Sn Xy |5 i | d ƒ }1 Wn0 t j
 o$ } t i d | | f IJd Sn Xna | d j o t i }1 nG y t | d ƒ }1 Wn0 t j
 o$ } t i d | | f IJd Sn Xt i ƒ  }* h  } d }) d }0 t" }3 }/ d } d } d } } h  } h  } h  } d } h  }6 t" }" t" } }, d } |1 i2 }+ t4 i5 } y xd o|+ d ƒ }4 t |4 ƒ d j  o Pn | d 7} | d |4 ƒ \ } } | d j o  |2 o d G| d GHn qn |+ d ƒ }4 t |4 ƒ d j  o Pn | d 7} |) d 7}) | d |4 ƒ \ } } |+ | ƒ }  t |  ƒ | j o Pn | | 7} |3 t" j o | }3 |3 |( }" | } }, n | }/ | |( |" j o6 |2 o t= |6 | |, ƒ n h  }6 | |( }" | } n | }, | d @| d @f \ }# } |# o | d 7} | |# 7} n d } | d @o d } |0 d 7}0 n | d @} | o | d 7} n | d 7} | d @} | iA | d ƒ d | | <|6 iA | d ƒ d |6 | <|# oš | d  @d! j o< | iA |# ƒ p h  | |# <} | iA |  d ƒ d | |  <nJ | d" j o< | iA |# ƒ p h  | |# <} | iA |  d ƒ d | |  <n n | oR d# t iC | ƒ d$ d% !| | tD |  ƒ tE | ƒ | |# o
 tF |# ƒ p d& f GHn | d  @d! j o( | iA |  d ƒ d | |  <| d 7} n | d d  f j o™ |2 o t= |6 | |, ƒ n h  }6 | |( }" | } }, |2 oW t iC | ƒ d$ d% !G| d j o d' d( Gd) Gd' d( GHn d d( Gd* | Gd d( GHn n qWWn tG j
 o d+ GHn X|1 iH ƒ  t i ƒ  }  |2 o t= |6 | |, ƒ n |) o t i d, IJd Sn | o1Hd- tJ |) ƒ tJ |) d. ƒ |  |* f GHd/ tJ |0 ƒ GHd0 t iC |3 ƒ GHd1 t iC |/ ƒ GHd2 tJ |/ |3 ƒ GHd3 tJ | ƒ tJ | ƒ f GHd4 tJ | ƒ d5 | |) | d6 | f GHd7 tK | ƒ GHH| iL ƒ  } | iN ƒ  d8 d9 d: d; f GHxB | D]: } d< tJ | iA | d ƒ ƒ | tO iA | ƒ p d= f GHq–Wn | oHd> GHt | ƒ }. d? tJ |. ƒ GHd@ tJ | ƒ GHtJ |. ƒ }% tR t |% ƒ t dA ƒ ƒ } dB tF | ƒ dC }8 dD tF | ƒ dE }$ |$ dF dA dG dH dI f GHdJ } xb tW | ƒ D]T \ }' }! d5 |! |. } d5 |! |' | }
 | |
 7} |8 |' tJ |! ƒ | |
 | f GHq‰	Wn |7 o+ HdK GHHt\ | dL dM ƒ t\ | dN dF ƒ n d  S(O   Ni    i   i„  s   hi:qsSvXi   s   -hs   -ii<   i  s   -qs   -ss   -Ss   -vs   -Xs"   exactly one file argument requireds   .gzs)   can't read gzipped files (no module gzip)s   rbs   can't open %s: %ss   -l    i   s   >iis   Skipping 8 bytes at offseti
   s   >H8si ÿÿiÿ   i€   s   Vi~   ip   i    i:   s   %s %d %02x %s %016x %1s %si   iûÿÿÿs    s   =i   s   Restarts   Flip->%ds   
Interrupted.  Stats so far:
s   No records processeds*   Read %s records (%s bytes) in %.1f secondsi   s%   Versions:   %s records used a versions   First time: %ss   Last time:  %ss   Duration:   %s secondss&   File stats: %s in file 0; %s in file 1s-   Data recs:  %s (%.1f%%), average size %.1f KBf100.0f1024.0s&   Hit rate:   %.1f%% (load hits / loads)s   %13s %4s %ss   Counts   Codes   Function (action)s   %13s  %02x  %ss   *** unknown code ***s"   Histogram of object load frequencys   Unique oids: %ss   Total loads: %ss   objectss   %5d %s   s %5.1f%% %5.1f%% %5.1f%%s   %5s %s   s %6s %6s %6ss   loadss   %objs   %loads   %cumf0.0s   Histograms of object sizess   writtens   writess   loaded(]   s   verboses   quiets   dostatss   print_size_histograms   print_histograms   intervals	   heuristics   getopts   syss   argvs   optss   argss   errors   msgs   usages   os   as   ints   floats   lens   filenames   endswiths   gzips   ImportErrors   stderrs   opens   fs   IOErrors   stdins   times   rt0s   bycodes   recordss   versionss   Nones   t0s   tes   datarecordss   datasizes   file0s   file1s   oidss   bysizes   bysizews   total_loadss
   byintervals   thisintervals   h0s   hes   offsets   reads   f_reads   structs   unpacks   struct_unpacks   rs   tss   codes   oidlens   serials   oids   dumpbyintervals   dlens   versions   currents   gets   ds   ctimes   oid_reprs   U64s   strs   KeyboardInterrupts   closes   rtes	   addcommass   hitrates   keyss   codess   sorts   explains   totals   ss   maxs   widths   fmts   hdrs   cums	   histograms   binsizes   counts   obj_percents   load_percents
   dumpbysize(:   s   rtes   file1s   file0s   verboses   h0s   cums   total_loadss   ds   codes   os   load_percents   bysizes   filenames   serials   dostatss	   heuristics   codess   bysizews   obj_percents   widths   oidlens   tss   offsets   oidss   struct_unpacks   print_histograms   bycodes   versions   datarecordss   msgs   currents   datasizes   oids   counts   thisintervals   dlens   hdrs   ss   argss   binsizes   intervals   recordss   rt0s   f_reads   hes   as   totals   tes   versionss   fs   quiets   t0s   rs   gzips
   byintervals   print_size_histograms   fmts   opts(    (    s1   /usr/pkg/lib/python2.2/site-packages/ZEO/stats.pys   mainB s†   #
	 







		


		 










"R

*

&(
 < 
&c    s®   Hd | t t |  ƒ ƒ f GHd d d | f GH|  i ƒ  } | i ƒ  xc | D][ } d } x" |  | i
 ƒ  D] } | | 7} qh Wd t | ƒ t |  i | d ƒ ƒ | f GHqK Wd  S(   Ns   Unique sizes %s: %ss   %10s %6s %6ss   sizes   objsi    s   %10s %6d %6ds    (   s   hows	   addcommass   lens   bysizes   how2s   keyss   sizess   sorts   sizes   loadss
   itervaluess   ns   get(   s   bysizes   hows   how2s   sizess   ns   loadss   size(    (    s1   /usr/pkg/lib/python2.2/site-packages/ZEO/stats.pys
   dumpbysize(s    
  c    sç   d } d } xa |  i ƒ  D]S } | d @d j o< |  | } | | 7} | d d d f j o | | 7} n n q W| o d  Sn | o d | | } n d } d	 t i | ƒ d
 d !t i | ƒ d d !t | ƒ t | ƒ | f GHd  S(   Ni    ip   i    i*   i,   i.   f100.0f0.0s,   %s-%s %10s loads, %10s hits,%5.1f%% hit ratei   iøÿÿÿi   (   s   loadss   hitss
   byintervals   keyss   codes   ns   hrs   times   ctimes   h0s   hes	   addcommas(   s
   byintervals   h0s   hes   hitss   codes   hrs   ns   loads(    (    s1   /usr/pkg/lib/python2.2/site-packages/ZEO/stats.pys   dumpbyinterval6s     

c    s   d } d } xa |  i ƒ  D]S } | d @d j o< |  | } | | 7} | d d d f j o | | 7} n n q W| o d | | Sn d Sd  S(	   Ni    ip   i    i*   i,   i.   f100.0f0.0(   s   loadss   hitss   bycodes   keyss   codes   n(   s   bycodes   hitss   codes   loadss   n(    (    s1   /usr/pkg/lib/python2.2/site-packages/ZEO/stats.pys   hitrateIs     

c    sU   h  } x. |  i ƒ  D]  } | i | d ƒ d | | <q W| i ƒ  } | i ƒ  | Sd  S(   Ni    i   (   s   binss   ds
   itervaluess   vs   gets   itemss   Ls   sort(   s   ds   Ls   binss   v(    (    s1   /usr/pkg/lib/python2.2/site-packages/ZEO/stats.pys	   histogramWs     
c    s.   t  i d |  ƒ \ } } t | ƒ d >| Sd  S(   Ns   >IIi    (   s   structs   unpacks   ss   hs   vs   long(   s   ss   hs   v(    (    s1   /usr/pkg/lib/python2.2/site-packages/ZEO/stats.pys   U64_s    c    sC   t  |  t ƒ o t |  ƒ d j o d t |  ƒ Sn t |  ƒ Sd  S(   Ni   s   %16x(   s
   isinstances   oids
   StringTypes   lens   U64s   repr(   s   oid(    (    s1   /usr/pkg/lib/python2.2/site-packages/ZEO/stats.pys   oid_reprcs    #c    s”   d t  |  ƒ f \ } } | d d j o d | d f \ } } n t | ƒ d } x2 | d j o$ | |  d | | } | d 8} qV W| | Sd  S(   Ns    i    s   -i   i   s   ,(   s   strs   ns   signs   ss   lens   i(   s   ns   ss   is   sign(    (    s1   /usr/pkg/lib/python2.2/site-packages/ZEO/stats.pys	   addcommasis     s   _setup_trace (initialization)i    s   invalidate (miss)i   s&   invalidate (hit, version, writing 'n')i   s   invalidate (hit, writing 'i')i   s   load (miss)i    s    load (miss, version, status 'n')i"   s!   load (miss, deleting index entry)i$   s    load (miss, no non-version data)i&   s2   load (miss, version mismatch, no non-version data)i(   s&   load (hit, returning non-version data)i*   s8   load (hit, version mismatch, returning non-version data)i,   s"   load (hit, returning version data)i.   s   updatei:   s   modifiedInVersion (miss)i@   s0   modifiedInVersion (hit, return None, status 'n')iJ   s"   modifiedInVersion (hit, return '')iL   s'   modifiedInVersion (hit, return version)iN   s    store (non-version data present)iZ   s!   store (only version data present)i\   s   _copytocurrentij   s   checkSize (cache flip)ip   s   __main__(   s   __doc__s   syss   times   getopts   structs   typess
   StringTypes   usages   mains
   dumpbysizes   dumpbyintervals   hitrates	   histograms   U64s   oid_reprs	   addcommass   explains   __name__s   exit(   s
   StringTypes   structs	   addcommass   U64s	   histograms   syss   usages   explains   dumpbyintervals   times
   dumpbysizes   getopts   hitrates   mains   oid_repr(    (    s1   /usr/pkg/lib/python2.2/site-packages/ZEO/stats.pys   ? s$    						æ							
Ã#