summaryrefslogtreecommitdiff
path: root/indra/newview/llviewerassetstats.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llviewerassetstats.cpp')
-rw-r--r--indra/newview/llviewerassetstats.cpp346
1 files changed, 173 insertions, 173 deletions
diff --git a/indra/newview/llviewerassetstats.cpp b/indra/newview/llviewerassetstats.cpp
index 14e05fd440..011b8afd73 100644
--- a/indra/newview/llviewerassetstats.cpp
+++ b/indra/newview/llviewerassetstats.cpp
@@ -1,25 +1,25 @@
-/**
+/**
* @file llviewerassetstats.cpp
- * @brief
+ * @brief
*
* $LicenseInfo:firstyear=2010&license=viewerlgpl$
* Second Life Viewer Source Code
* Copyright (C) 2010, Linden Research, Inc.
- *
+ *
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation;
* version 2.1 of the License only.
- *
+ *
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
- *
+ *
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- *
+ *
* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -123,17 +123,17 @@ public:
namespace LLViewerAssetStatsFF
{
- static EViewerAssetCategories asset_type_to_category(const LLViewerAssetType::EType at, bool with_http, bool is_temp)
- {
- // For statistical purposes, we divide GETs into several
- // populations of asset fetches:
- // - textures which are de-prioritized in the asset system
- // - wearables (clothing, bodyparts) which directly affect
- // user experiences when they log in
- // - sounds
- // - gestures, including animations
- // - everything else.
- //
+ static EViewerAssetCategories asset_type_to_category(const LLViewerAssetType::EType at, bool with_http, bool is_temp)
+ {
+ // For statistical purposes, we divide GETs into several
+ // populations of asset fetches:
+ // - textures which are de-prioritized in the asset system
+ // - wearables (clothing, bodyparts) which directly affect
+ // user experiences when they log in
+ // - sounds
+ // - gestures, including animations
+ // - everything else.
+ //
EViewerAssetCategories ret;
switch (at)
@@ -163,13 +163,13 @@ namespace LLViewerAssetStatsFF
ret = with_http ? EVACOtherHTTPGet : EVACOtherUDPGet;
break;
}
- return ret;
- }
+ return ret;
+ }
- static LLTrace::DCCountStatHandle<> sEnqueued[EVACCount];
- static LLTrace::DCCountStatHandle<> sDequeued[EVACCount];
- static LLTrace::DCEventStatHandle<> sBytesFetched[EVACCount];
- static LLTrace::DCEventStatHandle<F64Seconds > sResponse[EVACCount];
+ static LLTrace::DCCountStatHandle<> sEnqueued[EVACCount];
+ static LLTrace::DCCountStatHandle<> sDequeued[EVACCount];
+ static LLTrace::DCEventStatHandle<> sBytesFetched[EVACCount];
+ static LLTrace::DCEventStatHandle<F64Seconds > sResponse[EVACCount];
}
// ------------------------------------------------------
@@ -181,99 +181,99 @@ LLViewerAssetStats * gViewerAssetStats(0);
// LLViewerAssetStats class definition
// ------------------------------------------------------
LLViewerAssetStats::LLViewerAssetStats()
-: mRegionHandle(U64(0)),
- mCurRecording(NULL)
+: mRegionHandle(U64(0)),
+ mCurRecording(NULL)
{
- start();
+ start();
}
LLViewerAssetStats::LLViewerAssetStats(const LLViewerAssetStats & src)
-: mRegionHandle(src.mRegionHandle)
+: mRegionHandle(src.mRegionHandle)
{
- mRegionRecordings = src.mRegionRecordings;
-
- mCurRecording = &mRegionRecordings[mRegionHandle];
-
- // assume this is being passed to another thread, so make sure we have unique copies of recording data
- for (PerRegionRecordingContainer::iterator it = mRegionRecordings.begin(), end_it = mRegionRecordings.end();
- it != end_it;
- ++it)
- {
- it->second.stop();
- it->second.makeUnique();
- }
-
- LLStopWatchControlsMixin<LLViewerAssetStats>::setPlayState(src.getPlayState());
+ mRegionRecordings = src.mRegionRecordings;
+
+ mCurRecording = &mRegionRecordings[mRegionHandle];
+
+ // assume this is being passed to another thread, so make sure we have unique copies of recording data
+ for (PerRegionRecordingContainer::iterator it = mRegionRecordings.begin(), end_it = mRegionRecordings.end();
+ it != end_it;
+ ++it)
+ {
+ it->second.stop();
+ it->second.makeUnique();
+ }
+
+ LLStopWatchControlsMixin<LLViewerAssetStats>::setPlayState(src.getPlayState());
}
void LLViewerAssetStats::handleStart()
{
- if (mCurRecording)
- {
- mCurRecording->start();
- }
+ if (mCurRecording)
+ {
+ mCurRecording->start();
+ }
}
void LLViewerAssetStats::handleStop()
{
- if (mCurRecording)
- {
- mCurRecording->stop();
- }
+ if (mCurRecording)
+ {
+ mCurRecording->stop();
+ }
}
void LLViewerAssetStats::handleReset()
{
- reset();
+ reset();
}
void LLViewerAssetStats::reset()
{
- // Empty the map of all region stats
- mRegionRecordings.clear();
-
- // initialize new recording for current region
- if (mRegionHandle)
- {
- mCurRecording = &mRegionRecordings[mRegionHandle];
- mCurRecording->setPlayState(getPlayState());
- }
+ // Empty the map of all region stats
+ mRegionRecordings.clear();
+
+ // initialize new recording for current region
+ if (mRegionHandle)
+ {
+ mCurRecording = &mRegionRecordings[mRegionHandle];
+ mCurRecording->setPlayState(getPlayState());
+ }
}
void LLViewerAssetStats::setRegion(region_handle_t region_handle)
{
- if (region_handle == mRegionHandle)
- {
- // Already active, ignore.
- return;
- }
-
- if (mCurRecording)
- {
- mCurRecording->pause();
- }
- if (region_handle)
- {
- mCurRecording = &mRegionRecordings[region_handle];
- mCurRecording->setPlayState(getPlayState());
- }
-
- mRegionHandle = region_handle;
+ if (region_handle == mRegionHandle)
+ {
+ // Already active, ignore.
+ return;
+ }
+
+ if (mCurRecording)
+ {
+ mCurRecording->pause();
+ }
+ if (region_handle)
+ {
+ mCurRecording = &mRegionRecordings[region_handle];
+ mCurRecording->setPlayState(getPlayState());
+ }
+
+ mRegionHandle = region_handle;
}
template <typename T>
void LLViewerAssetStats::getStat(LLTrace::Recording& rec, T& req, LLViewerAssetStatsFF::EViewerAssetCategories cat, bool compact_output)
{
- using namespace LLViewerAssetStatsFF;
+ using namespace LLViewerAssetStatsFF;
if (!compact_output
- || rec.getSampleCount(sEnqueued[cat])
+ || rec.getSampleCount(sEnqueued[cat])
|| rec.getSampleCount(sDequeued[cat])
|| rec.getSampleCount(sResponse[cat]))
{
- req .enqueued(rec.getSampleCount(sEnqueued[cat]))
+ req .enqueued(rec.getSampleCount(sEnqueued[cat]))
.dequeued(rec.getSampleCount(sDequeued[cat]))
.resp_count(rec.getSampleCount(sResponse[cat]))
.resp_min(rec.getMin(sResponse[cat]).value())
@@ -285,16 +285,16 @@ void LLViewerAssetStats::getStat(LLTrace::Recording& rec, T& req, LLViewerAssetS
void LLViewerAssetStats::getStats(AssetStats& stats, bool compact_output)
{
- using namespace LLViewerAssetStatsFF;
+ using namespace LLViewerAssetStatsFF;
- stats.regions.setProvided();
-
- for (PerRegionRecordingContainer::iterator it = mRegionRecordings.begin(), end_it = mRegionRecordings.end();
- it != end_it;
- ++it)
- {
- RegionStats& r = stats.regions.add();
- LLTrace::Recording& rec = it->second;
+ stats.regions.setProvided();
+
+ for (PerRegionRecordingContainer::iterator it = mRegionRecordings.begin(), end_it = mRegionRecordings.end();
+ it != end_it;
+ ++it)
+ {
+ RegionStats& r = stats.regions.add();
+ LLTrace::Recording& rec = it->second;
getStat(rec, r.get_texture_temp_http, EVACTextureTempHTTPGet, compact_output);
getStat(rec, r.get_texture_temp_udp, EVACTextureTempUDPGet, compact_output);
@@ -310,38 +310,38 @@ void LLViewerAssetStats::getStats(AssetStats& stats, bool compact_output)
getStat(rec, r.get_landmark_udp, EVACLandmarkUDPGet, compact_output);
getStat(rec, r.get_other_http, EVACOtherHTTPGet, compact_output);
getStat(rec, r.get_other_udp, EVACOtherUDPGet, compact_output);
-
- S32 fps = (S32)rec.getLastValue(LLStatViewer::FPS_SAMPLE);
- if (!compact_output || fps != 0)
- {
- r.fps .count(fps)
- .min(rec.getMin(LLStatViewer::FPS_SAMPLE))
- .max(rec.getMax(LLStatViewer::FPS_SAMPLE))
- .mean(rec.getMean(LLStatViewer::FPS_SAMPLE));
- }
- U32 grid_x(0), grid_y(0);
- grid_from_region_handle(it->first, &grid_x, &grid_y);
- r .grid_x(grid_x)
- .grid_y(grid_y)
- .duration(F64Seconds(rec.getDuration()).value());
- }
-
- stats.duration(mCurRecording ? F64Seconds(mCurRecording->getDuration()).value() : 0.0);
+
+ S32 fps = (S32)rec.getLastValue(LLStatViewer::FPS_SAMPLE);
+ if (!compact_output || fps != 0)
+ {
+ r.fps .count(fps)
+ .min(rec.getMin(LLStatViewer::FPS_SAMPLE))
+ .max(rec.getMax(LLStatViewer::FPS_SAMPLE))
+ .mean(rec.getMean(LLStatViewer::FPS_SAMPLE));
+ }
+ U32 grid_x(0), grid_y(0);
+ grid_from_region_handle(it->first, &grid_x, &grid_y);
+ r .grid_x(grid_x)
+ .grid_y(grid_y)
+ .duration(F64Seconds(rec.getDuration()).value());
+ }
+
+ stats.duration(mCurRecording ? F64Seconds(mCurRecording->getDuration()).value() : 0.0);
}
LLSD LLViewerAssetStats::asLLSD(bool compact_output)
{
- LLParamSDParser parser;
- LLSD sd;
- AssetStats stats;
- getStats(stats, compact_output);
- LLInitParam::predicate_rule_t rule = LLInitParam::default_parse_rules();
- if (!compact_output)
- {
- rule.allow(LLInitParam::EMPTY);
- }
- parser.writeSD(sd, stats, rule);
- return sd;
+ LLParamSDParser parser;
+ LLSD sd;
+ AssetStats stats;
+ getStats(stats, compact_output);
+ LLInitParam::predicate_rule_t rule = LLInitParam::default_parse_rules();
+ if (!compact_output)
+ {
+ rule.allow(LLInitParam::EMPTY);
+ }
+ parser.writeSD(sd, stats, rule);
+ return sd;
}
// ------------------------------------------------------
@@ -352,47 +352,47 @@ namespace LLViewerAssetStatsFF
{
void set_region(LLViewerAssetStats::region_handle_t region_handle)
{
- if (! gViewerAssetStats)
- return;
+ if (! gViewerAssetStats)
+ return;
- gViewerAssetStats->setRegion(region_handle);
+ gViewerAssetStats->setRegion(region_handle);
}
void record_enqueue(LLViewerAssetType::EType at, bool with_http, bool is_temp)
{
- const EViewerAssetCategories eac(asset_type_to_category(at, with_http, is_temp));
+ const EViewerAssetCategories eac(asset_type_to_category(at, with_http, is_temp));
- add(sEnqueued[int(eac)], 1);
+ add(sEnqueued[int(eac)], 1);
}
void record_dequeue(LLViewerAssetType::EType at, bool with_http, bool is_temp)
{
- const EViewerAssetCategories eac(asset_type_to_category(at, with_http, is_temp));
+ const EViewerAssetCategories eac(asset_type_to_category(at, with_http, is_temp));
- add(sDequeued[int(eac)], 1);
+ add(sDequeued[int(eac)], 1);
}
void record_response(LLViewerAssetType::EType at, bool with_http, bool is_temp, LLViewerAssetStats::duration_t duration, F64 bytes)
{
- const EViewerAssetCategories eac(asset_type_to_category(at, with_http, is_temp));
+ const EViewerAssetCategories eac(asset_type_to_category(at, with_http, is_temp));
- record(sResponse[int(eac)], F64Seconds(duration));
- record(sBytesFetched[int(eac)], bytes);
+ record(sResponse[int(eac)], F64Seconds(duration));
+ record(sBytesFetched[int(eac)], bytes);
}
void init()
{
- if (! gViewerAssetStats)
- {
- gViewerAssetStats = new LLViewerAssetStats();
- }
+ if (! gViewerAssetStats)
+ {
+ gViewerAssetStats = new LLViewerAssetStats();
+ }
}
void
cleanup()
{
- delete gViewerAssetStats;
- gViewerAssetStats = 0;
+ delete gViewerAssetStats;
+ gViewerAssetStats = 0;
}
@@ -400,51 +400,51 @@ cleanup()
-LLViewerAssetStats::AssetRequestType::AssetRequestType()
-: enqueued("enqueued"),
- dequeued("dequeued"),
- resp_count("resp_count"),
- resp_min("resp_min"),
- resp_max("resp_max"),
- resp_mean("resp_mean"),
+LLViewerAssetStats::AssetRequestType::AssetRequestType()
+: enqueued("enqueued"),
+ dequeued("dequeued"),
+ resp_count("resp_count"),
+ resp_min("resp_min"),
+ resp_max("resp_max"),
+ resp_mean("resp_mean"),
resp_mean_bytes("resp_mean_bytes")
{}
-
-LLViewerAssetStats::FPSStats::FPSStats()
-: count("count"),
- min("min"),
- max("max"),
- mean("mean")
+
+LLViewerAssetStats::FPSStats::FPSStats()
+: count("count"),
+ min("min"),
+ max("max"),
+ mean("mean")
{}
-LLViewerAssetStats::RegionStats::RegionStats()
-: get_texture_temp_http("get_texture_temp_http"),
- get_texture_temp_udp("get_texture_temp_udp"),
- get_texture_non_temp_http("get_texture_non_temp_http"),
- get_texture_non_temp_udp("get_texture_non_temp_udp"),
- get_wearable_http("get_wearable_http"),
- get_wearable_udp("get_wearable_udp"),
- get_sound_http("get_sound_http"),
- get_sound_udp("get_sound_udp"),
- get_gesture_http("get_gesture_http"),
- get_gesture_udp("get_gesture_udp"),
- get_landmark_http("get_landmark_http"),
- get_landmark_udp("get_landmark_udp"),
- get_other_http("get_other_http"),
- get_other_udp("get_other_udp"),
- fps("fps"),
- grid_x("grid_x"),
- grid_y("grid_y"),
- duration("duration")
+LLViewerAssetStats::RegionStats::RegionStats()
+: get_texture_temp_http("get_texture_temp_http"),
+ get_texture_temp_udp("get_texture_temp_udp"),
+ get_texture_non_temp_http("get_texture_non_temp_http"),
+ get_texture_non_temp_udp("get_texture_non_temp_udp"),
+ get_wearable_http("get_wearable_http"),
+ get_wearable_udp("get_wearable_udp"),
+ get_sound_http("get_sound_http"),
+ get_sound_udp("get_sound_udp"),
+ get_gesture_http("get_gesture_http"),
+ get_gesture_udp("get_gesture_udp"),
+ get_landmark_http("get_landmark_http"),
+ get_landmark_udp("get_landmark_udp"),
+ get_other_http("get_other_http"),
+ get_other_udp("get_other_udp"),
+ fps("fps"),
+ grid_x("grid_x"),
+ grid_y("grid_y"),
+ duration("duration")
{}
-LLViewerAssetStats::AssetStats::AssetStats()
-: regions("regions"),
- duration("duration"),
- session_id("session_id"),
- agent_id("agent_id"),
- message("message"),
- sequence("sequence"),
- initial("initial"),
- break_("break")
+LLViewerAssetStats::AssetStats::AssetStats()
+: regions("regions"),
+ duration("duration"),
+ session_id("session_id"),
+ agent_id("agent_id"),
+ message("message"),
+ sequence("sequence"),
+ initial("initial"),
+ break_("break")
{}