diff options
author | Dave Parks <davep@lindenlab.com> | 2012-06-28 13:50:35 -0500 |
---|---|---|
committer | Dave Parks <davep@lindenlab.com> | 2012-06-28 13:50:35 -0500 |
commit | db5d1b851a0d808dc1e8b0896fad734c2c54a03f (patch) | |
tree | ebe50ddb5e1aa700d54f50bbc1ab4b435462b85e /indra/newview/llviewerstats.h | |
parent | 1d8f117069945499ac297ef13eb6a916a2b96d72 (diff) | |
parent | ed72fd0ae98671f1cfce3c975b93e1f760fc40f0 (diff) |
merge
Diffstat (limited to 'indra/newview/llviewerstats.h')
-rw-r--r-- | indra/newview/llviewerstats.h | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/indra/newview/llviewerstats.h b/indra/newview/llviewerstats.h index f91a1241fe..750d963f69 100644 --- a/indra/newview/llviewerstats.h +++ b/indra/newview/llviewerstats.h @@ -244,7 +244,7 @@ public: inline F32 getStdDev() const { const F32 mean = getMean(); - return (mCount == 0) ? 0.f : sqrt( mSumOfSquares/mCount - (mean * mean) ); + return (mCount < 2) ? 0.f : sqrt(llmax(0.f,mSumOfSquares/mCount - (mean * mean))); } inline U32 getCount() const @@ -274,7 +274,28 @@ public: }; StatsAccumulator mAgentPositionSnaps; - + + // Phase tracking (originally put in for avatar rezzing), tracking + // progress of active/completed phases for activities like outfit changing. + typedef std::map<std::string,LLFrameTimer> phase_map_t; + typedef std::map<std::string,StatsAccumulator> phase_stats_t; + class PhaseMap + { + private: + phase_map_t mPhaseMap; + static phase_stats_t sStats; + public: + PhaseMap(); + LLFrameTimer& getPhaseTimer(const std::string& phase_name); + void startPhase(const std::string& phase_name); + void stopPhase(const std::string& phase_name); + void stopAllPhases(); + void clearPhases(); + LLSD dumpPhases(); + static StatsAccumulator& getPhaseStats(const std::string& phase_name); + static void recordPhaseStat(const std::string& phase_name, F32 value); + }; + private: F64 mStats[ST_COUNT]; |