feat(perf): Integrate PerformanceMonitor with DPG main loop
This commit is contained in:
6
gui.py
6
gui.py
@@ -26,6 +26,7 @@ import session_logger
|
||||
import project_manager
|
||||
import api_hooks
|
||||
import theme
|
||||
from performance_monitor import PerformanceMonitor
|
||||
|
||||
CONFIG_PATH = Path("config.toml")
|
||||
PROVIDERS = ["gemini", "anthropic"]
|
||||
@@ -493,6 +494,8 @@ class App:
|
||||
self._is_script_blinking = False
|
||||
self._script_blink_start_time = 0.0
|
||||
|
||||
self.perf_monitor = PerformanceMonitor()
|
||||
|
||||
session_logger.open_session()
|
||||
ai_client.set_provider(self.current_provider, self.current_model)
|
||||
ai_client.confirm_and_run_callback = self._confirm_and_run
|
||||
@@ -2108,6 +2111,7 @@ class App:
|
||||
self.hook_server.start()
|
||||
|
||||
while dpg.is_dearpygui_running():
|
||||
self.perf_monitor.start_frame()
|
||||
# Show any pending confirmation dialog on the main thread safely
|
||||
with self._pending_dialog_lock:
|
||||
dialog = self._pending_dialog
|
||||
@@ -2244,6 +2248,7 @@ class App:
|
||||
self._flush_pending_comms()
|
||||
self._update_telemetry_panel()
|
||||
|
||||
self.perf_monitor.end_frame()
|
||||
dpg.render_dearpygui_frame()
|
||||
|
||||
# Save everything on exit
|
||||
@@ -2254,6 +2259,7 @@ class App:
|
||||
|
||||
dpg.save_init_file("dpg_layout.ini")
|
||||
session_logger.close_session()
|
||||
self.perf_monitor.stop()
|
||||
ai_client.cleanup() # Destroy active API caches to stop billing
|
||||
self.hook_server.stop()
|
||||
dpg.destroy_context()
|
||||
|
||||
Reference in New Issue
Block a user