diff options
author | richard <none@none> | 2010-01-11 12:05:13 -0800 |
---|---|---|
committer | richard <none@none> | 2010-01-11 12:05:13 -0800 |
commit | daa4965fe053dbd1af1f9665b29a4a10ac31cfea (patch) | |
tree | 22ef78be6c8da9950e0695a9291e877913fafc45 /indra/llcommon/llfasttimer.h | |
parent | eb228dcf3af8db371fd452e595396d8694c869fe (diff) |
renamed LLFastTimerUtil to LLFastTimer
Diffstat (limited to 'indra/llcommon/llfasttimer.h')
-rw-r--r-- | indra/llcommon/llfasttimer.h | 136 |
1 files changed, 60 insertions, 76 deletions
diff --git a/indra/llcommon/llfasttimer.h b/indra/llcommon/llfasttimer.h index ff96bd7abc..645bbb88ff 100644 --- a/indra/llcommon/llfasttimer.h +++ b/indra/llcommon/llfasttimer.h @@ -97,8 +97,7 @@ class LLMutex; #include <queue> #include "llsd.h" - -class LL_COMMON_API LLFastTimerUtil +class LL_COMMON_API LLFastTimer { public: @@ -153,9 +152,8 @@ public: FrameState& getFrameState() const; - private: - friend class LLFastTimerUtil; + friend class LLFastTimer; friend class NamedTimerFactory; // @@ -172,7 +170,6 @@ public: static void buildHierarchy(); static void resetFrame(); static void reset(); - // // members @@ -194,7 +191,6 @@ public: std::vector<NamedTimer*> mChildren; bool mCollapsed; // don't show children bool mNeedsSorting; // sort children whenever child added - }; // used to statically declare a new named timer @@ -213,77 +209,17 @@ public: FrameState* mFrameState; }; - -public: - static LLMutex* sLogLock; - static std::queue<LLSD> sLogQueue; - static BOOL sLog; - static BOOL sMetricLog; - static bool sPauseHistory; - static bool sResetHistory; - static U64 sTimerCycles; - static U32 sTimerCalls; - - typedef std::vector<FrameState> info_list_t; - static info_list_t& getFrameStateList(); - - - // call this once a frame to reset timers - static void nextFrame(); - - // dumps current cumulative frame stats to log - // call nextFrame() to reset timers - static void dumpCurTimes(); - - // call this to reset timer hierarchy, averages, etc. - static void reset(); - - static U64 countsPerSecond(); - static S32 getLastFrameIndex() { return sLastFrameIndex; } - static S32 getCurFrameIndex() { return sCurFrameIndex; } - - static void writeLog(std::ostream& os); - static const NamedTimer* getTimerByName(const std::string& name); - - struct CurTimerData - { - LLFastTimer* mCurTimer; - FrameState* mFrameState; - U32 mChildTime; - }; - static CurTimerData sCurTimerData; - -private: - static S32 sCurFrameIndex; - static S32 sLastFrameIndex; - static U64 sLastFrameTime; - static info_list_t* sTimerInfos; -}; - -class LLFastTimer -{ - friend LLFastTimerUtil::NamedTimer; public: - LLFastTimer(LLFastTimerUtil::FrameState* state) - : mFrameState(state) - { - U32 start_time = get_cpu_clock_count_32(); - mStartTime = start_time; - mFrameState->mActiveCount++; - LLFastTimerUtil::sCurTimerData.mCurTimer = this; - LLFastTimerUtil::sCurTimerData.mFrameState = mFrameState; - LLFastTimerUtil::sCurTimerData.mChildTime = 0; - mLastTimerData = LLFastTimerUtil::sCurTimerData; - } + LLFastTimer(LLFastTimer::FrameState* state); - LL_INLINE LLFastTimer(LLFastTimerUtil::DeclareTimer& timer) + LL_INLINE LLFastTimer(LLFastTimer::DeclareTimer& timer) : mFrameState(timer.mFrameState) { #if TIME_FAST_TIMERS U64 timer_start = get_cpu_clock_count_64(); #endif #if FAST_TIMER_ON - LLFastTimerUtil::FrameState* frame_state = mFrameState; + LLFastTimer::FrameState* frame_state = mFrameState; mStartTime = get_cpu_clock_count_32(); frame_state->mActiveCount++; @@ -291,7 +227,7 @@ public: // keep current parent as long as it is active when we are frame_state->mMoveUpTree |= (frame_state->mParent->mActiveCount == 0); - LLFastTimerUtil::CurTimerData* cur_timer_data = &LLFastTimerUtil::sCurTimerData; + LLFastTimer::CurTimerData* cur_timer_data = &LLFastTimer::sCurTimerData; mLastTimerData = *cur_timer_data; cur_timer_data->mCurTimer = this; cur_timer_data->mFrameState = frame_state; @@ -309,10 +245,10 @@ public: U64 timer_start = get_cpu_clock_count_64(); #endif #if FAST_TIMER_ON - LLFastTimerUtil::FrameState* frame_state = mFrameState; + LLFastTimer::FrameState* frame_state = mFrameState; U32 total_time = get_cpu_clock_count_32() - mStartTime; - frame_state->mSelfTimeCounter += total_time - LLFastTimerUtil::sCurTimerData.mChildTime; + frame_state->mSelfTimeCounter += total_time - LLFastTimer::sCurTimerData.mChildTime; frame_state->mActiveCount--; // store last caller to bootstrap tree creation @@ -322,7 +258,7 @@ public: // we are only tracking self time, so subtract our total time delta from parents mLastTimerData.mChildTime += total_time; - LLFastTimerUtil::sCurTimerData = mLastTimerData; + LLFastTimer::sCurTimerData = mLastTimerData; #endif #if TIME_FAST_TIMERS U64 timer_end = get_cpu_clock_count_64(); @@ -330,10 +266,58 @@ public: sTimerCalls++; #endif } + +public: + static LLMutex* sLogLock; + static std::queue<LLSD> sLogQueue; + static BOOL sLog; + static BOOL sMetricLog; + static bool sPauseHistory; + static bool sResetHistory; + static U64 sTimerCycles; + static U32 sTimerCalls; + + typedef std::vector<FrameState> info_list_t; + static info_list_t& getFrameStateList(); + + + // call this once a frame to reset timers + static void nextFrame(); + + // dumps current cumulative frame stats to log + // call nextFrame() to reset timers + static void dumpCurTimes(); + + // call this to reset timer hierarchy, averages, etc. + static void reset(); + + static U64 countsPerSecond(); + static S32 getLastFrameIndex() { return sLastFrameIndex; } + static S32 getCurFrameIndex() { return sCurFrameIndex; } + + static void writeLog(std::ostream& os); + static const NamedTimer* getTimerByName(const std::string& name); + + struct CurTimerData + { + LLFastTimer* mCurTimer; + FrameState* mFrameState; + U32 mChildTime; + }; + static CurTimerData sCurTimerData; + private: - U32 mStartTime; - LLFastTimerUtil::FrameState* mFrameState; - LLFastTimerUtil::CurTimerData mLastTimerData; + static S32 sCurFrameIndex; + static S32 sLastFrameIndex; + static U64 sLastFrameTime; + static info_list_t* sTimerInfos; + + U32 mStartTime; + LLFastTimer::FrameState* mFrameState; + LLFastTimer::CurTimerData mLastTimerData; + }; +typedef class LLFastTimer LLFastTimer; + #endif // LL_LLFASTTIMER_H |