debug: add summary to check_timings

old-commit-hash: 20a44bb4e9
097
Adeeb Shihadeh 11 months ago
parent 8da4e94289
commit 2e6ca5dd05
  1. 21
      selfdrive/debug/check_timings.py

@ -1,17 +1,19 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
import sys import sys
import time import time
import numpy as np import numpy as np
import datetime
from collections.abc import MutableSequence from collections.abc import MutableSequence
from collections import defaultdict, deque from collections import defaultdict
import cereal.messaging as messaging import cereal.messaging as messaging
socks = {s: messaging.sub_sock(s, conflate=False) for s in sys.argv[1:]}
ts: defaultdict[str, MutableSequence[float]] = defaultdict(lambda: deque(maxlen=100))
if __name__ == "__main__": if __name__ == "__main__":
ts: defaultdict[str, MutableSequence[float]] = defaultdict(list)
socks = {s: messaging.sub_sock(s, conflate=False) for s in sys.argv[1:]}
try:
st = time.monotonic()
while True: while True:
print() print()
for s, sock in socks.items(): for s, sock in socks.items():
@ -20,6 +22,15 @@ if __name__ == "__main__":
ts[s].append(m.logMonoTime / 1e6) ts[s].append(m.logMonoTime / 1e6)
if len(ts[s]) > 2: if len(ts[s]) > 2:
d = np.diff(ts[s]) d = np.diff(ts[s])[-100:]
print(f"{s:25} {np.mean(d):7.2f} {np.std(d):7.2f} {np.max(d):7.2f} {np.min(d):7.2f}") print(f"{s:25} {np.mean(d):7.2f} {np.std(d):7.2f} {np.max(d):7.2f} {np.min(d):7.2f}")
time.sleep(1) time.sleep(1)
except KeyboardInterrupt:
print("\n")
print("="*5, "timing summary", "="*5)
for s, sock in socks.items():
msgs = messaging.drain_sock(sock)
if len(ts[s]) > 2:
d = np.diff(ts[s])
print(f"{s:25} {np.mean(d):7.2f} {np.std(d):7.2f} {np.max(d):7.2f} {np.min(d):7.2f}")
print("="*5, datetime.timedelta(seconds=time.monotonic()-st), "="*5)

Loading…
Cancel
Save