@@ -36,7 +36,7 @@ def add_performance_model(model):
3636 performance_models [data_mode ][data_rate ].append (model )
3737
3838
39- def flatten_performance_models (models ):
39+ def flatten_performance_models ():
4040 """
4141 Flattens performance model into list of grouped models where each group
4242 corresponds to a table in the report.
@@ -58,9 +58,36 @@ def flatten_performance_models(models):
5858 x ["data_mode" ], x ["data_rate" ]))
5959 return models_list
6060
61+ def get_benchmark_data ():
62+ """
63+ Splits models by test
64+ """
65+ benchmark_data = []
66+
67+ for data_mode , data_rates in performance_models .items ():
68+ for data_rate , models in data_rates .items ():
69+ for model in models :
70+ benchmark_cpu = {}
71+ benchmark_cpu ["name" ] = f"{ model ['testcase' ]} ({ data_mode } /{ data_rate } ) - Average CPU Usage"
72+ benchmark_cpu ["value" ] = model ["avgCpu" ]
73+ benchmark_cpu ["unit" ] = "Percent"
74+
75+ benchmark_mem = {}
76+ benchmark_mem ["name" ] = f"{ model ['testcase' ]} ({ data_mode } /{ data_rate } ) - Average Memory Usage"
77+ benchmark_mem ["value" ] = model ["avgMem" ]
78+ benchmark_mem ["unit" ] = "Megabytes"
79+
80+ benchmark_data .append (benchmark_cpu )
81+ benchmark_data .append (benchmark_mem )
82+
83+ return benchmark_data
6184
6285if __name__ == "__main__" :
63- aoc_version = Path ('VERSION' ).read_text ()
86+ try :
87+ aoc_version = sys .argv [1 ].rstrip ()
88+ except IndexError :
89+ print (f"Usage: { sys .argv [0 ]} <version>" )
90+ sys .exit (1 )
6491
6592 from jinja2 import Environment , PackageLoader , select_autoescape
6693 templateLoader = jinja2 .FileSystemLoader (searchpath = "e2etest/templates/" )
@@ -79,7 +106,7 @@ def flatten_performance_models(models):
79106 testing_ami = model ["testingAmi" ]
80107 add_performance_model (model )
81108
82- models_list = flatten_performance_models (performance_models )
109+ models_list = flatten_performance_models ()
83110
84111 # render performance models into markdown
85112 template = env .get_template ('performance_model.tpl' )
@@ -92,6 +119,10 @@ def flatten_performance_models(models):
92119 })
93120 print (rendered_result )
94121
95- # write rendered result to docs/performance_model .md
96- with open ("docs/performance_model .md" , "w+" ) as f :
122+ # write rendered result to report .md
123+ with open ("performance-report .md" , "w+" ) as f :
97124 f .write (rendered_result )
125+
126+ # write benchmark-data.json
127+ with open ("performance-data.json" , "w+" ) as f :
128+ f .write (json .dumps (get_benchmark_data ()))
0 commit comments