summaryrefslogtreecommitdiff
path: root/indra/llcommon
diff options
context:
space:
mode:
authorRichard Linden <none@none>2013-04-10 21:51:56 -0700
committerRichard Linden <none@none>2013-04-10 21:51:56 -0700
commit07ca6fce7c9cffe1b8f215f25bb826fedf57a5b7 (patch)
treecf59632a10c72da7a377b461a414c90069f0f746 /indra/llcommon
parent164273afbb8131c5961266b7cb2c1e1d7973ea0b (diff)
SH-3931 WIP Interesting: Add graphs to visualize scene load metrics
removed PeriodicRecording::getTotalRecording as it was showing up at the top on the profiler renamed getPrevRecordingPeriod, etc. to getPrevRecording
Diffstat (limited to 'indra/llcommon')
-rw-r--r--indra/llcommon/llfasttimer.cpp13
-rw-r--r--indra/llcommon/lltracerecording.cpp55
-rw-r--r--indra/llcommon/lltracerecording.h21
3 files changed, 30 insertions, 59 deletions
diff --git a/indra/llcommon/llfasttimer.cpp b/indra/llcommon/llfasttimer.cpp
index fbffe133f1..a7adcc6729 100644
--- a/indra/llcommon/llfasttimer.cpp
+++ b/indra/llcommon/llfasttimer.cpp
@@ -176,11 +176,14 @@ TimeBlockTreeNode& TimeBlock::getTreeNode() const
TimeBlockTreeNode* nodep = LLTrace::get_thread_recorder()->getTimeBlockTreeNode(getIndex());
llassert(nodep);
return *nodep;
- }
+}
+
+static LLFastTimer::DeclareTimer FTM_PROCESS_TIMES("Process FastTimer Times");
//static
void TimeBlock::processTimes()
{
+ LLFastTimer _(FTM_PROCESS_TIMES);
get_clock_count(); // good place to calculate clock frequency
U64 cur_time = getCPUClockCount64();
@@ -329,12 +332,12 @@ void TimeBlock::logStats()
{
TimeBlock& timer = *it;
LLTrace::PeriodicRecording& frame_recording = LLTrace::get_frame_recording();
- sd[timer.getName()]["Time"] = (LLSD::Real) (frame_recording.getLastRecordingPeriod().getSum(timer).value());
- sd[timer.getName()]["Calls"] = (LLSD::Integer) (frame_recording.getLastRecordingPeriod().getSum(timer.callCount()));
+ sd[timer.getName()]["Time"] = (LLSD::Real) (frame_recording.getLastRecording().getSum(timer).value());
+ sd[timer.getName()]["Calls"] = (LLSD::Integer) (frame_recording.getLastRecording().getSum(timer.callCount()));
// computing total time here because getting the root timer's getCountHistory
// doesn't work correctly on the first frame
- total_time += frame_recording.getLastRecordingPeriod().getSum(timer);
+ total_time += frame_recording.getLastRecording().getSum(timer);
}
}
@@ -353,7 +356,7 @@ void TimeBlock::logStats()
void TimeBlock::dumpCurTimes()
{
LLTrace::PeriodicRecording& frame_recording = LLTrace::get_frame_recording();
- LLTrace::Recording& last_frame_recording = frame_recording.getLastRecordingPeriod();
+ LLTrace::Recording& last_frame_recording = frame_recording.getLastRecording();
// walk over timers in depth order and output timings
for(timer_tree_dfs_iterator_t it = begin_timer_tree(TimeBlock::getRootTimeBlock());
diff --git a/indra/llcommon/lltracerecording.cpp b/indra/llcommon/lltracerecording.cpp
index f78b7942a7..21156b4d61 100644
--- a/indra/llcommon/lltracerecording.cpp
+++ b/indra/llcommon/lltracerecording.cpp
@@ -360,8 +360,7 @@ U32 Recording::getSampleCount( const TraceType<MeasurementAccumulator<S64> >& st
PeriodicRecording::PeriodicRecording( U32 num_periods, EPlayState state)
: mAutoResize(num_periods == 0),
- mCurPeriod(0),
- mTotalValid(false)
+ mCurPeriod(0)
{
if (num_periods)
{
@@ -373,7 +372,7 @@ PeriodicRecording::PeriodicRecording( U32 num_periods, EPlayState state)
void PeriodicRecording::nextPeriod()
{
EPlayState play_state = getPlayState();
- Recording& old_recording = getCurRecordingPeriod();
+ Recording& old_recording = getCurRecording();
if (mAutoResize)
{
mRecordingPeriods.push_back(Recording());
@@ -382,87 +381,59 @@ void PeriodicRecording::nextPeriod()
mCurPeriod = (num_periods > 0)
? (mCurPeriod + 1) % num_periods
: mCurPeriod + 1;
- old_recording.splitTo(getCurRecordingPeriod());
+ old_recording.splitTo(getCurRecording());
switch(play_state)
{
case STOPPED:
- getCurRecordingPeriod().stop();
+ getCurRecording().stop();
break;
case PAUSED:
- getCurRecordingPeriod().pause();
+ getCurRecording().pause();
break;
case STARTED:
break;
}
- // new period, need to recalculate total
- mTotalValid = false;
-}
-
-Recording& PeriodicRecording::getTotalRecording()
-{
- if (!mTotalValid)
- {
- mTotalRecording.reset();
- U32 num_periods = mRecordingPeriods.size();
-
- if (num_periods)
- {
- for (S32 i = mCurPeriod + 1; i < mCurPeriod + num_periods; i++)
- {
- mTotalRecording.appendRecording(mRecordingPeriods[i % num_periods]);
- }
- }
- else
- {
- for (S32 i = 0; i < mCurPeriod; i++)
- {
- mTotalRecording.appendRecording(mRecordingPeriods[i]);
- }
- }
- }
- mTotalValid = true;
- return mTotalRecording;
}
void PeriodicRecording::start()
{
- getCurRecordingPeriod().start();
+ getCurRecording().start();
}
void PeriodicRecording::stop()
{
- getCurRecordingPeriod().stop();
+ getCurRecording().stop();
}
void PeriodicRecording::pause()
{
- getCurRecordingPeriod().pause();
+ getCurRecording().pause();
}
void PeriodicRecording::resume()
{
- getCurRecordingPeriod().resume();
+ getCurRecording().resume();
}
void PeriodicRecording::restart()
{
- getCurRecordingPeriod().restart();
+ getCurRecording().restart();
}
void PeriodicRecording::reset()
{
- getCurRecordingPeriod().reset();
+ getCurRecording().reset();
}
void PeriodicRecording::splitTo(PeriodicRecording& other)
{
- getCurRecordingPeriod().splitTo(other.getCurRecordingPeriod());
+ getCurRecording().splitTo(other.getCurRecording());
}
void PeriodicRecording::splitFrom(PeriodicRecording& other)
{
- getCurRecordingPeriod().splitFrom(other.getCurRecordingPeriod());
+ getCurRecording().splitFrom(other.getCurRecording());
}
diff --git a/indra/llcommon/lltracerecording.h b/indra/llcommon/lltracerecording.h
index b96d0666e5..0a3e9e5a0b 100644
--- a/indra/llcommon/lltracerecording.h
+++ b/indra/llcommon/lltracerecording.h
@@ -254,50 +254,48 @@ namespace LLTrace
void nextPeriod();
U32 getNumPeriods() { return mRecordingPeriods.size(); }
- Recording& getLastRecordingPeriod()
+ Recording& getLastRecording()
{
U32 num_periods = mRecordingPeriods.size();
return mRecordingPeriods[(mCurPeriod + num_periods - 1) % num_periods];
}
- const Recording& getLastRecordingPeriod() const
+ const Recording& getLastRecording() const
{
- return getPrevRecordingPeriod(1);
+ return getPrevRecording(1);
}
- Recording& getCurRecordingPeriod()
+ Recording& getCurRecording()
{
return mRecordingPeriods[mCurPeriod];
}
- const Recording& getCurRecordingPeriod() const
+ const Recording& getCurRecording() const
{
return mRecordingPeriods[mCurPeriod];
}
- Recording& getPrevRecordingPeriod(U32 offset)
+ Recording& getPrevRecording(U32 offset)
{
U32 num_periods = mRecordingPeriods.size();
offset = llclamp(offset, 0u, num_periods - 1);
return mRecordingPeriods[(mCurPeriod + num_periods - offset) % num_periods];
}
- const Recording& getPrevRecordingPeriod(U32 offset) const
+ const Recording& getPrevRecording(U32 offset) const
{
U32 num_periods = mRecordingPeriods.size();
offset = llclamp(offset, 0u, num_periods - 1);
return mRecordingPeriods[(mCurPeriod + num_periods - offset) % num_periods];
}
- Recording snapshotCurRecordingPeriod() const
+ Recording snapshotCurRecording() const
{
- Recording recording_copy(getCurRecordingPeriod());
+ Recording recording_copy(getCurRecording());
recording_copy.stop();
return recording_copy;
}
- Recording& getTotalRecording();
-
template <typename T>
typename T::value_t getPeriodMin(const TraceType<T>& stat) const
{
@@ -391,7 +389,6 @@ namespace LLTrace
private:
std::vector<Recording> mRecordingPeriods;
Recording mTotalRecording;
- bool mTotalValid;
const bool mAutoResize;
S32 mCurPeriod;
};