diff light8/updatefreq.py @ 0:45b12307c695

Initial revision
author drewp
date Wed, 03 Jul 2002 09:37:57 +0000
parents
children b75bfbcf5979
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/light8/updatefreq.py	Wed Jul 03 09:37:57 2002 +0000
@@ -0,0 +1,33 @@
+"""calculates your updates-per-second"""
+
+import time
+
+class Updatefreq:
+    """make one of these, call update() on it as much as you want,
+    and then float() or str() the object to learn the updates per second.
+
+    the samples param to __init__ specifies how many past updates will
+    be stored.  """
+    
+    def __init__(self,samples=20):
+        self.times=[0]
+        self.samples=samples
+
+    def update(self):
+
+        """call this every time you do an update"""
+        self.times=self.times[-self.samples:]
+        self.times.append(time.time())
+
+    def __float__(self):
+        
+        """a cheap algorithm, for now, which looks at the first and
+        last times only"""
+
+        try:
+            hz=len(self.times)/(self.times[-1]-self.times[0])
+        except ZeroDivisionError:
+            return 0
+        return hz
+    def __str__(self):
+        return "%.2fHz"%float(self)