Ember
Loading...
Searching...
No Matches
EmberForge::PerformanceMonitor Class Reference

System performance monitoring class. More...

#include <PerformanceMonitor.h>

Public Member Functions

 PerformanceMonitor ()
 ~PerformanceMonitor ()
void BeginFrame ()
void EndFrame ()
void RecordMetric (const std::string &name, float value, const std::string &unit="")
void RecordTime (const std::string &name, double milliseconds)
void UpdateSystemMetrics ()
float GetCPUUsage () const
float GetMemoryUsage () const
float GetCurrentFPS () const
std::shared_ptr< MetricData > GetMetric (const std::string &name) const
std::vector< std::shared_ptr< MetricData > > GetAllMetrics () const
void SetEnabled (bool enabled)
bool IsEnabled () const
void Clear ()

Static Public Member Functions

static PerformanceMonitor & GetInstance ()

Private Member Functions

void InitializeBuiltInMetrics ()
void UpdateFPS ()
float ReadCPUUsage ()
float ReadMemoryUsage ()

Private Attributes

std::shared_ptr< MetricData > m_frameTimeMetric
std::shared_ptr< MetricData > m_fpsMetric
std::shared_ptr< MetricData > m_cpuMetric
std::shared_ptr< MetricData > m_memoryMetric
std::map< std::string, std::shared_ptr< MetricData > > m_customMetrics
std::chrono::high_resolution_clock::time_point m_frameStart
std::chrono::high_resolution_clock::time_point m_lastFrameTime
std::deque< float > m_frameTimes
float m_cpuUsage
float m_memoryUsageMB
float m_currentFPS
bool m_enabled
bool m_frameActive

Detailed Description

System performance monitoring class.

Definition at line 37 of file PerformanceMonitor.h.

Constructor & Destructor Documentation

◆ PerformanceMonitor()

EmberForge::PerformanceMonitor::PerformanceMonitor ( )

Definition at line 66 of file PerformanceMonitor.cpp.

◆ ~PerformanceMonitor()

EmberForge::PerformanceMonitor::~PerformanceMonitor ( )

Definition at line 77 of file PerformanceMonitor.cpp.

Member Function Documentation

◆ BeginFrame()

void EmberForge::PerformanceMonitor::BeginFrame ( )

Definition at line 89 of file PerformanceMonitor.cpp.

◆ Clear()

void EmberForge::PerformanceMonitor::Clear ( )

Definition at line 268 of file PerformanceMonitor.cpp.

◆ EndFrame()

void EmberForge::PerformanceMonitor::EndFrame ( )

Definition at line 97 of file PerformanceMonitor.cpp.

◆ GetAllMetrics()

std::vector< std::shared_ptr< MetricData > > EmberForge::PerformanceMonitor::GetAllMetrics ( ) const

Definition at line 253 of file PerformanceMonitor.cpp.

◆ GetCPUUsage()

float EmberForge::PerformanceMonitor::GetCPUUsage ( ) const
inline

Definition at line 52 of file PerformanceMonitor.h.

◆ GetCurrentFPS()

float EmberForge::PerformanceMonitor::GetCurrentFPS ( ) const
inline

Definition at line 54 of file PerformanceMonitor.h.

◆ GetInstance()

PerformanceMonitor & EmberForge::PerformanceMonitor::GetInstance ( )
static

Definition at line 279 of file PerformanceMonitor.cpp.

◆ GetMemoryUsage()

float EmberForge::PerformanceMonitor::GetMemoryUsage ( ) const
inline

Definition at line 53 of file PerformanceMonitor.h.

◆ GetMetric()

std::shared_ptr< MetricData > EmberForge::PerformanceMonitor::GetMetric ( const std::string & name) const

Definition at line 233 of file PerformanceMonitor.cpp.

◆ InitializeBuiltInMetrics()

void EmberForge::PerformanceMonitor::InitializeBuiltInMetrics ( )
private

