src/testlib/qbenchmarkmeasurement_p.h
changeset 30 5dc02b23752f
parent 18 2f34d5167611
child 33 3e2da88830cd
equal deleted inserted replaced
29:b72c6db6890b 30:5dc02b23752f
    53 // We mean it.
    53 // We mean it.
    54 //
    54 //
    55 
    55 
    56 #include <QtCore/qdatetime.h>
    56 #include <QtCore/qdatetime.h>
    57 #include "3rdparty/cycle_p.h"
    57 #include "3rdparty/cycle_p.h"
       
    58 #include "qbenchmark.h"
    58 
    59 
    59 QT_BEGIN_NAMESPACE
    60 QT_BEGIN_NAMESPACE
    60 
    61 
    61 class QBenchmarkMeasurerBase
    62 class QBenchmarkMeasurerBase
    62 {
    63 {
    69     virtual bool isMeasurementAccepted(qint64 measurement) = 0;
    70     virtual bool isMeasurementAccepted(qint64 measurement) = 0;
    70     virtual int adjustIterationCount(int suggestion) = 0;
    71     virtual int adjustIterationCount(int suggestion) = 0;
    71     virtual int adjustMedianCount(int suggestion) = 0;
    72     virtual int adjustMedianCount(int suggestion) = 0;
    72     virtual bool repeatCount() { return 1; } 
    73     virtual bool repeatCount() { return 1; } 
    73     virtual bool needsWarmupIteration() { return false; } 
    74     virtual bool needsWarmupIteration() { return false; } 
    74     virtual QString unitText() = 0;
    75     virtual QTest::QBenchmarkMetric metricType() = 0;
    75     virtual QString metricText() = 0;
       
    76 };
    76 };
    77 
    77 
    78 class QBenchmarkTimeMeasurer : public QBenchmarkMeasurerBase
    78 class QBenchmarkTimeMeasurer : public QBenchmarkMeasurerBase
    79 {
    79 {
    80 public:
    80 public:
    82     qint64 checkpoint();
    82     qint64 checkpoint();
    83     qint64 stop();
    83     qint64 stop();
    84     bool isMeasurementAccepted(qint64 measurement);
    84     bool isMeasurementAccepted(qint64 measurement);
    85     int adjustIterationCount(int sugestion);
    85     int adjustIterationCount(int sugestion);
    86     int adjustMedianCount(int suggestion);
    86     int adjustMedianCount(int suggestion);
    87     QString unitText();
    87     QTest::QBenchmarkMetric metricType();
    88     QString metricText();
       
    89 private:
    88 private:
    90     QTime time;
    89     QTime time;
    91 };
    90 };
    92 
    91 
    93 #ifdef HAVE_TICK_COUNTER // defined in 3rdparty/cycle_p.h
    92 #ifdef HAVE_TICK_COUNTER // defined in 3rdparty/cycle_p.h
   100     qint64 stop();
    99     qint64 stop();
   101     bool isMeasurementAccepted(qint64 measurement);
   100     bool isMeasurementAccepted(qint64 measurement);
   102     int adjustIterationCount(int);
   101     int adjustIterationCount(int);
   103     int adjustMedianCount(int suggestion);
   102     int adjustMedianCount(int suggestion);
   104     bool needsWarmupIteration();
   103     bool needsWarmupIteration();
   105     QString unitText();
   104     QTest::QBenchmarkMetric metricType();
   106     QString metricText();
       
   107 private:
   105 private:
   108     CycleCounterTicks startTicks;
   106     CycleCounterTicks startTicks;
   109 };
   107 };
   110 
   108 
   111 #endif
   109 #endif