feat(perf): Expand instrumentation with context manager and extended metrics
This commit is contained in:
+13
-1
@@ -2348,15 +2348,21 @@ class App:
|
||||
if self.perf_profiling_enabled:
|
||||
imgui.separator()
|
||||
imgui.text("Detailed Component Timings (Moving Average)")
|
||||
if imgui.begin_table("comp_timings", 3, imgui.TableFlags_.borders):
|
||||
if imgui.begin_table("comp_timings", 6, imgui.TableFlags_.borders):
|
||||
imgui.table_setup_column("Component")
|
||||
imgui.table_setup_column("Avg (ms)")
|
||||
imgui.table_setup_column("Count")
|
||||
imgui.table_setup_column("Max (ms)")
|
||||
imgui.table_setup_column("Min (ms)")
|
||||
imgui.table_setup_column("Graph")
|
||||
imgui.table_headers_row()
|
||||
for key, val in metrics.items():
|
||||
if key.startswith("time_") and key.endswith("_ms") and not key.endswith("_avg"):
|
||||
comp_name = key[5:-3]
|
||||
avg_val = metrics.get(f"{key}_avg", val)
|
||||
count = int(metrics.get(f"count_{comp_name}", 0))
|
||||
max_val = metrics.get(f"max_{comp_name}_ms", 0.0)
|
||||
min_val = metrics.get(f"min_{comp_name}_ms", 0.0)
|
||||
imgui.table_next_row()
|
||||
imgui.table_next_column()
|
||||
imgui.text(comp_name)
|
||||
@@ -2366,6 +2372,12 @@ class App:
|
||||
else:
|
||||
imgui.text(f"{avg_val:.2f}")
|
||||
imgui.table_next_column()
|
||||
imgui.text(f"{count}")
|
||||
imgui.table_next_column()
|
||||
imgui.text(f"{max_val:.2f}")
|
||||
imgui.table_next_column()
|
||||
imgui.text(f"{min_val:.2f}")
|
||||
imgui.table_next_column()
|
||||
self.perf_show_graphs.setdefault(comp_name, False)
|
||||
_, self.perf_show_graphs[comp_name] = imgui.checkbox(f"##g_{comp_name}", self.perf_show_graphs[comp_name])
|
||||
imgui.end_table()
|
||||
|
||||
Reference in New Issue
Block a user