Sun position: Fix T80379 - Custom startup breaks the add-on
[blender-addons.git] / ant_landscape / stats.py
blob5c37d2ba4a9056bf7f2a9ceccdc6954a6427620a
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 """ Handle psutil API change. """
29 if hasattr(self.process, "get_cpu_times"):
30 m = self.process.get_cpu_times()
31 else:
32 m = self.process.cpu_times()
33 return m.user + m.system
34 return time()
36 def _getmem(self):
37 """return the resident set size in bytes used by the current process."""
38 if psutil_available:
39 """ Handle psutil API change. """
40 if hasattr(self.process, "get_memory_info"):
41 m = self.process.get_memory_info()
42 else:
43 m = self.process.memory_info()
44 return m.rss
45 return 0
47 def time(self):
48 """return the time since the last call in seconds used by the current process."""
49 old = self.lasttime
50 self.lasttime = self._gettime()
51 self.elapsedtime = self.lasttime - old
52 return self.elapsedtime
54 def memory(self):
55 """return the maximum resident set size since the first call in bytes used by the current process."""
56 self.lastmem = self._getmem()
57 d = self.lastmem - self.basemem
58 if d > self.maxmem:
59 self.maxmem = d
60 return self.maxmem