run_ooni_benches 974 B

1234567891011121314151617181920212223242526
  1. #!/usr/bin/env python3
  2. import os
  3. import re
  4. import subprocess
  5. import sys
  6. os.chdir(os.path.dirname(os.path.realpath(sys.argv[0])))
  7. os.chdir("../application-ooni")
  8. os.environ['PYTHONUNBUFFERED'] = '1'
  9. subprocess.run(["cargo", "bench", "-p", "ooniauth-core"])
  10. proc = subprocess.Popen(["python3", "scripts/criterion_extract.py"], stdout=subprocess.PIPE, text=True)
  11. timings = {}
  12. for line in proc.stdout:
  13. line = line.rstrip()
  14. if matches := re.match(r'(client|server)_(reg|submit|update)\s+([\d\.]+)\s+([\d\.]+)', line):
  15. timings[f"{matches.group(1)}_{matches.group(2)}"] = f"{matches.group(3)} ({matches.group(4)})"
  16. else:
  17. print(f"Unparsable line: {line}")
  18. print("\n=== Table 3 ===\n")
  19. print("protocol,client native ms,server native ms")
  20. print(f"Registration,{timings['client_reg']},{timings['server_reg']}")
  21. print(f"Submit,{timings['client_submit']},{timings['server_submit']}")
  22. print(f"Update,{timings['client_update']},{timings['server_update']}")