Canvas performance integration with dashboard. More...
#include <canvas_performance_integration.h>
Public Member Functions | |
CanvasPerformanceIntegration ()=default | |
void | Initialize (const std::string &canvas_id) |
Initialize performance integration. | |
void | StartMonitoring () |
Start performance monitoring. | |
void | StopMonitoring () |
Stop performance monitoring. | |
void | UpdateMetrics () |
Update performance metrics. | |
void | RecordOperation (const std::string &operation_name, double time_ms, CanvasUsage usage_mode=CanvasUsage::kUnknown) |
Record canvas operation. | |
void | RecordMemoryUsage (size_t texture_memory, size_t bitmap_memory, size_t palette_memory) |
Record memory usage. | |
void | RecordCachePerformance (int hits, int misses) |
Record cache performance. | |
const CanvasPerformanceMetrics & | GetCurrentMetrics () const |
Get current performance metrics. | |
const std::vector< CanvasPerformanceMetrics > & | GetPerformanceHistory () const |
Get performance history. | |
std::string | GetPerformanceSummary () const |
Get performance summary. | |
std::vector< std::string > | GetPerformanceRecommendations () const |
Get performance recommendations. | |
std::string | ExportPerformanceReport () const |
Export performance report. | |
void | RenderPerformanceUI () |
Render performance UI. | |
void | SetUsageTracker (std::shared_ptr< CanvasUsageTracker > tracker) |
Set usage tracker integration. | |
void | SetMonitoringEnabled (bool enabled) |
Enable/disable performance monitoring. | |
bool | IsMonitoringEnabled () const |
Private Member Functions | |
void | UpdateFrameTime () |
void | UpdateDrawTime () |
void | UpdateInteractionTime () |
void | UpdateModalTime () |
void | CalculateCacheHitRatio () |
void | SaveCurrentMetrics () |
void | AnalyzePerformance () |
void | RenderPerformanceOverview () |
void | RenderDetailedMetrics () |
void | RenderMemoryUsage () |
void | RenderOperationCounts () |
void | RenderCachePerformance () |
void | RenderRecommendations () |
void | RenderPerformanceGraph () |
std::string | FormatTime (double time_ms) const |
std::string | FormatMemory (size_t bytes) const |
ImVec4 | GetPerformanceColor (double value, double threshold_good, double threshold_warning) const |
Private Attributes | |
std::string | canvas_id_ |
bool | monitoring_enabled_ = true |
CanvasPerformanceMetrics | current_metrics_ |
std::vector< CanvasPerformanceMetrics > | performance_history_ |
std::unique_ptr< gfx::ScopedTimer > | frame_timer_ |
std::unique_ptr< gfx::ScopedTimer > | draw_timer_ |
std::unique_ptr< gfx::ScopedTimer > | interaction_timer_ |
std::unique_ptr< gfx::ScopedTimer > | modal_timer_ |
bool | frame_timer_active_ = false |
bool | draw_timer_active_ = false |
bool | interaction_timer_active_ = false |
bool | modal_timer_active_ = false |
std::shared_ptr< CanvasUsageTracker > | usage_tracker_ |
gfx::PerformanceDashboard * | dashboard_ = nullptr |
bool | show_performance_ui_ = false |
bool | show_detailed_metrics_ = false |
bool | show_recommendations_ = false |
Canvas performance integration with dashboard.
Definition at line 76 of file canvas_performance_integration.h.
|
default |
void yaze::gui::CanvasPerformanceIntegration::Initialize | ( | const std::string & | canvas_id | ) |
Initialize performance integration.
Definition at line 16 of file canvas_performance_integration.cc.
References canvas_id_, current_metrics_, dashboard_, yaze::gfx::PerformanceDashboard::Get(), LOG_DEBUG, monitoring_enabled_, and yaze::gui::CanvasPerformanceMetrics::Reset().
void yaze::gui::CanvasPerformanceIntegration::StartMonitoring | ( | ) |
Start performance monitoring.
Definition at line 29 of file canvas_performance_integration.cc.
References canvas_id_, frame_timer_, frame_timer_active_, LOG_DEBUG, and monitoring_enabled_.
void yaze::gui::CanvasPerformanceIntegration::StopMonitoring | ( | ) |
Stop performance monitoring.
Definition at line 40 of file canvas_performance_integration.cc.
References canvas_id_, draw_timer_, draw_timer_active_, frame_timer_, frame_timer_active_, interaction_timer_, interaction_timer_active_, LOG_DEBUG, modal_timer_, and modal_timer_active_.
void yaze::gui::CanvasPerformanceIntegration::UpdateMetrics | ( | ) |
Update performance metrics.
Definition at line 63 of file canvas_performance_integration.cc.
References CalculateCacheHitRatio(), monitoring_enabled_, SaveCurrentMetrics(), UpdateDrawTime(), UpdateFrameTime(), UpdateInteractionTime(), and UpdateModalTime().
void yaze::gui::CanvasPerformanceIntegration::RecordOperation | ( | const std::string & | operation_name, |
double | time_ms, | ||
CanvasUsage | usage_mode = CanvasUsage::kUnknown |
||
) |
Record canvas operation.
Definition at line 90 of file canvas_performance_integration.cc.
References yaze::gui::CanvasPerformanceMetrics::bpp_conversion_operations, yaze::gui::CanvasPerformanceMetrics::color_paint_operations, current_metrics_, yaze::gui::kBppConversion, yaze::gui::kColorPainting, yaze::gui::kSelectRectangle, yaze::gui::kTilePainting, yaze::gui::kTileSelecting, monitoring_enabled_, yaze::gui::CanvasPerformanceMetrics::rectangle_select_operations, yaze::gui::CanvasPerformanceMetrics::tile_paint_operations, yaze::gui::CanvasPerformanceMetrics::tile_select_operations, and usage_tracker_.
void yaze::gui::CanvasPerformanceIntegration::RecordMemoryUsage | ( | size_t | texture_memory, |
size_t | bitmap_memory, | ||
size_t | palette_memory | ||
) |
Record memory usage.
Definition at line 125 of file canvas_performance_integration.cc.
References yaze::gui::CanvasPerformanceMetrics::bitmap_memory_mb, current_metrics_, yaze::gui::CanvasPerformanceMetrics::palette_memory_mb, and yaze::gui::CanvasPerformanceMetrics::texture_memory_mb.
void yaze::gui::CanvasPerformanceIntegration::RecordCachePerformance | ( | int | hits, |
int | misses | ||
) |
Record cache performance.
Definition at line 133 of file canvas_performance_integration.cc.
References yaze::gui::CanvasPerformanceMetrics::cache_hits, yaze::gui::CanvasPerformanceMetrics::cache_misses, CalculateCacheHitRatio(), and current_metrics_.
|
inline |
Get current performance metrics.
Definition at line 122 of file canvas_performance_integration.h.
References current_metrics_.
|
inline |
Get performance history.
Definition at line 127 of file canvas_performance_integration.h.
References performance_history_.
std::string yaze::gui::CanvasPerformanceIntegration::GetPerformanceSummary | ( | ) | const |
Get performance summary.
Definition at line 141 of file canvas_performance_integration.cc.
References yaze::gui::CanvasPerformanceMetrics::bitmap_memory_mb, yaze::gui::CanvasPerformanceMetrics::bitmap_operations, yaze::gui::CanvasPerformanceMetrics::bpp_conversion_operations, yaze::gui::CanvasPerformanceMetrics::cache_hit_ratio, yaze::gui::CanvasPerformanceMetrics::cache_hits, yaze::gui::CanvasPerformanceMetrics::cache_misses, canvas_id_, yaze::gui::CanvasPerformanceMetrics::color_paint_operations, current_metrics_, yaze::gui::CanvasPerformanceMetrics::draw_calls, yaze::gui::CanvasPerformanceMetrics::draw_time_ms, FormatMemory(), FormatTime(), yaze::gui::CanvasPerformanceMetrics::frame_time_ms, yaze::gui::CanvasPerformanceMetrics::interaction_time_ms, yaze::gui::CanvasPerformanceMetrics::modal_time_ms, yaze::gui::CanvasPerformanceMetrics::palette_lookups, yaze::gui::CanvasPerformanceMetrics::palette_memory_mb, yaze::gui::CanvasPerformanceMetrics::rectangle_select_operations, yaze::gui::CanvasPerformanceMetrics::texture_memory_mb, yaze::gui::CanvasPerformanceMetrics::texture_updates, yaze::gui::CanvasPerformanceMetrics::tile_paint_operations, and yaze::gui::CanvasPerformanceMetrics::tile_select_operations.
Referenced by ExportPerformanceReport().
std::vector< std::string > yaze::gui::CanvasPerformanceIntegration::GetPerformanceRecommendations | ( | ) | const |
Get performance recommendations.
Definition at line 180 of file canvas_performance_integration.cc.
References yaze::gui::CanvasPerformanceMetrics::bitmap_memory_mb, yaze::gui::CanvasPerformanceMetrics::cache_hit_ratio, current_metrics_, yaze::gui::CanvasPerformanceMetrics::draw_calls, yaze::gui::CanvasPerformanceMetrics::draw_time_ms, yaze::gui::CanvasPerformanceMetrics::frame_time_ms, yaze::gui::CanvasPerformanceMetrics::palette_memory_mb, yaze::gui::CanvasPerformanceMetrics::texture_memory_mb, and yaze::gui::CanvasPerformanceMetrics::texture_updates.
Referenced by ExportPerformanceReport(), and RenderRecommendations().
std::string yaze::gui::CanvasPerformanceIntegration::ExportPerformanceReport | ( | ) | const |
Export performance report.
Definition at line 218 of file canvas_performance_integration.cc.
References canvas_id_, FormatMemory(), FormatTime(), GetPerformanceRecommendations(), GetPerformanceSummary(), monitoring_enabled_, and performance_history_.
Referenced by RenderPerformanceUI().
void yaze::gui::CanvasPerformanceIntegration::RenderPerformanceUI | ( | ) |
Render performance UI.
Definition at line 258 of file canvas_performance_integration.cc.
References ExportPerformanceReport(), monitoring_enabled_, RenderDetailedMetrics(), RenderPerformanceOverview(), RenderRecommendations(), show_detailed_metrics_, show_performance_ui_, and show_recommendations_.
void yaze::gui::CanvasPerformanceIntegration::SetUsageTracker | ( | std::shared_ptr< CanvasUsageTracker > | tracker | ) |
Set usage tracker integration.
Definition at line 293 of file canvas_performance_integration.cc.
References usage_tracker_.
|
inline |
Enable/disable performance monitoring.
Definition at line 159 of file canvas_performance_integration.h.
References monitoring_enabled_.
|
inline |
Definition at line 160 of file canvas_performance_integration.h.
References monitoring_enabled_.
|
private |
Definition at line 297 of file canvas_performance_integration.cc.
References current_metrics_, yaze::gui::CanvasPerformanceMetrics::frame_time_ms, and frame_timer_.
Referenced by UpdateMetrics().
|
private |
Definition at line 304 of file canvas_performance_integration.cc.
References current_metrics_, yaze::gui::CanvasPerformanceMetrics::draw_time_ms, and draw_timer_.
Referenced by UpdateMetrics().
|
private |
Definition at line 311 of file canvas_performance_integration.cc.
References current_metrics_, yaze::gui::CanvasPerformanceMetrics::interaction_time_ms, and interaction_timer_.
Referenced by UpdateMetrics().
|
private |
Definition at line 318 of file canvas_performance_integration.cc.
References current_metrics_, yaze::gui::CanvasPerformanceMetrics::modal_time_ms, and modal_timer_.
Referenced by UpdateMetrics().
|
private |
Definition at line 325 of file canvas_performance_integration.cc.
References yaze::gui::CanvasPerformanceMetrics::cache_hit_ratio, yaze::gui::CanvasPerformanceMetrics::cache_hits, yaze::gui::CanvasPerformanceMetrics::cache_misses, and current_metrics_.
Referenced by RecordCachePerformance(), and UpdateMetrics().
|
private |
Definition at line 334 of file canvas_performance_integration.cc.
References current_metrics_, and performance_history_.
Referenced by UpdateMetrics().
|
private |
Definition at line 343 of file canvas_performance_integration.cc.
References canvas_id_, LOG_DEBUG, and performance_history_.
|
private |
Definition at line 375 of file canvas_performance_integration.cc.
References yaze::gui::CanvasPerformanceMetrics::bitmap_memory_mb, yaze::gui::CanvasPerformanceMetrics::cache_hit_ratio, current_metrics_, yaze::gui::CanvasPerformanceMetrics::draw_time_ms, FormatMemory(), FormatTime(), yaze::gui::CanvasPerformanceMetrics::frame_time_ms, GetPerformanceColor(), yaze::gui::CanvasPerformanceMetrics::palette_memory_mb, and yaze::gui::CanvasPerformanceMetrics::texture_memory_mb.
Referenced by RenderPerformanceUI().
|
private |
Definition at line 399 of file canvas_performance_integration.cc.
References RenderCachePerformance(), RenderMemoryUsage(), and RenderOperationCounts().
Referenced by RenderPerformanceUI().
|
private |
Definition at line 413 of file canvas_performance_integration.cc.
References yaze::gui::CanvasPerformanceMetrics::bitmap_memory_mb, current_metrics_, FormatMemory(), yaze::gui::CanvasPerformanceMetrics::palette_memory_mb, and yaze::gui::CanvasPerformanceMetrics::texture_memory_mb.
Referenced by RenderDetailedMetrics().
|
private |
Definition at line 426 of file canvas_performance_integration.cc.
References yaze::gui::CanvasPerformanceMetrics::bitmap_operations, yaze::gui::CanvasPerformanceMetrics::bpp_conversion_operations, yaze::gui::CanvasPerformanceMetrics::color_paint_operations, current_metrics_, yaze::gui::CanvasPerformanceMetrics::draw_calls, yaze::gui::CanvasPerformanceMetrics::palette_lookups, yaze::gui::CanvasPerformanceMetrics::rectangle_select_operations, yaze::gui::CanvasPerformanceMetrics::texture_updates, yaze::gui::CanvasPerformanceMetrics::tile_paint_operations, and yaze::gui::CanvasPerformanceMetrics::tile_select_operations.
Referenced by RenderDetailedMetrics().
|
private |
Definition at line 443 of file canvas_performance_integration.cc.
References yaze::gui::CanvasPerformanceMetrics::cache_hit_ratio, yaze::gui::CanvasPerformanceMetrics::cache_hits, yaze::gui::CanvasPerformanceMetrics::cache_misses, and current_metrics_.
Referenced by RenderDetailedMetrics().
|
private |
Definition at line 454 of file canvas_performance_integration.cc.
References GetPerformanceRecommendations().
Referenced by RenderPerformanceUI().
|
private |
Definition at line 468 of file canvas_performance_integration.cc.
References current_metrics_, yaze::gui::CanvasPerformanceMetrics::draw_time_ms, and yaze::gui::CanvasPerformanceMetrics::frame_time_ms.
|
private |
Definition at line 495 of file canvas_performance_integration.cc.
Referenced by ExportPerformanceReport(), GetPerformanceSummary(), and RenderPerformanceOverview().
|
private |
Definition at line 505 of file canvas_performance_integration.cc.
Referenced by ExportPerformanceReport(), GetPerformanceSummary(), RenderMemoryUsage(), and RenderPerformanceOverview().
|
private |
Definition at line 515 of file canvas_performance_integration.cc.
Referenced by RenderPerformanceOverview().
|
private |
Definition at line 163 of file canvas_performance_integration.h.
Referenced by AnalyzePerformance(), ExportPerformanceReport(), GetPerformanceSummary(), Initialize(), StartMonitoring(), and StopMonitoring().
|
private |
Definition at line 164 of file canvas_performance_integration.h.
Referenced by ExportPerformanceReport(), Initialize(), IsMonitoringEnabled(), RecordOperation(), RenderPerformanceUI(), SetMonitoringEnabled(), StartMonitoring(), and UpdateMetrics().
|
private |
Definition at line 165 of file canvas_performance_integration.h.
Referenced by CalculateCacheHitRatio(), GetCurrentMetrics(), GetPerformanceRecommendations(), GetPerformanceSummary(), Initialize(), RecordCachePerformance(), RecordMemoryUsage(), RecordOperation(), RenderCachePerformance(), RenderMemoryUsage(), RenderOperationCounts(), RenderPerformanceGraph(), RenderPerformanceOverview(), SaveCurrentMetrics(), UpdateDrawTime(), UpdateFrameTime(), UpdateInteractionTime(), and UpdateModalTime().
|
private |
Definition at line 166 of file canvas_performance_integration.h.
Referenced by AnalyzePerformance(), ExportPerformanceReport(), GetPerformanceHistory(), and SaveCurrentMetrics().
|
private |
Definition at line 169 of file canvas_performance_integration.h.
Referenced by StartMonitoring(), StopMonitoring(), and UpdateFrameTime().
|
private |
Definition at line 170 of file canvas_performance_integration.h.
Referenced by StopMonitoring(), and UpdateDrawTime().
|
private |
Definition at line 171 of file canvas_performance_integration.h.
Referenced by StopMonitoring(), and UpdateInteractionTime().
|
private |
Definition at line 172 of file canvas_performance_integration.h.
Referenced by StopMonitoring(), and UpdateModalTime().
|
private |
Definition at line 173 of file canvas_performance_integration.h.
Referenced by StartMonitoring(), and StopMonitoring().
|
private |
Definition at line 174 of file canvas_performance_integration.h.
Referenced by StopMonitoring().
|
private |
Definition at line 175 of file canvas_performance_integration.h.
Referenced by StopMonitoring().
|
private |
Definition at line 176 of file canvas_performance_integration.h.
Referenced by StopMonitoring().
|
private |
Definition at line 179 of file canvas_performance_integration.h.
Referenced by RecordOperation(), and SetUsageTracker().
|
private |
Definition at line 182 of file canvas_performance_integration.h.
Referenced by Initialize().
|
private |
Definition at line 185 of file canvas_performance_integration.h.
Referenced by RenderPerformanceUI().
|
private |
Definition at line 186 of file canvas_performance_integration.h.
Referenced by RenderPerformanceUI().
|
private |
Definition at line 187 of file canvas_performance_integration.h.
Referenced by RenderPerformanceUI().