mirror of
https://github.com/dolthub/dolt.git
synced 2026-02-09 18:59:12 -06:00
52 lines
1.9 KiB
Python
52 lines
1.9 KiB
Python
import sys
|
|
import csv
|
|
|
|
from math import fabs
|
|
|
|
def average_time(row):
|
|
return float(row['latency_sum']) / float(row['sql_transactions'])
|
|
|
|
def read_result_data(filename, tests):
|
|
mysql_result_data = {}
|
|
dolt_result_data = {}
|
|
with open(filename) as f:
|
|
csvr = csv.DictReader(f)
|
|
for row in csvr:
|
|
test_name = row['test_name']
|
|
if 'all' in tests or test_name in tests:
|
|
if row['database'] == 'dolt':
|
|
dolt_result_data[test_name] = average_time(row)
|
|
else:
|
|
mysql_result_data[test_name] = average_time(row)
|
|
|
|
return mysql_result_data, dolt_result_data
|
|
|
|
initial_result_file = sys.argv[1]
|
|
updated_result_file = sys.argv[2]
|
|
test_names = sys.argv[3] if len(sys.argv) >= 4 else "all"
|
|
|
|
initial_mysql, initial_dolt = read_result_data(initial_result_file, test_names)
|
|
updated_mysql, updated_dolt = read_result_data(updated_result_file, test_names)
|
|
|
|
print("initial mysql", initial_mysql, "initial dolt", initial_dolt)
|
|
print("updated mysql", updated_mysql, "updated dolt", updated_dolt)
|
|
for name, time in initial_dolt.items():
|
|
if name in updated_dolt:
|
|
updated_time = updated_dolt[name]
|
|
delta = time - updated_time
|
|
initial_mysql_multiplier = time / initial_mysql[name]
|
|
updated_mysql_multiplier = updated_time / updated_mysql[name]
|
|
percent_change = 1.0 - (updated_time / time)
|
|
faster_slower = "faster" if percent_change > 0.0 else "slower"
|
|
|
|
print("% -24s: %.2f%% %s - mysql multiplier: %.2fx -> %.02fx" % (name, fabs(percent_change)*100, faster_slower, initial_mysql_multiplier, updated_mysql_multiplier))
|
|
else:
|
|
print("% -24s: %4.4f - Test removed from updated result file" % (name, float(time)))
|
|
|
|
for name, time in updated_dolt.items():
|
|
if name not in initial_dolt:
|
|
print("% -24s: %4.4f - New test addeed to updated result file" % (name, float(time)))
|
|
|
|
|
|
|