OSDN Git Service

Slightly improved benchmark code (outliers will now be dropped).
authorLoRd_MuldeR <mulder2@gmx.de>
Sat, 2 Nov 2013 13:28:52 +0000 (14:28 +0100)
committerLoRd_MuldeR <mulder2@gmx.de>
Sat, 2 Nov 2013 13:28:52 +0000 (14:28 +0100)
src/Config.h
src/Thread_Initialization.cpp

index 2de9d1e..fa4e6f7 100644 (file)
@@ -35,7 +35,7 @@
 #define VER_LAMEXP_MINOR_LO                                    9
 #define VER_LAMEXP_TYPE                                                Alpha
 #define VER_LAMEXP_PATCH                                       7
-#define VER_LAMEXP_BUILD                                       1448
+#define VER_LAMEXP_BUILD                                       1449
 #define VER_LAMEXP_CONFG                                       1348
 
 ///////////////////////////////////////////////////////////////////////////////
index 1770bc9..f4ace8e 100644 (file)
@@ -395,13 +395,21 @@ void InitializationThread::runBenchmark(void)
 
        for(size_t c = 1; c <= maxThreads; c++)
        {
-               double delayAcc = 0.0;
+               QList<double> delayLst;
+               double delayAvg = 0.0;
                for(size_t i = 0; i < nLoops; i++)
                {
-                       delayAcc += doInit(c);
+                       delayLst << doInit(c);
                        lamexp_clean_all_tools();
                }
-               results.insert(c, (delayAcc / double(nLoops)));
+               qSort(delayLst.begin(), delayLst.end());
+               delayLst.takeLast();
+               delayLst.takeFirst();
+               for(QList<double>::ConstIterator iter = delayLst.constBegin(); iter != delayLst.constEnd(); iter++)
+               {
+                       delayAvg += (*iter);
+               }
+               results.insert(c, (delayAvg / double(delayLst.count())));
        }
 
        qWarning("\n----------------------------------------------");