summaryrefslogtreecommitdiff
path: root/indra/llcommon
diff options
context:
space:
mode:
Diffstat (limited to 'indra/llcommon')
-rw-r--r--indra/llcommon/CMakeLists.txt4
-rw-r--r--indra/llcommon/llmetricperformancetester.cpp142
-rw-r--r--indra/llcommon/llmetricperformancetester.h172
3 files changed, 159 insertions, 159 deletions
diff --git a/indra/llcommon/CMakeLists.txt b/indra/llcommon/CMakeLists.txt
index a6f07f9600..478f2fedbd 100644
--- a/indra/llcommon/CMakeLists.txt
+++ b/indra/llcommon/CMakeLists.txt
@@ -55,7 +55,6 @@ set(llcommon_SOURCE_FILES
llevents.cpp
lleventtimer.cpp
llfasttimer_class.cpp
- llmetricperformancetester.cpp
llfile.cpp
llfindlocale.cpp
llfixedbuffer.cpp
@@ -71,6 +70,7 @@ set(llcommon_SOURCE_FILES
llmemorystream.cpp
llmemtype.cpp
llmetrics.cpp
+ llmetricperformancetester.cpp
llmortician.cpp
lloptioninterface.cpp
llptrto.cpp
@@ -161,7 +161,6 @@ set(llcommon_HEADER_FILES
llextendedstatus.h
llfasttimer.h
llfasttimer_class.h
- llmetricperformancetester.h
llfile.h
llfindlocale.h
llfixedbuffer.h
@@ -188,6 +187,7 @@ set(llcommon_HEADER_FILES
llmemorystream.h
llmemtype.h
llmetrics.h
+ llmetricperformancetester.h
llmortician.h
llnametable.h
lloptioninterface.h
diff --git a/indra/llcommon/llmetricperformancetester.cpp b/indra/llcommon/llmetricperformancetester.cpp
index bd548f199a..2110192fbc 100644
--- a/indra/llcommon/llmetricperformancetester.cpp
+++ b/indra/llcommon/llmetricperformancetester.cpp
@@ -52,7 +52,7 @@ void LLMetricPerformanceTesterBasic::cleanClass()
/*static*/
BOOL LLMetricPerformanceTesterBasic::addTester(LLMetricPerformanceTesterBasic* tester)
{
- llassert_always(tester != NULL);
+ llassert_always(tester != NULL);
std::string name = tester->getTesterName() ;
if (getTester(name))
{
@@ -80,7 +80,7 @@ LLMetricPerformanceTesterBasic* LLMetricPerformanceTesterBasic::getTester(std::s
//----------------------------------------------------------------------------------------------
LLMetricPerformanceTesterBasic::LLMetricPerformanceTesterBasic(std::string name) :
- mName(name),
+ mName(name),
mCount(0)
{
if (mName == std::string())
@@ -110,7 +110,7 @@ void LLMetricPerformanceTesterBasic::postOutputTestResults(LLSD* sd)
void LLMetricPerformanceTesterBasic::outputTestResults()
{
LLSD sd;
-
+
preOutputTestResults(&sd) ;
outputTestRecord(&sd) ;
postOutputTestResults(&sd) ;
@@ -124,43 +124,43 @@ void LLMetricPerformanceTesterBasic::addMetric(std::string str)
/*virtual*/
void LLMetricPerformanceTesterBasic::analyzePerformance(std::ofstream* os, LLSD* base, LLSD* current)
{
- resetCurrentCount() ;
-
- std::string currentLabel = getCurrentLabelName();
- BOOL in_base = (*base).has(currentLabel) ;
- BOOL in_current = (*current).has(currentLabel) ;
-
- while(in_base || in_current)
- {
- LLSD::String label = currentLabel ;
-
- if(in_base && in_current)
- {
- *os << llformat("%s\n", label.c_str()) ;
-
- for(U32 index = 0 ; index < mMetricStrings.size() ; index++)
- {
- switch((*current)[label][ mMetricStrings[index] ].type())
- {
- case LLSD::TypeInteger:
- compareTestResults(os, mMetricStrings[index],
- (S32)((*base)[label][ mMetricStrings[index] ].asInteger()), (S32)((*current)[label][ mMetricStrings[index] ].asInteger())) ;
- break ;
- case LLSD::TypeReal:
- compareTestResults(os, mMetricStrings[index],
- (F32)((*base)[label][ mMetricStrings[index] ].asReal()), (F32)((*current)[label][ mMetricStrings[index] ].asReal())) ;
- break;
- default:
- llerrs << "unsupported metric " << mMetricStrings[index] << " LLSD type: " << (S32)(*current)[label][ mMetricStrings[index] ].type() << llendl ;
- }
- }
- }
-
- incrementCurrentCount();
- currentLabel = getCurrentLabelName();
- in_base = (*base).has(currentLabel) ;
- in_current = (*current).has(currentLabel) ;
- }
+ resetCurrentCount() ;
+
+ std::string currentLabel = getCurrentLabelName();
+ BOOL in_base = (*base).has(currentLabel) ;
+ BOOL in_current = (*current).has(currentLabel) ;
+
+ while(in_base || in_current)
+ {
+ LLSD::String label = currentLabel ;
+
+ if(in_base && in_current)
+ {
+ *os << llformat("%s\n", label.c_str()) ;
+
+ for(U32 index = 0 ; index < mMetricStrings.size() ; index++)
+ {
+ switch((*current)[label][ mMetricStrings[index] ].type())
+ {
+ case LLSD::TypeInteger:
+ compareTestResults(os, mMetricStrings[index],
+ (S32)((*base)[label][ mMetricStrings[index] ].asInteger()), (S32)((*current)[label][ mMetricStrings[index] ].asInteger())) ;
+ break ;
+ case LLSD::TypeReal:
+ compareTestResults(os, mMetricStrings[index],
+ (F32)((*base)[label][ mMetricStrings[index] ].asReal()), (F32)((*current)[label][ mMetricStrings[index] ].asReal())) ;
+ break;
+ default:
+ llerrs << "unsupported metric " << mMetricStrings[index] << " LLSD type: " << (S32)(*current)[label][ mMetricStrings[index] ].type() << llendl ;
+ }
+ }
+ }
+
+ incrementCurrentCount();
+ currentLabel = getCurrentLabelName();
+ in_base = (*base).has(currentLabel) ;
+ in_current = (*current).has(currentLabel) ;
+ }
}
/*virtual*/
@@ -182,12 +182,12 @@ void LLMetricPerformanceTesterBasic::compareTestResults(std::ofstream* os, std::
//----------------------------------------------------------------------------------------------
LLMetricPerformanceTesterWithSession::LLMetricPerformanceTesterWithSession(std::string name) :
- LLMetricPerformanceTesterBasic(name),
- mBaseSessionp(NULL),
- mCurrentSessionp(NULL)
+ LLMetricPerformanceTesterBasic(name),
+ mBaseSessionp(NULL),
+ mCurrentSessionp(NULL)
{
}
-
+
LLMetricPerformanceTesterWithSession::~LLMetricPerformanceTesterWithSession()
{
if (mBaseSessionp)
@@ -205,33 +205,33 @@ LLMetricPerformanceTesterWithSession::~LLMetricPerformanceTesterWithSession()
/*virtual*/
void LLMetricPerformanceTesterWithSession::analyzePerformance(std::ofstream* os, LLSD* base, LLSD* current)
{
- // Load the base session
- resetCurrentCount() ;
- mBaseSessionp = loadTestSession(base) ;
-
- // Load the current session
- resetCurrentCount() ;
- mCurrentSessionp = loadTestSession(current) ;
-
- if (!mBaseSessionp || !mCurrentSessionp)
- {
- llerrs << "Error loading test sessions." << llendl ;
- }
-
- // Compare
- compareTestSessions(os) ;
-
- // Release memory
- if (mBaseSessionp)
- {
- delete mBaseSessionp ;
- mBaseSessionp = NULL ;
- }
- if (mCurrentSessionp)
- {
- delete mCurrentSessionp ;
- mCurrentSessionp = NULL ;
- }
+ // Load the base session
+ resetCurrentCount() ;
+ mBaseSessionp = loadTestSession(base) ;
+
+ // Load the current session
+ resetCurrentCount() ;
+ mCurrentSessionp = loadTestSession(current) ;
+
+ if (!mBaseSessionp || !mCurrentSessionp)
+ {
+ llerrs << "Error loading test sessions." << llendl ;
+ }
+
+ // Compare
+ compareTestSessions(os) ;
+
+ // Release memory
+ if (mBaseSessionp)
+ {
+ delete mBaseSessionp ;
+ mBaseSessionp = NULL ;
+ }
+ if (mCurrentSessionp)
+ {
+ delete mCurrentSessionp ;
+ mCurrentSessionp = NULL ;
+ }
}
diff --git a/indra/llcommon/llmetricperformancetester.h b/indra/llcommon/llmetricperformancetester.h
index 82d579b188..6fd1d41daa 100644
--- a/indra/llcommon/llmetricperformancetester.h
+++ b/indra/llcommon/llmetricperformancetester.h
@@ -35,114 +35,114 @@ class LL_COMMON_API LLMetricPerformanceTesterBasic
{
public:
/**
- * @brief Creates a basic tester instance.
- * @param[in] name - Unique string identifying this tester instance.
- */
+ * @brief Creates a basic tester instance.
+ * @param[in] name - Unique string identifying this tester instance.
+ */
LLMetricPerformanceTesterBasic(std::string name);
virtual ~LLMetricPerformanceTesterBasic();
/**
- * @return Returns true if the instance has been added to the tester map.
- * Need to be tested after creation of a tester instance so to know if the tester is correctly handled.
- * A tester might not be added to the map if another tester with the same name already exists.
- */
- BOOL isValid() const { return mValidInstance; }
+ * @return Returns true if the instance has been added to the tester map.
+ * Need to be tested after creation of a tester instance so to know if the tester is correctly handled.
+ * A tester might not be added to the map if another tester with the same name already exists.
+ */
+ BOOL isValid() const { return mValidInstance; }
/**
- * @brief Write a set of test results to the log LLSD.
- */
+ * @brief Write a set of test results to the log LLSD.
+ */
void outputTestResults() ;
-
+
/**
- * @brief Compare the test results.
- * By default, compares the test results against the baseline one by one, item by item,
- * in the increasing order of the LLSD record counter, starting from the first one.
- */
+ * @brief Compare the test results.
+ * By default, compares the test results against the baseline one by one, item by item,
+ * in the increasing order of the LLSD record counter, starting from the first one.
+ */
virtual void analyzePerformance(std::ofstream* os, LLSD* base, LLSD* current) ;
-
+
/**
- * @return Returns the number of the test metrics in this tester instance.
- */
+ * @return Returns the number of the test metrics in this tester instance.
+ */
S32 getNumberOfMetrics() const { return mMetricStrings.size() ;}
/**
- * @return Returns the metric name at index
- * @param[in] index - Index on the list of metrics managed by this tester instance.
- */
+ * @return Returns the metric name at index
+ * @param[in] index - Index on the list of metrics managed by this tester instance.
+ */
std::string getMetricName(S32 index) const { return mMetricStrings[index] ;}
-
+
protected:
/**
- * @return Returns the name of this tester instance.
- */
+ * @return Returns the name of this tester instance.
+ */
std::string getTesterName() const { return mName ;}
-
+
/**
- * @brief Insert a new metric to be managed by this tester instance.
- * @param[in] str - Unique string identifying the new metric.
- */
+ * @brief Insert a new metric to be managed by this tester instance.
+ * @param[in] str - Unique string identifying the new metric.
+ */
void addMetric(std::string str) ;
/**
- * @brief Compare test results, provided in 2 flavors: compare integers and compare floats.
- * @param[out] os - Formatted output string holding the compared values.
- * @param[in] metric_string - Name of the metric.
- * @param[in] v_base - Base value of the metric.
- * @param[in] v_current - Current value of the metric.
- */
+ * @brief Compare test results, provided in 2 flavors: compare integers and compare floats.
+ * @param[out] os - Formatted output string holding the compared values.
+ * @param[in] metric_string - Name of the metric.
+ * @param[in] v_base - Base value of the metric.
+ * @param[in] v_current - Current value of the metric.
+ */
virtual void compareTestResults(std::ofstream* os, std::string metric_string, S32 v_base, S32 v_current) ;
virtual void compareTestResults(std::ofstream* os, std::string metric_string, F32 v_base, F32 v_current) ;
-
+
/**
- * @brief Reset internal record count. Count starts with 1.
- */
+ * @brief Reset internal record count. Count starts with 1.
+ */
void resetCurrentCount() { mCount = 1; }
/**
- * @brief Increment internal record count.
- */
+ * @brief Increment internal record count.
+ */
void incrementCurrentCount() { mCount++; }
/**
- * @return Returns the label to be used for the current count. It's "TesterName"-"Count".
- */
- std::string getCurrentLabelName() const { return llformat("%s-%d", mName.c_str(), mCount) ;}
-
- /**
- * @brief Write a test record to the LLSD. Implementers need to overload this method.
- * @param[out] sd - The LLSD record to store metric data into.
- */
+ * @return Returns the label to be used for the current count. It's "TesterName"-"Count".
+ */
+ std::string getCurrentLabelName() const { return llformat("%s-%d", mName.c_str(), mCount) ;}
+
+ /**
+ * @brief Write a test record to the LLSD. Implementers need to overload this method.
+ * @param[out] sd - The LLSD record to store metric data into.
+ */
virtual void outputTestRecord(LLSD* sd) = 0 ;
private:
void preOutputTestResults(LLSD* sd) ;
void postOutputTestResults(LLSD* sd) ;
- std::string mName ; // Name of this tester instance
- S32 mCount ; // Current record count
- BOOL mValidInstance; // TRUE if the instance is managed by the map
+ std::string mName ; // Name of this tester instance
+ S32 mCount ; // Current record count
+ BOOL mValidInstance; // TRUE if the instance is managed by the map
std::vector< std::string > mMetricStrings ; // Metrics strings
// Static members managing the collection of testers
public:
- // Map of all the tester instances in use
+ // Map of all the tester instances in use
typedef std::map< std::string, LLMetricPerformanceTesterBasic* > name_tester_map_t;
static name_tester_map_t sTesterMap ;
/**
- * @return Returns a pointer to the tester
- * @param[in] name - Name of the tester instance queried.
- */
+ * @return Returns a pointer to the tester
+ * @param[in] name - Name of the tester instance queried.
+ */
static LLMetricPerformanceTesterBasic* getTester(std::string name) ;
/**
- * @return Returns TRUE if there's a tester defined, FALSE otherwise.
- */
+ * @return Returns TRUE if there's a tester defined, FALSE otherwise.
+ */
static BOOL hasMetricPerformanceTesters() { return !sTesterMap.empty() ;}
/**
- * @brief Delete all testers and reset the tester map
- */
+ * @brief Delete all testers and reset the tester map
+ */
static void cleanClass() ;
private:
- // Add a tester to the map. Returns false if adding fails.
- static BOOL addTester(LLMetricPerformanceTesterBasic* tester) ;
+ // Add a tester to the map. Returns false if adding fails.
+ static BOOL addTester(LLMetricPerformanceTesterBasic* tester) ;
};
/**
@@ -153,42 +153,42 @@ class LL_COMMON_API LLMetricPerformanceTesterWithSession : public LLMetricPerfor
{
public:
/**
- * @param[in] name - Unique string identifying this tester instance.
- */
+ * @param[in] name - Unique string identifying this tester instance.
+ */
LLMetricPerformanceTesterWithSession(std::string name);
virtual ~LLMetricPerformanceTesterWithSession();
/**
- * @brief Compare the test results.
- * This will be loading the base and current sessions and compare them using the virtual
- * abstract methods loadTestSession() and compareTestSessions()
- */
+ * @brief Compare the test results.
+ * This will be loading the base and current sessions and compare them using the virtual
+ * abstract methods loadTestSession() and compareTestSessions()
+ */
virtual void analyzePerformance(std::ofstream* os, LLSD* base, LLSD* current) ;
protected:
- /**
- * @class LLMetricPerformanceTesterWithSession::LLTestSession
- * @brief Defines an interface for the two abstract virtual functions loadTestSession() and compareTestSessions()
- */
- class LLTestSession
- {
- public:
- virtual ~LLTestSession() ;
- };
-
- /**
- * @brief Convert an LLSD log into a test session.
- * @param[in] log - The LLSD record
- * @return Returns the record as a test session
- */
+ /**
+ * @class LLMetricPerformanceTesterWithSession::LLTestSession
+ * @brief Defines an interface for the two abstract virtual functions loadTestSession() and compareTestSessions()
+ */
+ class LL_COMMON_API LLTestSession
+ {
+ public:
+ virtual ~LLTestSession() ;
+ };
+
+ /**
+ * @brief Convert an LLSD log into a test session.
+ * @param[in] log - The LLSD record
+ * @return Returns the record as a test session
+ */
virtual LLMetricPerformanceTesterWithSession::LLTestSession* loadTestSession(LLSD* log) = 0;
-
+
/**
- * @brief Compare the base session and the target session. Assumes base and current sessions have been loaded.
- * @param[out] os - The comparison result as a standard stream
- */
+ * @brief Compare the base session and the target session. Assumes base and current sessions have been loaded.
+ * @param[out] os - The comparison result as a standard stream
+ */
virtual void compareTestSessions(std::ofstream* os) = 0;
-
+
LLTestSession* mBaseSessionp;
LLTestSession* mCurrentSessionp;
};