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 77 of file canvas_performance_integration.h.
|
default |
void yaze::gui::canvas::CanvasPerformanceIntegration::Initialize | ( | const std::string & | canvas_id | ) |
Initialize performance integration.
Definition at line 17 of file canvas_performance_integration.cc.
References canvas_id_, current_metrics_, dashboard_, yaze::gfx::PerformanceDashboard::Get(), LOG_DEBUG, monitoring_enabled_, and yaze::gui::canvas::CanvasPerformanceMetrics::Reset().
void yaze::gui::canvas::CanvasPerformanceIntegration::StartMonitoring | ( | ) |
Start performance monitoring.
Definition at line 30 of file canvas_performance_integration.cc.
References canvas_id_, frame_timer_, frame_timer_active_, LOG_DEBUG, and monitoring_enabled_.
void yaze::gui::canvas::CanvasPerformanceIntegration::StopMonitoring | ( | ) |
Stop performance monitoring.
Definition at line 41 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::canvas::CanvasPerformanceIntegration::UpdateMetrics | ( | ) |
Update performance metrics.
Definition at line 64 of file canvas_performance_integration.cc.
References CalculateCacheHitRatio(), monitoring_enabled_, SaveCurrentMetrics(), UpdateDrawTime(), UpdateFrameTime(), UpdateInteractionTime(), and UpdateModalTime().
void yaze::gui::canvas::CanvasPerformanceIntegration::RecordOperation | ( | const std::string & | operation_name, |
double | time_ms, | ||
CanvasUsage | usage_mode = CanvasUsage::kUnknown |
||
) |
Record canvas operation.
Definition at line 91 of file canvas_performance_integration.cc.
References yaze::gui::canvas::CanvasPerformanceMetrics::bpp_conversion_operations, yaze::gui::canvas::CanvasPerformanceMetrics::color_paint_operations, current_metrics_, yaze::gui::canvas::kBppConversion, yaze::gui::canvas::kColorPainting, yaze::gui::canvas::kSelectRectangle, yaze::gui::canvas::kTilePainting, yaze::gui::canvas::kTileSelecting, monitoring_enabled_, yaze::gui::canvas::CanvasPerformanceMetrics::rectangle_select_operations, yaze::gui::canvas::CanvasPerformanceMetrics::tile_paint_operations, yaze::gui::canvas::CanvasPerformanceMetrics::tile_select_operations, and usage_tracker_.
void yaze::gui::canvas::CanvasPerformanceIntegration::RecordMemoryUsage | ( | size_t | texture_memory, |
size_t | bitmap_memory, | ||
size_t | palette_memory | ||
) |
Record memory usage.
Definition at line 126 of file canvas_performance_integration.cc.
References yaze::gui::canvas::CanvasPerformanceMetrics::bitmap_memory_mb, current_metrics_, yaze::gui::canvas::CanvasPerformanceMetrics::palette_memory_mb, and yaze::gui::canvas::CanvasPerformanceMetrics::texture_memory_mb.
void yaze::gui::canvas::CanvasPerformanceIntegration::RecordCachePerformance | ( | int | hits, |
int | misses | ||
) |
Record cache performance.
Definition at line 134 of file canvas_performance_integration.cc.
References yaze::gui::canvas::CanvasPerformanceMetrics::cache_hits, yaze::gui::canvas::CanvasPerformanceMetrics::cache_misses, CalculateCacheHitRatio(), and current_metrics_.
|
inline |
Get current performance metrics.
Definition at line 123 of file canvas_performance_integration.h.
References current_metrics_.
|
inline |
Get performance history.
Definition at line 128 of file canvas_performance_integration.h.
References performance_history_.
std::string yaze::gui::canvas::CanvasPerformanceIntegration::GetPerformanceSummary | ( | ) | const |
Get performance summary.
Definition at line 142 of file canvas_performance_integration.cc.
References yaze::gui::canvas::CanvasPerformanceMetrics::bitmap_memory_mb, yaze::gui::canvas::CanvasPerformanceMetrics::bitmap_operations, yaze::gui::canvas::CanvasPerformanceMetrics::bpp_conversion_operations, yaze::gui::canvas::CanvasPerformanceMetrics::cache_hit_ratio, yaze::gui::canvas::CanvasPerformanceMetrics::cache_hits, yaze::gui::canvas::CanvasPerformanceMetrics::cache_misses, canvas_id_, yaze::gui::canvas::CanvasPerformanceMetrics::color_paint_operations, current_metrics_, yaze::gui::canvas::CanvasPerformanceMetrics::draw_calls, yaze::gui::canvas::CanvasPerformanceMetrics::draw_time_ms, FormatMemory(), FormatTime(), yaze::gui::canvas::CanvasPerformanceMetrics::frame_time_ms, yaze::gui::canvas::CanvasPerformanceMetrics::interaction_time_ms, yaze::gui::canvas::CanvasPerformanceMetrics::modal_time_ms, yaze::gui::canvas::CanvasPerformanceMetrics::palette_lookups, yaze::gui::canvas::CanvasPerformanceMetrics::palette_memory_mb, yaze::gui::canvas::CanvasPerformanceMetrics::rectangle_select_operations, yaze::gui::canvas::CanvasPerformanceMetrics::texture_memory_mb, yaze::gui::canvas::CanvasPerformanceMetrics::texture_updates, yaze::gui::canvas::CanvasPerformanceMetrics::tile_paint_operations, and yaze::gui::canvas::CanvasPerformanceMetrics::tile_select_operations.
Referenced by ExportPerformanceReport().
std::vector< std::string > yaze::gui::canvas::CanvasPerformanceIntegration::GetPerformanceRecommendations | ( | ) | const |
Get performance recommendations.
Definition at line 181 of file canvas_performance_integration.cc.
References yaze::gui::canvas::CanvasPerformanceMetrics::bitmap_memory_mb, yaze::gui::canvas::CanvasPerformanceMetrics::cache_hit_ratio, current_metrics_, yaze::gui::canvas::CanvasPerformanceMetrics::draw_calls, yaze::gui::canvas::CanvasPerformanceMetrics::draw_time_ms, yaze::gui::canvas::CanvasPerformanceMetrics::frame_time_ms, yaze::gui::canvas::CanvasPerformanceMetrics::palette_memory_mb, yaze::gui::canvas::CanvasPerformanceMetrics::texture_memory_mb, and yaze::gui::canvas::CanvasPerformanceMetrics::texture_updates.
Referenced by ExportPerformanceReport(), and RenderRecommendations().
std::string yaze::gui::canvas::CanvasPerformanceIntegration::ExportPerformanceReport | ( | ) | const |
Export performance report.
Definition at line 219 of file canvas_performance_integration.cc.
References canvas_id_, FormatMemory(), FormatTime(), GetPerformanceRecommendations(), GetPerformanceSummary(), monitoring_enabled_, and performance_history_.
Referenced by RenderPerformanceUI().
void yaze::gui::canvas::CanvasPerformanceIntegration::RenderPerformanceUI | ( | ) |
Render performance UI.
Definition at line 259 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::canvas::CanvasPerformanceIntegration::SetUsageTracker | ( | std::shared_ptr< CanvasUsageTracker > | tracker | ) |
Set usage tracker integration.
Definition at line 294 of file canvas_performance_integration.cc.
References usage_tracker_.
|
inline |
Enable/disable performance monitoring.
Definition at line 160 of file canvas_performance_integration.h.
References monitoring_enabled_.
|
inline |
Definition at line 161 of file canvas_performance_integration.h.
References monitoring_enabled_.
|
private |
Definition at line 298 of file canvas_performance_integration.cc.
References current_metrics_, yaze::gui::canvas::CanvasPerformanceMetrics::frame_time_ms, and frame_timer_.
Referenced by UpdateMetrics().
|
private |
Definition at line 305 of file canvas_performance_integration.cc.
References current_metrics_, yaze::gui::canvas::CanvasPerformanceMetrics::draw_time_ms, and draw_timer_.
Referenced by UpdateMetrics().
|
private |
Definition at line 312 of file canvas_performance_integration.cc.
References current_metrics_, yaze::gui::canvas::CanvasPerformanceMetrics::interaction_time_ms, and interaction_timer_.
Referenced by UpdateMetrics().
|
private |
Definition at line 319 of file canvas_performance_integration.cc.
References current_metrics_, yaze::gui::canvas::CanvasPerformanceMetrics::modal_time_ms, and modal_timer_.
Referenced by UpdateMetrics().
|
private |
Definition at line 326 of file canvas_performance_integration.cc.
References yaze::gui::canvas::CanvasPerformanceMetrics::cache_hit_ratio, yaze::gui::canvas::CanvasPerformanceMetrics::cache_hits, yaze::gui::canvas::CanvasPerformanceMetrics::cache_misses, and current_metrics_.
Referenced by RecordCachePerformance(), and UpdateMetrics().
|
private |
Definition at line 335 of file canvas_performance_integration.cc.
References current_metrics_, and performance_history_.
Referenced by UpdateMetrics().
|
private |
Definition at line 344 of file canvas_performance_integration.cc.
References canvas_id_, LOG_DEBUG, and performance_history_.
|
private |
Definition at line 376 of file canvas_performance_integration.cc.
References yaze::gui::canvas::CanvasPerformanceMetrics::bitmap_memory_mb, yaze::gui::canvas::CanvasPerformanceMetrics::cache_hit_ratio, current_metrics_, yaze::gui::canvas::CanvasPerformanceMetrics::draw_time_ms, FormatMemory(), FormatTime(), yaze::gui::canvas::CanvasPerformanceMetrics::frame_time_ms, GetPerformanceColor(), yaze::gui::canvas::CanvasPerformanceMetrics::palette_memory_mb, and yaze::gui::canvas::CanvasPerformanceMetrics::texture_memory_mb.
Referenced by RenderPerformanceUI().
|
private |
Definition at line 400 of file canvas_performance_integration.cc.
References RenderCachePerformance(), RenderMemoryUsage(), and RenderOperationCounts().
Referenced by RenderPerformanceUI().
|
private |
Definition at line 414 of file canvas_performance_integration.cc.
References yaze::gui::canvas::CanvasPerformanceMetrics::bitmap_memory_mb, current_metrics_, FormatMemory(), yaze::gui::canvas::CanvasPerformanceMetrics::palette_memory_mb, and yaze::gui::canvas::CanvasPerformanceMetrics::texture_memory_mb.
Referenced by RenderDetailedMetrics().
|
private |
Definition at line 427 of file canvas_performance_integration.cc.
References yaze::gui::canvas::CanvasPerformanceMetrics::bitmap_operations, yaze::gui::canvas::CanvasPerformanceMetrics::bpp_conversion_operations, yaze::gui::canvas::CanvasPerformanceMetrics::color_paint_operations, current_metrics_, yaze::gui::canvas::CanvasPerformanceMetrics::draw_calls, yaze::gui::canvas::CanvasPerformanceMetrics::palette_lookups, yaze::gui::canvas::CanvasPerformanceMetrics::rectangle_select_operations, yaze::gui::canvas::CanvasPerformanceMetrics::texture_updates, yaze::gui::canvas::CanvasPerformanceMetrics::tile_paint_operations, and yaze::gui::canvas::CanvasPerformanceMetrics::tile_select_operations.
Referenced by RenderDetailedMetrics().
|
private |
Definition at line 444 of file canvas_performance_integration.cc.
References yaze::gui::canvas::CanvasPerformanceMetrics::cache_hit_ratio, yaze::gui::canvas::CanvasPerformanceMetrics::cache_hits, yaze::gui::canvas::CanvasPerformanceMetrics::cache_misses, and current_metrics_.
Referenced by RenderDetailedMetrics().
|
private |
Definition at line 455 of file canvas_performance_integration.cc.
References GetPerformanceRecommendations().
Referenced by RenderPerformanceUI().
|
private |
Definition at line 469 of file canvas_performance_integration.cc.
References current_metrics_, yaze::gui::canvas::CanvasPerformanceMetrics::draw_time_ms, and yaze::gui::canvas::CanvasPerformanceMetrics::frame_time_ms.
|
private |
Definition at line 496 of file canvas_performance_integration.cc.
Referenced by ExportPerformanceReport(), GetPerformanceSummary(), and RenderPerformanceOverview().
|
private |
Definition at line 506 of file canvas_performance_integration.cc.
Referenced by ExportPerformanceReport(), GetPerformanceSummary(), RenderMemoryUsage(), and RenderPerformanceOverview().
|
private |
Definition at line 516 of file canvas_performance_integration.cc.
Referenced by RenderPerformanceOverview().
|
private |
Definition at line 164 of file canvas_performance_integration.h.
Referenced by AnalyzePerformance(), ExportPerformanceReport(), GetPerformanceSummary(), Initialize(), StartMonitoring(), and StopMonitoring().
|
private |
Definition at line 165 of file canvas_performance_integration.h.
Referenced by ExportPerformanceReport(), Initialize(), IsMonitoringEnabled(), RecordOperation(), RenderPerformanceUI(), SetMonitoringEnabled(), StartMonitoring(), and UpdateMetrics().
|
private |
Definition at line 166 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 167 of file canvas_performance_integration.h.
Referenced by AnalyzePerformance(), ExportPerformanceReport(), GetPerformanceHistory(), and SaveCurrentMetrics().
|
private |
Definition at line 170 of file canvas_performance_integration.h.
Referenced by StartMonitoring(), StopMonitoring(), and UpdateFrameTime().
|
private |
Definition at line 171 of file canvas_performance_integration.h.
Referenced by StopMonitoring(), and UpdateDrawTime().
|
private |
Definition at line 172 of file canvas_performance_integration.h.
Referenced by StopMonitoring(), and UpdateInteractionTime().
|
private |
Definition at line 173 of file canvas_performance_integration.h.
Referenced by StopMonitoring(), and UpdateModalTime().
|
private |
Definition at line 174 of file canvas_performance_integration.h.
Referenced by StartMonitoring(), and 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 177 of file canvas_performance_integration.h.
Referenced by StopMonitoring().
|
private |
Definition at line 180 of file canvas_performance_integration.h.
Referenced by RecordOperation(), and SetUsageTracker().
|
private |
Definition at line 183 of file canvas_performance_integration.h.
Referenced by Initialize().
|
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().
|
private |
Definition at line 188 of file canvas_performance_integration.h.
Referenced by RenderPerformanceUI().