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< MetricDataGetMetric (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 PerformanceMonitorGetInstance ()

Private Member Functions

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

Private Attributes

std::shared_ptr< MetricDatam_frameTimeMetric
std::shared_ptr< MetricDatam_fpsMetric
std::shared_ptr< MetricDatam_cpuMetric
std::shared_ptr< MetricDatam_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: