-
	>c       s    d  Z    " d k Z # d k Z $ d k Z % d k Z ' d   Z + d   Z  d f  d     YZ  d e f d     YZ 4d e f d	     YZ	 Nd
 e f d     YZ
 d f  d     YZ d e
 f d     YZ d e f d     YZ d Z d f  d     YZ Dd   Z Jd f  d     YZ d e f d     YZ e d  Z d   Z d   Z d   Z e d j o e i e    n d S(   sE  Cache simulation.

Usage: simul.py [-bflyz] [-X] [-s size] tracefile

Use one of -b, -f, -l, -y or -z select the cache simulator:
-b: buddy system allocator
-f: simple free list allocator
-l: idealized LRU (no allocator)
-y: variation on the existing ZEO cache that copies to current file
-z: existing ZEO cache (default)

Options:
-s size: cache size in MB (default 20 MB)
-X: enable heuristic checking for misaligned records: oids > 2**32
    will be rejected; this requires the tracefile to be seekable

Note: the buddy system allocator rounds the cache size up to a power of 2
Nc    s'   ' ( t  i |  IJ) t  i t IJd  S(   N(   s   syss   stderrs   msgs   __doc__(   s   msg(    (    s1   /usr/pkg/lib/python2.2/site-packages/ZEO/simul.pys   usage' s   c     su  + - d d } . d | } / t } 0 d }
 1 y& 2 t i t i d d  \ } }  Wn/ 3 t i
 j
 o } 4 t |  5 d Sn X6 x | D6 ] \ } }	 7 | d j o 8 t } n 9 | d j o : t } n ; | d	 j o < t } n = | d
 j o > t } n ? | d j o @ t } n A | d j o B t t |	  |  } n C | d j o D d }
 n q WE t |   d j o F t d  G d Sn H |  d } K | i d  o M y N d  k } Wn- O t j
 o P t i d IJQ d Sn XR y S | i | d  } Wn9 T t j
 o* } U t i d | | f IJV d Sn Xnv W | d j o Y t i } nV \ y ] t | d  } Wn9 ^ t j
 o* } _ t i d | | f IJ` d Sn Xc | |  } f | i    i d } j d } k | i# } l t% i& } m x-m d o"o | d  } p t |  d j  o q Pn r | d 7} s | d |  \ } } t | d j o
 w q0n x | d  } y t |  d j  o z Pn { | d 7} | | d 7} } | d |  \ } }  | d @| d @| d @| d @f \ } } } }  | i0 | | | | | | |  q0W | i1    d Sd  S(   Ni  i   i    i   s   bflyzs:Xi   s   -bs   -fs   -ls   -ys   -zs   -ss   -Xs"   exactly one file argument requireds   .gzs)   can't read gzipped files (no module gzip)s   rbs   can't open %s: %ss   -i   s   >iii   s   >8s8si i   i~   (2   s   MBs
   cachelimits   ZEOCacheSimulations   simclasss	   heuristics   getopts   syss   argvs   optss   argss   errors   msgs   usages   os   as   BuddyCacheSimulations   SimpleCacheSimulations   LRUCacheSimulations   AltZEOCacheSimulations   ints   floats   lens   filenames   endswiths   gzips   ImportErrors   stderrs   opens   fs   IOErrors   stdins   sims   printheaders   offsets   recordss   reads   f_reads   structs   unpacks   struct_unpacks   rs   tss   codes   oids   serials   dlens   versions   currents   events   finish(   s   argss   struct_unpacks   oids   tss   f_reads   msgs   codes   offsets   serials   as	   heuristics   dlens   MBs
   cachelimits   fs   os   filenames   currents   rs   sims   versions   recordss   gzips   simclasss   opts(    (    s1   /usr/pkg/lib/python2.2/site-packages/ZEO/simul.pys   main+ s   		&
 		 

1's
   Simulationc      s    t  Z d  Z   d   Z  d   Z  d   Z  d   Z  d   Z  d   Z  d Z	  d Z
  d	   Z  d
 Z  d   Z  d   Z RS(   s  Base class for simulations.

    The driver program calls: event(), printheader(), finish().

    The standard event() method calls these additional methods:
    write(), load(), inval(), report(), restart(); the standard
    finish() method also calls report().

    c    s\     | |  _   t |  _  d |  _  d |  _  d |  _  d |  _  |  i   d  S(   Ni    (	   s
   cachelimits   selfs   Nones   epochs   total_loadss
   total_hitss   total_invalss   total_writess   restart(   s   selfs
   cachelimit(    (    s1   /usr/pkg/lib/python2.2/site-packages/ZEO/simul.pys   __init__ s   c    sC     d |  _  d |  _  d |  _  d |  _  t |  _ d  S(   Ni    (   s   selfs   loadss   hitss   invalss   writess   Nones   ts0(   s   self(    (    s1   /usr/pkg/lib/python2.2/site-packages/ZEO/simul.pys   restart s
   c    sY    |  i t j o3  | |  _  |  i t j o  | |  _ n n  | |  _  | o | d @d d d f j o  | d j o;  |  i d 7_  |  i	 d 7_	  |  i
 | |  n8  |  i d 7_  |  i d 7_  |  i | |  nW  | d @d j o  |  i |  n/  | d j o  |  i    |  i   n d  S(	   Nip   i    i0   iP   i:   i   i   i    (   s   selfs   ts0s   Nones   tss   epochs   ts1s   dlens   codes   writess   total_writess   writes   oids   loadss   total_loadss   loads   invals   reports   restart(   s   selfs   tss   dlens   _versions   codes   _currents   oids   _serial(    (    s1   /usr/pkg/lib/python2.2/site-packages/ZEO/simul.pys   event s$   $c    s
     d  S(   N(    (   s   selfs   oids   size(    (    s1   /usr/pkg/lib/python2.2/site-packages/ZEO/simul.pys   write s   c    s
     d  S(   N(    (   s   selfs   oids   size(    (    s1   /usr/pkg/lib/python2.2/site-packages/ZEO/simul.pys   load s   c    s
     d  S(   N(    (   s   selfs   oid(    (    s1   /usr/pkg/lib/python2.2/site-packages/ZEO/simul.pys   inval s   s    %12s %9s %8s %8s %6s %6s %6s %6ss   *** please override ***c  	  sX     d |  i i t |  i  f GH |  i d d d d d d |  i i   d f GHd  S(	   Ns   %s, cache size %s bytess
   START TIMEs   DURATIONs   LOADSs   HITSs   INVALSs   WRITESs   HITRATE(   s   selfs	   __class__s   __name__s	   addcommass
   cachelimits   formats	   extranames   upper(   s   self(    (    s1   /usr/pkg/lib/python2.2/site-packages/ZEO/simul.pys   printheader s   !i    c    s     |  i o  |  i d 7_  |  i t i |  i  d d !t |  i |  i  |  i |  i	 |  i
 |  i t |  |  i  t |  i |  i	  f GHn d  S(   Ni   i   i(   s   selfs   loadss   nreportss   formats   times   ctimes   ts0s   durations   ts1s   hitss   invalss   writess   getattrs	   extranames   hitrate(   s   self(    (    s1   /usr/pkg/lib/python2.2/site-packages/ZEO/simul.pys   report s   c    s     |  i    |  i d j o}  |  i d t i |  i  d d !t |  i |  i  |  i	 |  i
 |  i |  i t |  d |  i  t |  i	 |  i
  f GHn d  S(   Ni   s    OVERALLi   is   total_(   s   selfs   reports   nreportss   formats   times   ctimes   epochs   durations   ts1s   total_loadss
   total_hitss   total_invalss   total_writess   getattrs	   extranames   hitrate(   s   self(    (    s1   /usr/pkg/lib/python2.2/site-packages/ZEO/simul.pys   finish s   (   s   __name__s
   __module__s   __doc__s   __init__s   restarts   events   writes   loads   invals   formats	   extranames   printheaders   nreportss   reports   finish(    (    (    s1   /usr/pkg/lib/python2.2/site-packages/ZEO/simul.pys
   Simulation s   
			
s   ZEOCacheSimulationc      sY    t  Z d  Z  d Z d   Z 	d   Z d   Z d   Z *d   Z RS(   s   Simulate the current (ZEO 1.0 and 2.0) ZEO cache behavior.

    This assumes the cache is not persistent (we don't know how to
    simulate cache validation.)

    s   flipsc    s&   t  i |  |  d |  _ d  S(   Ni    (   s
   Simulations   __init__s   selfs
   cachelimits   total_flips(   s   selfs
   cachelimit(    (    s1   /usr/pkg/lib/python2.2/site-packages/ZEO/simul.pys   __init__s   c    sS   	t  i |   d |  _ d d g |  _ h  h  g |  _ d |  _ d  S(   Ni    i   (   s
   Simulations   restarts   selfs   flipss   filesizes   fileoidss   current(   s   self(    (    s1   /usr/pkg/lib/python2.2/site-packages/ZEO/simul.pys   restart	s
   c    s}   |  i |  i i |  p |  i d |  i i |  o( |  i d 7_ |  i d 7_ n |  i | |  d  S(   Ni   (	   s   selfs   fileoidss   currents   gets   oids   hitss
   total_hitss   writes   size(   s   selfs   oids   size(    (    s1   /usr/pkg/lib/python2.2/site-packages/ZEO/simul.pys   loads   ;c    s   | d d }  |  i |  i | |  i d j oa "|  i d 7_ #|  i d 7_ $d |  i |  _ %d |  i |  i <&h  |  i |  i <n '|  i |  i c | 7<(d |  i |  i | <d  S(   Ni   i   i   i   i   (	   s   sizes   selfs   filesizes   currents
   cachelimits   flipss   total_flipss   fileoidss   oid(   s   selfs   oids   size(    (    s1   /usr/pkg/lib/python2.2/site-packages/ZEO/simul.pys   writes   %c    s   *+|  i |  i i |  o< ,|  i d 7_ -|  i d 7_ .|  i |  i | =nb /|  i d |  i i |  o@ 0|  i d 7_ 1|  i d 7_ 2|  i d |  i | =n d  S(   Ni   (   s   selfs   fileoidss   currents   gets   oids   invalss   total_invals(   s   selfs   oid(    (    s1   /usr/pkg/lib/python2.2/site-packages/ZEO/simul.pys   inval*s   !(	   s   __name__s
   __module__s   __doc__s	   extranames   __init__s   restarts   loads   writes   inval(    (    (    s1   /usr/pkg/lib/python2.2/site-packages/ZEO/simul.pys   ZEOCacheSimulation s   	
s   AltZEOCacheSimulationc      s    4t  Z d  Z <>d   Z RS(   s5  A variation of the ZEO cache that copies to the current file.

    When a hit is found in the non-current cache file, it is copied to
    the current cache file.  Exception: when the copy would cause a
    cache flip, we don't copy (this is part laziness, part concern
    over causing extraneous flips).
    c    s*  >?|  i |  i i |  o( @|  i d 7_ A|  i d 7_ n B|  i d |  i i |  o C|  i d 7_ D|  i d 7_ F| d d } G|  i |  i | |  i	 d j oL H|  i |  i c | 7<Id |  i |  i | <J|  i d |  i | =n n L|  i
 | |  d  S(   Ni   i   i   i   (   s   selfs   fileoidss   currents   gets   oids   hitss
   total_hitss   sizes   filesizes
   cachelimits   write(   s   selfs   oids   size(    (    s1   /usr/pkg/lib/python2.2/site-packages/ZEO/simul.pys   load>s   !% (   s   __name__s
   __module__s   __doc__s   load(    (    (    s1   /usr/pkg/lib/python2.2/site-packages/ZEO/simul.pys   AltZEOCacheSimulation4s   s   LRUCacheSimulationc      sP   Nt  Z Pd Z Rd   Z Xd   Z cd   Z ld   Z d   Z RS(   Ns   evictsc    s&   RTt  i |  |  Vd |  _ d  S(   Ni    (   s
   Simulations   __init__s   selfs
   cachelimits   total_evicts(   s   selfs
   cachelimit(    (    s1   /usr/pkg/lib/python2.2/site-packages/ZEO/simul.pys   __init__Rs   c    sf   XZt  i |   \d |  _ ^h  |  _ _d |  _ `t t t  |  _ a|  i i	 |  i  d  S(   Ni    (
   s
   Simulations   restarts   selfs   evictss   caches   sizes   Nodes   Nones   heads
   linkbefore(   s   self(    (    s1   /usr/pkg/lib/python2.2/site-packages/ZEO/simul.pys   restartXs   c    sz   cd|  i i |  } e| t j	 o; f|  i d 7_ g|  i d 7_ h| i |  i	  n j|  i
 | |  d  S(   Ni   (   s   selfs   caches   gets   oids   nodes   Nones   hitss
   total_hitss
   linkbefores   heads   writes   size(   s   selfs   oids   sizes   node(    (    s1   /usr/pkg/lib/python2.2/site-packages/ZEO/simul.pys   loadcs   c    s  lm|  i i |  } n| t j	 oJ o| i   pt o |  i i	 t j	 p t
  q|  i | i 8_ n rt | |  } s| |  i | <t| i |  i  u|  i | 7_ wx w|  i |  i j o x|  i d 7_ y|  i d 7_ z|  i i	 } {t o | |  i j	 p t
  || i   }t o |  i i	 t j	 p t
  ~|  i | i =|  i | i 8_ q Wd  S(   Ni   (   s   selfs   caches   gets   oids   nodes   Nones   unlinks	   __debug__s   heads   nexts   AssertionErrors   sizes   Nodes
   linkbefores
   cachelimits   evictss   total_evicts(   s   selfs   oids   sizes   node(    (    s1   /usr/pkg/lib/python2.2/site-packages/ZEO/simul.pys   writels&   $ !$c    s   |  i i |  } | t j	 o t o | i | j p t  |  i d 7_ |  i	 d 7_	 | i
   t o |  i i t j	 p t  |  i | =|  i | i 8_ t o |  i d j p t  n d  S(   Ni   i    (   s   selfs   caches   gets   oids   nodes   Nones	   __debug__s   AssertionErrors   invalss   total_invalss   unlinks   heads   nexts   size(   s   selfs   oids   node(    (    s1   /usr/pkg/lib/python2.2/site-packages/ZEO/simul.pys   invals   !$(   s   __name__s
   __module__s	   extranames   __init__s   restarts   loads   writes   inval(    (    (    s1   /usr/pkg/lib/python2.2/site-packages/ZEO/simul.pys   LRUCacheSimulationNs   			s   Nodec      sV   t  Z d  Z e Z d d d d g Z d   Z d   Z d   Z RS(   s   Node in a doubly-linked list, storing oid and size as payload.

    A node can be linked or unlinked; in the latter case, next and
    prev are None.  Initially a node is unlinked.

    s   prevs   nexts   oids   sizec    s2   | |  _  | |  _ t |  _ |  _ d  S(   N(   s   oids   selfs   sizes   Nones   prevs   next(   s   selfs   oids   size(    (    s1   /usr/pkg/lib/python2.2/site-packages/ZEO/simul.pys   __init__s   c    s   |  i } |  i } | t j	 o t o | t j	 p t  t o | i |  j p t  t o | i |  j p t  | | _ | | _ t |  _ |  _ n t o | t j p t  d  S(   N(   s   selfs   prevs   nexts   Nones	   __debug__s   AssertionError(   s   selfs   prevs   next(    (    s1   /usr/pkg/lib/python2.2/site-packages/ZEO/simul.pys   unlinks   !!c    s   |  i   | i } | t j o. t o | i t j p t  | } n | |  _ | |  _ |  | _ | _ d  S(   N(   s   selfs   unlinks   nexts   prevs   Nones	   __debug__s   AssertionError(   s   selfs   nexts   prev(    (    s1   /usr/pkg/lib/python2.2/site-packages/ZEO/simul.pys
   linkbefores   !(	   s   __name__s
   __module__s   __doc__s   types   __metaclass__s	   __slots__s   __init__s   unlinks
   linkbefore(    (    (    s1   /usr/pkg/lib/python2.2/site-packages/ZEO/simul.pys   Nodes   	s   BuddyCacheSimulationc      sG   t  Z d   Z d   Z d   Z d   Z d   Z RS(   Nc    s    t  i |  t |   d  S(   N(   s   LRUCacheSimulations   __init__s   selfs   roundups
   cachelimit(   s   selfs
   cachelimit(    (    s1   /usr/pkg/lib/python2.2/site-packages/ZEO/simul.pys   __init__s   c    s/   t  i |   |  i |  i  |  _ d  S(   N(   s   LRUCacheSimulations   restarts   selfs   allocatorFactorys
   cachelimits	   allocator(   s   self(    (    s1   /usr/pkg/lib/python2.2/site-packages/ZEO/simul.pys   restarts   c    s   t  |  Sd  S(   N(   s   BuddyAllocators   size(   s   selfs   size(    (    s1   /usr/pkg/lib/python2.2/site-packages/ZEO/simul.pys   allocatorFactorys   c    s  |  i i |  } | t j	 o] | i   t o |  i i	 t j	 p t
  |  i | i 8_ |  i i |  n x d o |  i i |  } | t j	 o Pn |  i i	 } t o | |  i j	 p t
  |  i d 7_ |  i d 7_ | i   t o |  i i	 t j	 p t
  |  i | i =|  i | i 8_ |  i i |  q W| | _ | |  i | <| i |  i  |  i | i 7_ d  S(   Ni   (   s   selfs   caches   gets   oids   nodes   Nones   unlinks	   __debug__s   heads   nexts   AssertionErrors   sizes	   allocators   frees   allocs   evictss   total_evictss
   linkbefore(   s   selfs   oids   sizes   node(    (    s1   /usr/pkg/lib/python2.2/site-packages/ZEO/simul.pys   writes0   $ 
!$c    s   |  i i |  } | t j	 o t o | i | j p t  |  i d 7_ |  i	 d 7_	 | i
   t o |  i i t j	 p t  |  i | =|  i | i 8_ t o |  i d j p t  |  i i |  n d  S(   Ni   i    (   s   selfs   caches   gets   oids   nodes   Nones	   __debug__s   AssertionErrors   invalss   total_invalss   unlinks   heads   nexts   sizes	   allocators   free(   s   selfs   oids   node(    (    s1   /usr/pkg/lib/python2.2/site-packages/ZEO/simul.pys   invals   !$!(   s   __name__s
   __module__s   __init__s   restarts   allocatorFactorys   writes   inval(    (    (    s1   /usr/pkg/lib/python2.2/site-packages/ZEO/simul.pys   BuddyCacheSimulations
   	s   SimpleCacheSimulationc      s#   t  Z d   Z d   Z RS(   Nc    s   t  |  Sd  S(   N(   s   SimpleAllocators   size(   s   selfs   size(    (    s1   /usr/pkg/lib/python2.2/site-packages/ZEO/simul.pys   allocatorFactorys   c    s'   t  i |   |  i i   d  S(   N(   s   BuddyCacheSimulations   finishs   selfs	   allocators   report(   s   self(    (    s1   /usr/pkg/lib/python2.2/site-packages/ZEO/simul.pys   finishs   (   s   __name__s
   __module__s   allocatorFactorys   finish(    (    (    s1   /usr/pkg/lib/python2.2/site-packages/ZEO/simul.pys   SimpleCacheSimulations   	i   s   BuddyAllocatorc      s>   t  Z d   Z d   Z d   Z 1d d  Z RS(   Nc    s   t  |  } | |  _ h  |  _ h  |  _ t } xO | | j o> t t t  |  i | <} | i
 |   | | 7} qE Wt t | d  } | |  i d <| i
 |  i |  d  S(   Ni    (   s   roundups
   cachelimits   selfs   avails   nodess   MINSIZEs   ks   Nodes   Nones   ns
   linkbefores	   BlockNodes   node(   s   selfs
   cachelimits   nodes   ks   n(    (    s1   /usr/pkg/lib/python2.2/site-packages/ZEO/simul.pys   __init__s   	 c    sI  t  |  } | } x` | |  i j oE 	|  i | } 
| i } | | j	 o Pn | | 7} q! Wt	 S| i
   | i } x | | j o | d } t o | | j p t  | | _ t t	 | | i |  } | |  i | i <| i |  i |  q Wd | _ | Sd  S(   Ni   i   (   s   roundups   sizes   ks   selfs
   cachelimits   avails   heads   nexts   nodes   Nones   unlinks   size2s	   __debug__s   AssertionErrors	   BlockNodes   addrs   buddys   nodess
   linkbefores   oid(   s   selfs   sizes   nodes   heads   buddys   size2s   k(    (    s1   /usr/pkg/lib/python2.2/site-packages/ZEO/simul.pys   allocs,   	  c    s  t  o | |  i | i j p t  t  o+ | i | i j o
 t j n p t  t | _	  x  | i
 |  i j  o !| i | i
 A} "|  i | } #t  o | i | j p t  $| i	 t j	 p | i
 | i
 j o %Pn '| i   (| i | i j  o )|  i | i =*| } n ,|  i | i =-| i
 d 9_
 qr W.t  o | |  i | i j p t  /| i |  i | i
  d  S(   Ni   (   s	   __debug__s   nodes   selfs   nodess   addrs   AssertionErrors   prevs   nexts   Nones   oids   sizes
   cachelimits
   buddy_addrs   buddys   unlinks
   linkbefores   avail(   s   selfs   nodes
   buddy_addrs   buddy(    (    s1   /usr/pkg/lib/python2.2/site-packages/ZEO/simul.pys   frees$   (5 !&(s    c    s  12| o 3| Gn 4t } 5d } } 6x 6| |  i j o 7|  i | } 8| i	 } 9d } :x. :| | j	 o ;| d 7} <| i	 } qr W=| o >d | | f Gn ?| | 7} @| | | 7} A| | 7} q4 WBd | | f GHd  S(   Ni    i   s   %d:%ds	   -- %d, %d(   s   msgs   MINSIZEs   sizes   blockss   bytess   selfs
   cachelimits   avails   heads   nexts   nodes   count(   s   selfs   msgs   nodes   heads   blockss   bytess   counts   size(    (    s1   /usr/pkg/lib/python2.2/site-packages/ZEO/simul.pys   dump1s&   
	 	 
(   s   __name__s
   __module__s   __init__s   allocs   frees   dump(    (    (    s1   /usr/pkg/lib/python2.2/site-packages/ZEO/simul.pys   BuddyAllocators   	c    s?   DEt  } Fx" F| |  j  o G| | 7} q WH| Sd  S(   N(   s   MINSIZEs   ks   size(   s   sizes   k(    (    s1   /usr/pkg/lib/python2.2/site-packages/ZEO/simul.pys   roundupDs
   	 s   SimpleAllocatorc      sJ   Jt  Z Ld   Z ]d   Z dd   Z d   Z d d  Z RS(   Nc    s   LM| |  _  Nt t d d  |  _ O|  i |  _ Pt t | d  } Q| i |  i  Rh  | d <|  _ Sh  | | <|  _	 Ud |  _
 Vd |  _ Wd |  _ X| |  _ Yd |  _ Zd |  _ [d |  _ d  S(   Ni    i   (   s	   arenasizes   selfs	   BlockNodes   Nones   avails   rovers   nodes
   linkbefores   taglos   taghis   nallocss   nfreess
   allocloopss	   freebytess
   freeblockss
   allocbytess   allocblocks(   s   selfs	   arenasizes   node(    (    s1   /usr/pkg/lib/python2.2/site-packages/ZEO/simul.pys   __init__Ls   c    s=   ]^d |  i |  i |  i |  i |  i |  i |  i f GHd  S(   Ns-   NA=%d AL=%d NF=%d ABy=%d ABl=%d FBy=%d FBl=%d(   s   selfs   nallocss
   allocloopss   nfreess
   allocbytess   allocblockss	   freebytess
   freeblocks(   s   self(    (    s1   /usr/pkg/lib/python2.2/site-packages/ZEO/simul.pys   report]s   c    s  de|  i d 7_ g|  i } } hxc hd oX i|  i d 7_ j| i | j o kPn l| i } m| | j o nt Sn q+ Wo| i | j o p| i |  _ q| i   r|  i	 | i
 =s|  i | i
 | =t|  i d 8_ u|  i d 7_ v|  i | 8_ w|  i | 7_ x| Sn zt o | i | j p t  {t t | | i
  } ||  i	 | i
 =}| i | 8_ ~| i
 | 7_
 | |  i	 | i
 <|  i d 7_ |  i | 8_ |  i | 7_ | Sd  S(   Ni   (   s   selfs   nallocss   rovers   stops
   allocloopss   sizes   nexts   Nones   unlinks   taglos   addrs   taghis
   freeblockss   allocblockss	   freebytess
   allocbytess	   __debug__s   AssertionErrors	   BlockNodes   node(   s   selfs   sizes   nodes   rovers   stop(    (    s1   /usr/pkg/lib/python2.2/site-packages/ZEO/simul.pys   allocds<    
!c    s+  |  i d 7_ |  i d 7_ |  i d 8_ |  i | i 7_ |  i | i 8_ | i |  i	  | |  i
 | i <| |  i | i | i <|  i i | i  } | t j	 o | i   |  i d 8_ |  i
 | i =|  i | i | i =|  i
 | i =| i | _ | i | i 7_ | |  i
 | i <n |  i
 i | i | i  } | t j	 o | i   |  i d 8_ |  i
 | i =|  i | i | i =|  i | i | i =| i | i 7_ | |  i | i | i <n | |  _ d  S(   Ni   (   s   selfs   nfreess
   freeblockss   allocblockss	   freebytess   nodes   sizes
   allocbytess
   linkbefores   avails   taglos   addrs   taghis   gets   xs   Nones   unlinks   rover(   s   selfs   nodes   x(    (    s1   /usr/pkg/lib/python2.2/site-packages/ZEO/simul.pys   frees8   s    c    s   | o | Gn d } d } |  i i } xA | |  i j	 o- | | i 7} | d 7} | i } q? W| Gd G| Gd GH|  i   d  S(   Ni    i   s   free blocks,s
   free bytes(	   s   msgs   counts   bytess   selfs   avails   nexts   nodes   sizes   report(   s   selfs   msgs   counts   bytess   node(    (    s1   /usr/pkg/lib/python2.2/site-packages/ZEO/simul.pys   dumps   
		 (   s   __name__s
   __module__s   __init__s   reports   allocs   frees   dump(    (    (    s1   /usr/pkg/lib/python2.2/site-packages/ZEO/simul.pys   SimpleAllocatorJs
   	"#s	   BlockNodec      s#   t  Z d g Z d   Z RS(   Ns   addrc    s)   t  i |  | |  | |  _ d  S(   N(   s   Nodes   __init__s   selfs   oids   sizes   addr(   s   selfs   oids   sizes   addr(    (    s1   /usr/pkg/lib/python2.2/site-packages/ZEO/simul.pys   __init__s   (   s   __name__s
   __module__s	   __slots__s   __init__(    (    (    s1   /usr/pkg/lib/python2.2/site-packages/ZEO/simul.pys	   BlockNodes   	c    s  d  k  } d  k } d } d d } |  |  } g  } d } d } xq| d j  o`xw | o | d d | j oW | i	 |  \ }	 } t o |	 | j p t  | i |  | d 8} qw W| i d d  } | i d d  }
 | i |  } | t j o* d GH| i d	 | | f  Pn+ | d 7} | i | | |
 | f  | d } | | d j o | i d	 | | f  n qa Wd  S(
   Nid   i   i   i    i  i   i  s
   out of mems   T=%4d: %d blocks;(   s   randoms   heapqs
   reportfreqs
   cachelimits   factorys   caches   queues   Ts   blockss   heappops   times   nodes	   __debug__s   AssertionErrors   frees   randints   sizes   lifetimes   allocs   Nones   dumps   heappush(   s   factorys   nodes   heapqs   randoms   blockss
   cachelimits   caches   queues   Ts   times   lifetimes
   reportfreqs   size(    (    s1   /usr/pkg/lib/python2.2/site-packages/ZEO/simul.pys   testallocators8   				  c    s#   d d | t d |   Sd  S(   Ns   %5.1f%%f100.0i   (   s   hitss   maxs   loads(   s   loadss   hits(    (    s1   /usr/pkg/lib/python2.2/site-packages/ZEO/simul.pys   hitrates   c    s   t  |  d  \ } } t  | d  \ } } | o d | | | f Sn | o d | | f Sn d | Sd  S(   Ni<   s   %d:%02d:%02ds   %d:%02ds   %d(   s   divmods   secss   mms   sss   hh(   s   secss   mms   sss   hh(    (    s1   /usr/pkg/lib/python2.2/site-packages/ZEO/simul.pys   durations   

c    s   d t  |   f \ } } | d d j o d | d f \ } } n t |  d } x; | d j o* | |  d | | } | d 8} qh 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/simul.pys	   addcommass    s   __main__(   s   __doc__s   syss   times   getopts   structs   usages   mains
   Simulations   ZEOCacheSimulations   AltZEOCacheSimulations   LRUCacheSimulations   Nodes   BuddyCacheSimulations   SimpleCacheSimulations   MINSIZEs   BuddyAllocators   roundups   SimpleAllocators	   BlockNodes   testallocators   hitrates   durations	   addcommass   __name__s   exit(   s   Nodes   usages   BuddyCacheSimulations
   Simulations   syss   durations   getopts	   addcommass	   BlockNodes   SimpleAllocators   LRUCacheSimulations   structs   AltZEOCacheSimulations   testallocators   MINSIZEs   times   SimpleCacheSimulations   BuddyAllocators   hitrates   mains   roundups   ZEOCacheSimulation(    (    s1   /usr/pkg/lib/python2.2/site-packages/ZEO/simul.pys   ?  s0   al<?(5		Ol 

