mirror of
https://github.com/vale981/ray
synced 2025-03-06 10:31:39 -05:00
64 lines
1.8 KiB
Python
64 lines
1.8 KiB
Python
"""
|
|
Compare the last two versions and output the change rate.
|
|
This can also be used to draw graph, which is not
|
|
implemented yet.
|
|
|
|
Usage: python microbenchmark_analysis.py
|
|
"""
|
|
import glob
|
|
|
|
from collections import defaultdict
|
|
|
|
FRIST_VERSION = 0
|
|
LAST_VERSION = 5
|
|
FILES = sorted(
|
|
glob.glob("./release_logs/[0-9].[0-9].[0-9]/microbenchmark.txt"))
|
|
|
|
task_info = defaultdict(list)
|
|
task_std_info = defaultdict(list)
|
|
version_list = []
|
|
|
|
|
|
def get_task_type(line):
|
|
return line.split("per")[0]
|
|
|
|
|
|
def get_task_performance(line):
|
|
return float(line.split(" ")[-3])
|
|
|
|
|
|
def get_task_std(line):
|
|
return float(line.split(" ")[-1])
|
|
|
|
|
|
def main():
|
|
for file_name in FILES:
|
|
version = file_name.split("/")[1]
|
|
version_list.append(version)
|
|
|
|
with open(file_name) as file:
|
|
for line in file.readlines():
|
|
if line.startswith("#") or line.startswith("\n"):
|
|
continue
|
|
line = line.strip()
|
|
task_type = get_task_type(line)
|
|
task_performance = get_task_performance(line)
|
|
task_standard_deviation = get_task_std(line)
|
|
task_info[task_type].append(task_performance)
|
|
task_std_info[task_type].append(task_standard_deviation)
|
|
|
|
for task_type, task_performance_list in task_info.items():
|
|
# Newly introduced fields are not going to be compared.
|
|
if len(task_performance_list) < 2:
|
|
continue
|
|
|
|
latest_perf = task_performance_list[-1]
|
|
second_latest_perf = task_performance_list[-2]
|
|
change_rate = (
|
|
latest_perf - second_latest_perf) / second_latest_perf * 100
|
|
print("{} performance change rate: {}%".format(task_type,
|
|
round(change_rate, 2)))
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|