2 #ifndef _YI_PROFILE_DATA_H_ 3 #define _YI_PROFILE_DATA_H_ 8 #include <glm/gtc/constants.hpp> 9 #include <glm/gtc/epsilon.hpp> 21 static const uint32_t gHistoryLen = 1000;
53 void Init(uint32_t uWindow);
55 void Add(uint64_t uData);
68 bool m_bIsFirstDataSkipped;
97 uint64_t
Total()
const;
126 uint64_t m_uHistory[gHistoryLen];
127 uint32_t m_uWriteIdx;
128 uint32_t m_uDataSampleCnt;
130 uint64_t m_uBeginTime;
133 uint64_t m_uDataTotal;
149 return (m_uDataSampleCnt > 1) ? m_uMin : 0;
154 return (m_uDataSampleCnt > 1) ? m_uMax : 0;
159 return (m_uDataSampleCnt > 1) ? m_nAvgSample.Avg() : 0.0f;
164 return (m_uDataSampleCnt > 1) ? m_uDataTotal : 0;
173 return (m_uDataSampleCnt > 1) ? (m_uDataSampleCnt-1) : 0;
178 float period = m_nAvgPeriod.Avg();
180 return (!glm::epsilonEqual(period, 0.0f, glm::epsilon<float>())) ?
Avg() * 100 / period : 0;
184 return (
float)m_nAvgPeriod.Avg();
187 #endif // _YI_PROFILE_DATA_H_ Definition: YiProfileData.h:40
#define YI_DISALLOW_COPY_AND_ASSIGN(TypeName)
Delete the copy constructor and assignment operator (and consequently the move constructor as well) ...
Definition: YiPredef.h:114
ACCURACY
Definition: YiProfileData.h:37
void MarkDelta(uint64_t uDelta)
Container class for Unicode strings. Conceptually, a CYIString object is a sequence of Unicode charac...
Definition: YiString.h:35
CYIString Report(ACCURACY eAccuracy=MILLISECONDS) const
uint32_t GetSampleCnt() const
Definition: YiProfileData.h:171
void ConfigureAvgWindow(uint32_t uWindow)
uint64_t Total() const
Definition: YiProfileData.h:162
float CalculateFPS() const
float Avg() const
Definition: YiProfileData.h:157
float AvgDutyCycle() const
Definition: YiProfileData.h:176
Definition: YiProfileData.h:38
uint64_t Max() const
Definition: YiProfileData.h:152
void Init(uint32_t uWindow)
CYIString ReportXML(ACCURACY eAccuracy=MILLISECONDS) const
uint64_t GetLastSample() const
Definition: YiProfileData.h:167
Definition: YiProfileData.h:43
This class is used as a profiling or a measurement tool for recurring activities. By marking the begi...
Definition: YiProfileData.h:33
float AvgPeriod() const
Definition: YiProfileData.h:182
Definition: YiProfileData.h:39
uint64_t Min() const
Definition: YiProfileData.h:147