Definition at line 81 of file PerformanceMonitor.cpp.

◆ IsEnabled()

bool EmberForge::PerformanceMonitor::IsEnabled ( ) const
inline

Definition at line 62 of file PerformanceMonitor.h.

◆ ReadCPUUsage()

float EmberForge::PerformanceMonitor::ReadCPUUsage ( )
private

Definition at line 139 of file PerformanceMonitor.cpp.

◆ ReadMemoryUsage()

float EmberForge::PerformanceMonitor::ReadMemoryUsage ( )
private

Definition at line 181 of file PerformanceMonitor.cpp.

◆ RecordMetric()

void EmberForge::PerformanceMonitor::RecordMetric ( const std::string & name,
float value,
const std::string & unit = "" )

Definition at line 208 of file PerformanceMonitor.cpp.

◆ RecordTime()

void EmberForge::PerformanceMonitor::RecordTime ( const std::string & name,
double milliseconds )

Definition at line 229 of file PerformanceMonitor.cpp.

◆ SetEnabled()

void EmberForge::PerformanceMonitor::SetEnabled ( bool enabled)
inline

Definition at line 61 of file PerformanceMonitor.h.

◆ UpdateFPS()

void EmberForge::PerformanceMonitor::UpdateFPS ( )
private

Definition at line 120 of file PerformanceMonitor.cpp.

◆ UpdateSystemMetrics()

void EmberForge::PerformanceMonitor::UpdateSystemMetrics ( )

Definition at line 131 of file PerformanceMonitor.cpp.

Member Data Documentation

◆ m_cpuMetric

std::shared_ptr<MetricData> EmberForge::PerformanceMonitor::m_cpuMetric
private

Definition at line 77 of file PerformanceMonitor.h.

◆ m_cpuUsage

float EmberForge::PerformanceMonitor::m_cpuUsage
private

Definition at line 89 of file PerformanceMonitor.h.

◆ m_currentFPS

float EmberForge::PerformanceMonitor::m_currentFPS
private

Definition at line 91 of file PerformanceMonitor.h.

◆ m_customMetrics

std::map<std::string, std::shared_ptr<MetricData> > EmberForge::PerformanceMonitor::m_customMetrics
private

Definition at line 81 of file PerformanceMonitor.h.

◆ m_enabled

bool EmberForge::PerformanceMonitor::m_enabled
private

Definition at line 94 of file PerformanceMonitor.h.

◆ m_fpsMetric

std::shared_ptr<MetricData> EmberForge::PerformanceMonitor::m_fpsMetric
private

Definition at line 76 of file PerformanceMonitor.h.

◆ m_frameActive

bool EmberForge::PerformanceMonitor::m_frameActive
private

Definition at line 95 of file PerformanceMonitor.h.

◆ m_frameStart

std::chrono::high_resolution_clock::time_point EmberForge::PerformanceMonitor::m_frameStart
private

Definition at line 84 of file PerformanceMonitor.h.

◆ m_frameTimeMetric

std::shared_ptr<MetricData> EmberForge::PerformanceMonitor::m_frameTimeMetric
private

Definition at line 75 of file PerformanceMonitor.h.

◆ m_frameTimes

std::deque<float> EmberForge::PerformanceMonitor::m_frameTimes
private

Definition at line 86 of file PerformanceMonitor.h.

◆ m_lastFrameTime

std::chrono::high_resolution_clock::time_point EmberForge::PerformanceMonitor::m_lastFrameTime
private

Definition at line 85 of file PerformanceMonitor.h.

◆ m_memoryMetric

std::shared_ptr<MetricData> EmberForge::PerformanceMonitor::m_memoryMetric
private

Definition at line 78 of file PerformanceMonitor.h.

◆ m_memoryUsageMB

float EmberForge::PerformanceMonitor::m_memoryUsageMB
private

Definition at line 90 of file PerformanceMonitor.h.


The documentation for this class was generated from the following files: