annotate light8/updatefreq.py @ 62:2f2eb802e93d

stage shows levels now. aims have blue halo for easy recognition. stage shows levels now. aims have blue halo for easy recognition. old dummy config stored
author dmcc
date Tue, 09 Jul 2002 08:35:27 +0000
parents 45b12307c695
children b75bfbcf5979
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
45b12307c695 Initial revision
drewp
parents:
diff changeset
1 """calculates your updates-per-second"""
45b12307c695 Initial revision
drewp
parents:
diff changeset
2
45b12307c695 Initial revision
drewp
parents:
diff changeset
3 import time
45b12307c695 Initial revision
drewp
parents:
diff changeset
4
45b12307c695 Initial revision
drewp
parents:
diff changeset
5 class Updatefreq:
45b12307c695 Initial revision
drewp
parents:
diff changeset
6 """make one of these, call update() on it as much as you want,
45b12307c695 Initial revision
drewp
parents:
diff changeset
7 and then float() or str() the object to learn the updates per second.
45b12307c695 Initial revision
drewp
parents:
diff changeset
8
45b12307c695 Initial revision
drewp
parents:
diff changeset
9 the samples param to __init__ specifies how many past updates will
45b12307c695 Initial revision
drewp
parents:
diff changeset
10 be stored. """
45b12307c695 Initial revision
drewp
parents:
diff changeset
11
45b12307c695 Initial revision
drewp
parents:
diff changeset
12 def __init__(self,samples=20):
45b12307c695 Initial revision
drewp
parents:
diff changeset
13 self.times=[0]
45b12307c695 Initial revision
drewp
parents:
diff changeset
14 self.samples=samples
45b12307c695 Initial revision
drewp
parents:
diff changeset
15
45b12307c695 Initial revision
drewp
parents:
diff changeset
16 def update(self):
45b12307c695 Initial revision
drewp
parents:
diff changeset
17
45b12307c695 Initial revision
drewp
parents:
diff changeset
18 """call this every time you do an update"""
45b12307c695 Initial revision
drewp
parents:
diff changeset
19 self.times=self.times[-self.samples:]
45b12307c695 Initial revision
drewp
parents:
diff changeset
20 self.times.append(time.time())
45b12307c695 Initial revision
drewp
parents:
diff changeset
21
45b12307c695 Initial revision
drewp
parents:
diff changeset
22 def __float__(self):
45b12307c695 Initial revision
drewp
parents:
diff changeset
23
45b12307c695 Initial revision
drewp
parents:
diff changeset
24 """a cheap algorithm, for now, which looks at the first and
45b12307c695 Initial revision
drewp
parents:
diff changeset
25 last times only"""
45b12307c695 Initial revision
drewp
parents:
diff changeset
26
45b12307c695 Initial revision
drewp
parents:
diff changeset
27 try:
45b12307c695 Initial revision
drewp
parents:
diff changeset
28 hz=len(self.times)/(self.times[-1]-self.times[0])
45b12307c695 Initial revision
drewp
parents:
diff changeset
29 except ZeroDivisionError:
45b12307c695 Initial revision
drewp
parents:
diff changeset
30 return 0
45b12307c695 Initial revision
drewp
parents:
diff changeset
31 return hz
45b12307c695 Initial revision
drewp
parents:
diff changeset
32 def __str__(self):
45b12307c695 Initial revision
drewp
parents:
diff changeset
33 return "%.2fHz"%float(self)