37 lines
1.1 KiB
Python
37 lines
1.1 KiB
Python
import csv
|
|
import sys
|
|
|
|
def analyze(filename):
|
|
durations = []
|
|
failed = 0
|
|
total = 0
|
|
stutters = 0
|
|
try:
|
|
with open(filename, 'r') as f:
|
|
reader = csv.reader(f)
|
|
next(reader) # skip header
|
|
for row in reader:
|
|
if not row or row[0].startswith('#'): continue
|
|
total += 1
|
|
try:
|
|
d = int(row[1])
|
|
durations.append(d)
|
|
if d > 1000: stutters += 1
|
|
if row[4] == 'false': failed += 1
|
|
except:
|
|
pass
|
|
|
|
durations.sort()
|
|
if not durations: return
|
|
p50 = durations[len(durations)//2]
|
|
p90 = durations[int(len(durations)*0.90)]
|
|
p99 = durations[int(len(durations)*0.99)]
|
|
max_d = durations[-1]
|
|
print(f"[{filename}]")
|
|
print(f"P50={p50} P90={p90} P99={p99} Max={max_d} Stutters={stutters} Failed={failed}/{total}")
|
|
except Exception as e:
|
|
print(f"Error reading {filename}: {e}")
|
|
|
|
analyze("/home/popertots/bench/pathfinding_benchmark_baseline_release.csv")
|
|
analyze("pathfinding_benchmark_current.csv")
|