You.i Engine
YiProfiler.h
Go to the documentation of this file.
1 // © You i Labs Inc. 2000-2017. All rights reserved.
2 #ifndef _YI_PROFILER_H_
3 #define _YI_PROFILER_H_
4 
5 #include "framework/YiPredef.h"
6 #include "thread/YiSpinLock.h"
8 #include "utility/YiString.h"
9 
10 
16 
30 {
31 public:
38  };
39 
43  CYIProfiler(bool bThreadSafe = false, uint32_t uMaxProfiles = 20);
44  ~CYIProfiler();
45 
49  void ResetProfiles(void);
50 
56  void StartProfile(uint32_t uIndex);
57 
63  void StopProfile(uint32_t uIndex);
64 
70  bool AddProfile(uint32_t uIndex, const CYIString &rName);
71 
77  CYIProfileData *GetProfileData(uint32_t uIndex) const;
78 
82  void SetMaximumProfiles(uint32_t uMaxProfiles);
83 
87  uint32_t GetMaximumProfiles() const;
88 
93 
97  CYIString Report(const std::vector<uint32_t> uIndexes, REPORT_FORMAT eFormat = PLAIN_TEXT, CYIProfileData::ACCURACY eAccuracy = CYIProfileData::MILLISECONDS) const;
98 
99 private:
100  std::vector<CYIProfileData*> m_profileData;
101  std::vector<CYISpinLock*> m_spinLocks;
102 
103  bool m_bThreadSafe;
104 
105 };
106 
109 #endif // _YI_PROFILER_H_
void StopProfile(uint32_t uIndex)
CYIProfileData * GetProfileData(uint32_t uIndex) const
ACCURACY
Definition: YiProfileData.h:37
Definition: YiProfiler.h:37
Container class for Unicode strings. Conceptually, a CYIString object is a sequence of Unicode charac...
Definition: YiString.h:35
uint32_t GetMaximumProfiles() const
CYIString Report(REPORT_FORMAT eFormat=PLAIN_TEXT, CYIProfileData::ACCURACY eAccuracy=CYIProfileData::MILLISECONDS) const
void ResetProfiles(void)
void StartProfile(uint32_t uIndex)
REPORT_FORMAT
Definition: YiProfiler.h:35
This class is used as a profiling or a measurement tool for recurring activities. By marking the begi...
Definition: YiProfileData.h:33
bool AddProfile(uint32_t uIndex, const CYIString &rName)
Definition: YiProfiler.h:36
– CYIProfiler
Definition: YiProfiler.h:29
Definition: YiProfileData.h:39
void SetMaximumProfiles(uint32_t uMaxProfiles)
CYIProfiler(bool bThreadSafe=false, uint32_t uMaxProfiles=20)