Mercurial > code > home > repos > light9
view src/light9/updatefreq.py @ 2404:9cbc93f80b05
cleanup
author | drewp@bigasterisk.com |
---|---|
date | Fri, 17 May 2024 17:41:22 -0700 |
parents | 4556eebe5d73 |
children |
line wrap: on
line source
"""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.0 return hz def __str__(self): return "%.2fHz" % float(self)