home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2009 June / maximum-cd-2009-06.iso / DiscContents / digsby_setup.exe / lib / metrics.pyo (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2009-02-26  |  2.6 KB  |  84 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.5)
  3.  
  4. import os
  5. import time
  6. __all__ = [
  7.     'start',
  8.     'finish',
  9.     'record',
  10.     'start_timer',
  11.     'stop_timer']
  12. if os.name == 'nt':
  13.     clock = time.clock
  14. else:
  15.     clock = time.time
  16. active_stopwatches = { }
  17. active_timers = { }
  18.  
  19. def start(metric_name):
  20.     now = clock()
  21.     active_stopwatches[metric_name] = now
  22.  
  23.  
  24. def finish(metric_name):
  25.     end = clock()
  26.     begin = active_stopwatches[metric_name]
  27.  
  28.  
  29. def start_timer(metric_name, interval_ms, value_function):
  30.     
  31.     def on_timer():
  32.         record(metric_name, value_function())
  33.  
  34.     active_timers[metric_name] = _create_timer_object(on_timer, interval_ms)
  35.  
  36.  
  37. def stop_timer(metric_name):
  38.     timer = active_timers.pop(metric_name)
  39.     _stop_timer_object(timer)
  40.     return timer
  41.  
  42.  
  43. def _create_timer_object(callback, interval_ms):
  44.     import wx
  45.     timer = wx.PyTimer(callback)
  46.     timer.Start(interval_ms)
  47.     return timer
  48.  
  49.  
  50. def _stop_timer_object(timer):
  51.     timer.Stop()
  52.  
  53.  
  54. class Metric(object):
  55.     __slots__ = ('time_recorded', 'value')
  56.     
  57.     def __init__(self, value):
  58.         self.time_recorded = time.time()
  59.         self.value = value
  60.  
  61.  
  62.  
  63. class MemoryRecorder(object):
  64.     
  65.     def __init__(self):
  66.         self.metrics = { }
  67.  
  68.     
  69.     def record(self, metric_name, value):
  70.         
  71.         try:
  72.             metric_list = self.metrics[metric_name]
  73.         except KeyError:
  74.             metric_list = self.metrics[metric_name] = []
  75.  
  76.         metric_list.append(Metric(metric_name), value)
  77.  
  78.  
  79. active_recorder = MemoryRecorder()
  80.  
  81. def record(metric_name, value):
  82.     active_recorder.record(metric_name, value)
  83.  
  84.