22 #ifndef INCLUDED_PROFILE
23 #define INCLUDED_PROFILE
32 #define PROFILE_AMORTIZE_FRAMES 30
33 #define PROFILE_AMORTIZE_TURNS 1
127 void Start(
const char* name );
147 #define g_Profiler CProfileManager::GetSingleton()
195 #define PROFILE(name) CProfileSample __profile(name)
197 #define PROFILE_START(name) { CProfileSample __profile(name)
198 #define PROFILE_END(name) }
201 #define PROFILE3(name) PROFILE(name); PROFILE2(name)
204 #define PROFILE3_GPU(name) PROFILE(name); PROFILE2(name); PROFILE2_GPU(name)
206 #endif // INCLUDED_PROFILE
RingBuf< double, PROFILE_AMORTIZE_TURNS > time_per_turn
const CProfileNode * GetChild(const char *name) const
RingBuf< int, PROFILE_AMORTIZE_TURNS > calls_per_turn
CProfileSample(const char *name)
double GetFrameCalls() const
const char * GetName() const
const std::vector< CProfileNode * > * GetScriptChildren() const
const CProfileNode * GetCurrent()
RingBuf< int, PROFILE_AMORTIZE_FRAMES > calls_per_frame
void StartScript(const char *name)
std::vector< CProfileNode * > children
const CProfileNode * GetRoot()
long mallocs_turn_current
CProfileNode * GetParent() const
Class CProfileNodeTable: Implement ProfileViewer's AbstractProfileTable interface in order to display...
NONCOPYABLE(CProfileNode)
CProfileNodeTable * display_table
#define ENSURE(expr)
ensure the expression <expr> evaluates to non-zero.
CProfileSampleScript(const char *name)
std::vector< CProfileNode * >::const_iterator const_profile_iterator
void PerformStructuralReset()
bool needs_structural_reset
New profiler (complementing the older CProfileManager)
static bool IsInitialised()
double GetFrameMallocs() const
const std::vector< CProfileNode * > * GetChildren() const
long mallocs_frame_current
const CProfileNode * GetScriptChild(const char *name) const
double GetTurnTime() const
double time_frame_current
RingBuf< double, PROFILE_AMORTIZE_FRAMES > time_per_frame
CProfileNode(const char *name, CProfileNode *parent)
double GetFrameTime() const
bool IsMainThread()
Returns whether the current thread is the 'main' thread (i.e.
RingBuf< long, PROFILE_AMORTIZE_FRAMES > mallocs_per_frame
RingBuf< long, PROFILE_AMORTIZE_TURNS > mallocs_per_turn
std::vector< CProfileNode * > script_children
double GetTurnMallocs() const
std::vector< CProfileNode * >::iterator profile_iterator
double GetTurnCalls() const
void Start(const char *name)