summaryrefslogtreecommitdiff
path: root/indra/llcommon/llfasttimer.h
diff options
context:
space:
mode:
authorrichard <none@none>2010-01-11 12:05:13 -0800
committerrichard <none@none>2010-01-11 12:05:13 -0800
commitdaa4965fe053dbd1af1f9665b29a4a10ac31cfea (patch)
tree22ef78be6c8da9950e0695a9291e877913fafc45 /indra/llcommon/llfasttimer.h
parenteb228dcf3af8db371fd452e595396d8694c869fe (diff)
renamed LLFastTimerUtil to LLFastTimer
Diffstat (limited to 'indra/llcommon/llfasttimer.h')
-rw-r--r--indra/llcommon/llfasttimer.h136
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