Mercurial > code > home > repos > light9
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)