Cleanup: pep8
[blender-addons.git] / ant_landscape / stats.py
blob77759804b3968283d7afbd2f89e5eb66cd52d0c6
1 from time import time
3 try:
4 import psutil
5 print('psutil available')
6 psutil_available=True
7 except ImportError:
8 psutil_available=False
10 class Stats:
11 def __init__(self):
12 self.memstats_available = False
13 if psutil_available:
14 self.process=psutil.Process()
15 self.memstats_available = True
16 self.reset()
18 def reset(self):
19 self.lasttime = self._gettime()
20 self.lastmem = self._getmem()
21 self.basemem = self.lastmem
22 self.maxmem = 0
23 self.elapsedtime = 0
25 def _gettime(self):
26 """return the time in seconds used by the current process."""
27 if psutil_available:
28 m=self.process.get_cpu_times()
29 return m.user + m.system
30 return time()
32 def _getmem(self):
33 """return the resident set size in bytes used by the current process."""
34 if psutil_available:
35 m = self.process.get_memory_info()
36 return m.rss
37 return 0
39 def time(self):
40 """return the time since the last call in seconds used by the current process."""
41 old = self.lasttime
42 self.lasttime = self._gettime()
43 self.elapsedtime = self.lasttime - old
44 return self.elapsedtime
46 def memory(self):
47 """return the maximum resident set size since the first call in bytes used by the current process."""
48 self.lastmem = self._getmem()
49 d = self.lastmem - self.basemem
50 if d > self.maxmem:
51 self.maxmem = d
52 return self.maxmem