chore: add benchmark analysis scripts

This commit is contained in:
2026-03-18 18:12:33 +00:00
parent e9ef5ebbcd
commit 5704942950
5 changed files with 195 additions and 1900 deletions
+42
View File
@@ -0,0 +1,42 @@
import csv
def analyze_tail(filename):
durations = []
with open(filename, 'r') as f:
reader = csv.reader(f)
next(reader)
for row in reader:
if not row or row[0].startswith('#'):
continue
try:
durations.append(int(row[1]))
except:
pass
durations.sort()
n = len(durations)
print(f"\n=== TAIL ANALYSIS ({filename}) ===")
print(f"Total: {n}")
print(f"P50: {durations[n//2]}µs")
print(f"P90: {durations[int(n*0.90)]}µs")
print(f"P95: {durations[int(n*0.95)]}µs")
print(f"P99: {durations[int(n*0.99)]}µs")
print(f"P99.5: {durations[int(n*0.995)]}µs")
print(f"P99.9: {durations[int(n*0.999)]}µs")
print(f"Max: {durations[-1]}µs")
# Count stutters
for threshold in [500, 1000, 2000, 3000, 5000]:
count = sum(1 for d in durations if d > threshold)
print(f"Paths > {threshold}µs: {count} ({100*count/n:.2f}%)")
# Distribution buckets
print("\n=== DISTRIBUTION ===")
buckets = [(0, 50), (50, 100), (100, 200), (200, 500), (500, 1000), (1000, 2000), (2000, 5000), (5000, float('inf'))]
for lo, hi in buckets:
count = sum(1 for d in durations if lo <= d < hi)
print(f"{lo}-{hi if hi != float('inf') else ''}µs: {count} ({100*count/n:.1f}%)")
analyze_tail("/home/popertots/bench/pathfinding_benchmark_baseline_release.csv")
analyze_tail("pathfinding_benchmark_current.csv")