mirror of
https://github.com/zerotier/ZeroTierOne.git
synced 2025-01-01 18:56:41 +00:00
31 lines
948 B
Python
31 lines
948 B
Python
import os
|
|
import os.path
|
|
import json
|
|
|
|
comparisons = []
|
|
|
|
for (root, _dirs, files) in os.walk('target/criterion'):
|
|
for file in files:
|
|
if file == 'estimates.json' and root.endswith(
|
|
'new') and 'TinyVec' in root:
|
|
path = os.path.join(root, file)
|
|
|
|
bench_name = path.split('/')[3]
|
|
tinyvec_time = json.load(open(path))['mean']['point_estimate']
|
|
|
|
path = path.replace('TinyVec', 'SmallVec')
|
|
|
|
smallvec_time = json.load(open(path))['mean']['point_estimate']
|
|
|
|
comparisons.append((bench_name, tinyvec_time / smallvec_time))
|
|
|
|
comparisons.sort(key=lambda x: x[1])
|
|
longest_name = max(len(c[0]) for c in comparisons)
|
|
for (name, ratio) in comparisons:
|
|
# Undo the criterion name mangling
|
|
name = name.replace('_[', '<[')
|
|
name = name.replace(']___', ']>::')
|
|
|
|
name = name.ljust(longest_name)
|
|
print(f"{name} {ratio:.2f}")
|