in benchmarks/dash_app/app.py [0:0]
def update_runtime_diff(start_date, end_date, funcs):
if type(funcs) is str:
funcs = [funcs]
try:
filter_df = func_df[func_df["mode"] == "1pc"]
func_df_cpu = filter_df[filter_df["device"] == "cpu"]
start_df = func_df_cpu[func_df_cpu["date"] == start_date]
end_df = func_df_cpu[func_df_cpu["date"] == end_date]
except KeyError:
filter_df = pd.DataFrame()
if filter_df.empty:
return render_emtpy_figure()
fig = make_subplots(
rows=len(funcs), cols=1, specs=[[{"type": "domain"}] for _ in range(len(funcs))]
)
for i, func in enumerate(funcs):
runtime = end_df[end_df["function"] == func]["runtime crypten"]
runtime_prev = start_df[start_df["function"] == func]["runtime crypten"]
func_text = func.capitalize()
fig.add_trace(
go.Indicator(
mode="number+delta",
value=float(runtime),
title={
"text": f"{func_text}<br><span style='font-size:0.8em;color:gray'>"
+ "runtime in seconds</span><br>"
},
delta={
"reference": float(runtime_prev),
"relative": True,
"increasing": {"color": "#ff4236"},
"decreasing": {"color": "#008000"},
},
),
row=i + 1,
col=1,
)
fig.update_layout(height=300 * len(funcs))
return fig