aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Brasser <michael.brasser@nokia.com>2011-06-03 09:50:04 +1000
committerMichael Brasser <michael.brasser@nokia.com>2011-06-03 09:50:04 +1000
commitcd6ebb4912a5d96c788ea0c838d8a1a06ff4029e (patch)
tree315b6191e961c1bb4cab972b62455740c574b15d
parentf97e25abe073bede66cc5683ae45baea3a528d44 (diff)
Replace QPerformanceTimer with QElapsedTimer.
QElapsedTimer has added a nsecsElapsed() function, so QPerformanceTimer is no longer needed. Reviewed-by: Charles Yin
-rw-r--r--src/declarative/debugger/qdeclarativedebugtrace.cpp16
-rw-r--r--src/declarative/debugger/qdeclarativedebugtrace_p.h4
-rw-r--r--src/declarative/qml/qml.pri4
-rw-r--r--src/declarative/qml/qperformancetimer.cpp226
-rw-r--r--src/declarative/qml/qperformancetimer_p.h79
-rw-r--r--tests/auto/declarative/qperformancetimer/qperformancetimer.pro8
-rw-r--r--tests/auto/declarative/qperformancetimer/tst_qperformancetimer.cpp68
-rw-r--r--tests/benchmarks/declarative/qdeclarativedebugtrace/qdeclarativedebugtrace.pro8
-rw-r--r--tests/benchmarks/declarative/qdeclarativedebugtrace/tst_qdeclarativedebugtrace.cpp (renamed from tests/benchmarks/declarative/qperformancetimer/tst_qperformancetimer.cpp)32
-rw-r--r--tests/benchmarks/declarative/qperformancetimer/qperformancetimer.pro8
10 files changed, 35 insertions, 418 deletions
diff --git a/src/declarative/debugger/qdeclarativedebugtrace.cpp b/src/declarative/debugger/qdeclarativedebugtrace.cpp
index 2772d38058..0a46d68aa7 100644
--- a/src/declarative/debugger/qdeclarativedebugtrace.cpp
+++ b/src/declarative/debugger/qdeclarativedebugtrace.cpp
@@ -49,7 +49,7 @@ Q_GLOBAL_STATIC(QDeclarativeDebugTrace, traceInstance);
// convert to a QByteArray that can be sent to the debug client
// use of QDataStream can skew results if m_deferredSend == false
-// (see tst_qperformancetimer::trace() benchmark)
+// (see tst_qdeclarativedebugtrace::trace() benchmark)
QByteArray QDeclarativeDebugData::toByteArray() const
{
QByteArray data;
@@ -122,7 +122,7 @@ void QDeclarativeDebugTrace::addEventImpl(EventType event)
if (status() != Enabled || !m_enabled)
return;
- QDeclarativeDebugData ed = {m_timer.elapsed(), (int)Event, (int)event, QString(), -1};
+ QDeclarativeDebugData ed = {m_timer.nsecsElapsed(), (int)Event, (int)event, QString(), -1};
processMessage(ed);
}
@@ -131,7 +131,7 @@ void QDeclarativeDebugTrace::startRangeImpl(RangeType range)
if (status() != Enabled || !m_enabled)
return;
- QDeclarativeDebugData rd = {m_timer.elapsed(), (int)RangeStart, (int)range, QString(), -1};
+ QDeclarativeDebugData rd = {m_timer.nsecsElapsed(), (int)RangeStart, (int)range, QString(), -1};
processMessage(rd);
}
@@ -140,7 +140,7 @@ void QDeclarativeDebugTrace::rangeDataImpl(RangeType range, const QString &rData
if (status() != Enabled || !m_enabled)
return;
- QDeclarativeDebugData rd = {m_timer.elapsed(), (int)RangeData, (int)range, rData, -1};
+ QDeclarativeDebugData rd = {m_timer.nsecsElapsed(), (int)RangeData, (int)range, rData, -1};
processMessage(rd);
}
@@ -149,7 +149,7 @@ void QDeclarativeDebugTrace::rangeDataImpl(RangeType range, const QUrl &rData)
if (status() != Enabled || !m_enabled)
return;
- QDeclarativeDebugData rd = {m_timer.elapsed(), (int)RangeData, (int)range, rData.toString(QUrl::FormattingOption(0x100)), -1};
+ QDeclarativeDebugData rd = {m_timer.nsecsElapsed(), (int)RangeData, (int)range, rData.toString(QUrl::FormattingOption(0x100)), -1};
processMessage(rd);
}
@@ -158,7 +158,7 @@ void QDeclarativeDebugTrace::rangeLocationImpl(RangeType range, const QString &f
if (status() != Enabled || !m_enabled)
return;
- QDeclarativeDebugData rd = {m_timer.elapsed(), (int)RangeLocation, (int)range, fileName, line};
+ QDeclarativeDebugData rd = {m_timer.nsecsElapsed(), (int)RangeLocation, (int)range, fileName, line};
processMessage(rd);
}
@@ -167,7 +167,7 @@ void QDeclarativeDebugTrace::rangeLocationImpl(RangeType range, const QUrl &file
if (status() != Enabled || !m_enabled)
return;
- QDeclarativeDebugData rd = {m_timer.elapsed(), (int)RangeLocation, (int)range, fileName.toString(QUrl::FormattingOption(0x100)), line};
+ QDeclarativeDebugData rd = {m_timer.nsecsElapsed(), (int)RangeLocation, (int)range, fileName.toString(QUrl::FormattingOption(0x100)), line};
processMessage(rd);
}
@@ -176,7 +176,7 @@ void QDeclarativeDebugTrace::endRangeImpl(RangeType range)
if (status() != Enabled || !m_enabled)
return;
- QDeclarativeDebugData rd = {m_timer.elapsed(), (int)RangeEnd, (int)range, QString(), -1};
+ QDeclarativeDebugData rd = {m_timer.nsecsElapsed(), (int)RangeEnd, (int)range, QString(), -1};
processMessage(rd);
}
diff --git a/src/declarative/debugger/qdeclarativedebugtrace_p.h b/src/declarative/debugger/qdeclarativedebugtrace_p.h
index 30aa7723aa..6681d28846 100644
--- a/src/declarative/debugger/qdeclarativedebugtrace_p.h
+++ b/src/declarative/debugger/qdeclarativedebugtrace_p.h
@@ -43,7 +43,7 @@
#define QDECLARATIVEDEBUGTRACE_P_H
#include <private/qdeclarativedebugservice_p.h>
-#include <private/qperformancetimer_p.h>
+#include <QtCore/qelapsedtimer.h>
QT_BEGIN_HEADER
@@ -117,7 +117,7 @@ private:
void endRangeImpl(RangeType);
void processMessage(const QDeclarativeDebugData &);
void sendMessages();
- QPerformanceTimer m_timer;
+ QElapsedTimer m_timer;
bool m_enabled;
bool m_deferredSend;
bool m_messageReceived;
diff --git a/src/declarative/qml/qml.pri b/src/declarative/qml/qml.pri
index 62c1f97d60..78fb06358e 100644
--- a/src/declarative/qml/qml.pri
+++ b/src/declarative/qml/qml.pri
@@ -54,8 +54,7 @@ SOURCES += \
$$PWD/qdeclarativedirparser.cpp \
$$PWD/qdeclarativeextensionplugin.cpp \
$$PWD/qdeclarativeimport.cpp \
- $$PWD/qdeclarativelist.cpp \
- $$PWD/qperformancetimer.cpp \
+ $$PWD/qdeclarativelist.cpp \
$$PWD/qintrusivelist.cpp \
HEADERS += \
@@ -129,7 +128,6 @@ HEADERS += \
$$PWD/qdeclarativeextensioninterface.h \
$$PWD/qdeclarativeimport_p.h \
$$PWD/qdeclarativeextensionplugin.h \
- $$PWD/qperformancetimer_p.h \
$$PWD/qintrusivelist_p.h \
QT += sql
diff --git a/src/declarative/qml/qperformancetimer.cpp b/src/declarative/qml/qperformancetimer.cpp
deleted file mode 100644
index 9fc0d35696..0000000000
--- a/src/declarative/qml/qperformancetimer.cpp
+++ /dev/null
@@ -1,226 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the QtDeclarative module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** GNU Lesser General Public License Usage
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this
-** file. Please review the following information to ensure the GNU Lesser
-** General Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU General
-** Public License version 3.0 as published by the Free Software Foundation
-** and appearing in the file LICENSE.GPL included in the packaging of this
-** file. Please review the following information to ensure the GNU General
-** Public License version 3.0 requirements will be met:
-** http://www.gnu.org/copyleft/gpl.html.
-**
-** Other Usage
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qperformancetimer_p.h"
-
-#if defined(Q_OS_MAC)
-#include <sys/time.h>
-#include <unistd.h>
-#include <mach/mach_time.h>
-#elif defined(Q_OS_UNIX)
-#include <sys/time.h>
-#include <time.h>
-#include <unistd.h>
-#elif defined(Q_OS_SYMBIAN)
-#include <e32std.h>
-#include <sys/time.h>
-#include <hal.h>
-#elif defined(Q_OS_WIN)
-#include <windows.h>
-#endif
-
-// mac/unix code heavily copied from QElapsedTimer
-
-QT_BEGIN_NAMESPACE
-
-////////////////////////////// Mac //////////////////////////////
-#if defined(Q_OS_MAC)
-
-static mach_timebase_info_data_t info = {0,0};
-static qint64 absoluteToNSecs(qint64 cpuTime)
-{
- if (info.denom == 0)
- mach_timebase_info(&info);
- qint64 nsecs = cpuTime * info.numer / info.denom;
- return nsecs;
-}
-
-void QPerformanceTimer::start()
-{
- t1 = mach_absolute_time();
-}
-
-qint64 QPerformanceTimer::elapsed() const
-{
- uint64_t cpu_time = mach_absolute_time();
- return absoluteToNSecs(cpu_time - t1);
-}
-
-////////////////////////////// Unix //////////////////////////////
-#elif defined(Q_OS_UNIX)
-
-#if defined(QT_NO_CLOCK_MONOTONIC) || defined(QT_BOOTSTRAPPED)
-// turn off the monotonic clock
-# ifdef _POSIX_MONOTONIC_CLOCK
-# undef _POSIX_MONOTONIC_CLOCK
-# endif
-# define _POSIX_MONOTONIC_CLOCK -1
-#endif
-
-#if (_POSIX_MONOTONIC_CLOCK-0 != 0)
-static const bool monotonicClockChecked = true;
-static const bool monotonicClockAvailable = _POSIX_MONOTONIC_CLOCK > 0;
-#else
-static int monotonicClockChecked = false;
-static int monotonicClockAvailable = false;
-#endif
-
-#ifdef Q_CC_GNU
-# define is_likely(x) __builtin_expect((x), 1)
-#else
-# define is_likely(x) (x)
-#endif
-#define load_acquire(x) ((volatile const int&)(x))
-#define store_release(x,v) ((volatile int&)(x) = (v))
-
-static void unixCheckClockType()
-{
-#if (_POSIX_MONOTONIC_CLOCK-0 == 0)
- if (is_likely(load_acquire(monotonicClockChecked)))
- return;
-
-# if defined(_SC_MONOTONIC_CLOCK)
- // detect if the system support monotonic timers
- long x = sysconf(_SC_MONOTONIC_CLOCK);
- store_release(monotonicClockAvailable, x >= 200112L);
-# endif
-
- store_release(monotonicClockChecked, true);
-#endif
-}
-
-static inline void do_gettime(qint64 *sec, qint64 *frac)
-{
-#if (_POSIX_MONOTONIC_CLOCK-0 >= 0)
- unixCheckClockType();
- if (is_likely(monotonicClockAvailable)) {
- timespec ts;
- clock_gettime(CLOCK_MONOTONIC, &ts);
- *sec = ts.tv_sec;
- *frac = ts.tv_nsec;
- return;
- }
-#endif
- *sec = 0;
- *frac = 0;
-}
-
-void QPerformanceTimer::start()
-{
- do_gettime(&t1, &t2);
-}
-
-qint64 QPerformanceTimer::elapsed() const
-{
- qint64 sec, frac;
- do_gettime(&sec, &frac);
- sec = sec - t1;
- frac = frac - t2;
-
- return sec * Q_INT64_C(1000000000) + frac;
-}
-
-////////////////////////////// Symbian //////////////////////////////
-#elif defined(Q_OS_SYMBIAN)
-
-static qint64 getTimeFromTick(quint64 elapsed)
-{
- static TInt freq;
- if (!freq)
- HAL::Get(HALData::EFastCounterFrequency, freq);
-
- // ### not sure on units
- return elapsed / freq;
-}
-
-void QPerformanceTimer::start()
-{
- t1 = User::FastCounter();
-}
-
-qint64 QPerformanceTimer::elapsed() const
-{
- return getTimeFromTick(User::FastCounter() - t1);
-}
-
-////////////////////////////// Windows //////////////////////////////
-#elif defined(Q_OS_WIN)
-
-static qint64 getTimeFromTick(quint64 elapsed)
-{
- static LARGE_INTEGER freq;
- if (!freq.QuadPart)
- QueryPerformanceFrequency(&freq);
- return 1000000000 * elapsed / freq.QuadPart;
-}
-
-void QPerformanceTimer::start()
-{
- LARGE_INTEGER li;
- QueryPerformanceCounter(&li);
- t1 = li.QuadPart;
-}
-
-qint64 QPerformanceTimer::elapsed() const
-{
- LARGE_INTEGER li;
- QueryPerformanceCounter(&li);
- return getTimeFromTick(li.QuadPart - t1);
-}
-
-////////////////////////////// Default //////////////////////////////
-#else
-
-// default implementation (no hi-perf timer) does nothing
-void QPerformanceTimer::start()
-{
-}
-
-qint64 QPerformanceTimer::elapsed() const
-{
- return 0;
-}
-
-#endif
-
-QT_END_NAMESPACE
-
-
diff --git a/src/declarative/qml/qperformancetimer_p.h b/src/declarative/qml/qperformancetimer_p.h
deleted file mode 100644
index 48b286eac8..0000000000
--- a/src/declarative/qml/qperformancetimer_p.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the QtDeclarative module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** GNU Lesser General Public License Usage
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this
-** file. Please review the following information to ensure the GNU Lesser
-** General Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU General
-** Public License version 3.0 as published by the Free Software Foundation
-** and appearing in the file LICENSE.GPL included in the packaging of this
-** file. Please review the following information to ensure the GNU General
-** Public License version 3.0 requirements will be met:
-** http://www.gnu.org/copyleft/gpl.html.
-**
-** Other Usage
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QPERFORMANCETIMER_P_H
-#define QPERFORMANCETIMER_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists for the convenience
-// of moc. This header file may change from version to version without notice,
-// or even be removed.
-//
-// We mean it.
-//
-
-#include <QtCore/qglobal.h>
-
-QT_BEGIN_HEADER
-
-QT_BEGIN_NAMESPACE
-
-QT_MODULE(Declarative)
-
-class Q_AUTOTEST_EXPORT QPerformanceTimer
-{
-public:
- void start();
- qint64 elapsed() const;
-
-private:
- qint64 t1;
- qint64 t2;
-};
-
-QT_END_NAMESPACE
-
-QT_END_HEADER
-
-#endif // QPERFORMANCETIMER_P_H
diff --git a/tests/auto/declarative/qperformancetimer/qperformancetimer.pro b/tests/auto/declarative/qperformancetimer/qperformancetimer.pro
deleted file mode 100644
index fb0783dfc9..0000000000
--- a/tests/auto/declarative/qperformancetimer/qperformancetimer.pro
+++ /dev/null
@@ -1,8 +0,0 @@
-load(qttest_p4)
-contains(QT_CONFIG,declarative): QT += declarative
-SOURCES += tst_qperformancetimer.cpp
-macx:CONFIG -= app_bundle
-
-CONFIG += parallel_test
-
-QT += core-private gui-private declarative-private
diff --git a/tests/auto/declarative/qperformancetimer/tst_qperformancetimer.cpp b/tests/auto/declarative/qperformancetimer/tst_qperformancetimer.cpp
deleted file mode 100644
index b29ebe3bbc..0000000000
--- a/tests/auto/declarative/qperformancetimer/tst_qperformancetimer.cpp
+++ /dev/null
@@ -1,68 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the test suite of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** GNU Lesser General Public License Usage
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this
-** file. Please review the following information to ensure the GNU Lesser
-** General Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU General
-** Public License version 3.0 as published by the Free Software Foundation
-** and appearing in the file LICENSE.GPL included in the packaging of this
-** file. Please review the following information to ensure the GNU General
-** Public License version 3.0 requirements will be met:
-** http://www.gnu.org/copyleft/gpl.html.
-**
-** Other Usage
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <private/qperformancetimer_p.h>
-#include <QObject>
-#include <qtest.h>
-
-class tst_qperformancetimer : public QObject
-{
- Q_OBJECT
-
-public:
- tst_qperformancetimer() {}
-
-private slots:
- void units();
-};
-
-void tst_qperformancetimer::units()
-{
- QPerformanceTimer timer;
- timer.start();
- QTest::qWait(300);
- qint64 elapsed = timer.elapsed();
- QVERIFY(elapsed > 300000000 && elapsed < 310000000);
-}
-
-QTEST_MAIN(tst_qperformancetimer)
-
-#include "tst_qperformancetimer.moc"
diff --git a/tests/benchmarks/declarative/qdeclarativedebugtrace/qdeclarativedebugtrace.pro b/tests/benchmarks/declarative/qdeclarativedebugtrace/qdeclarativedebugtrace.pro
new file mode 100644
index 0000000000..e9aea4f71c
--- /dev/null
+++ b/tests/benchmarks/declarative/qdeclarativedebugtrace/qdeclarativedebugtrace.pro
@@ -0,0 +1,8 @@
+load(qttest_p4)
+QT += declarative
+TEMPLATE = app
+TARGET = tst_qdeclarativedebugtrace
+macx:CONFIG -= app_bundle
+
+SOURCES += tst_qdeclarativedebugtrace.cpp
+
diff --git a/tests/benchmarks/declarative/qperformancetimer/tst_qperformancetimer.cpp b/tests/benchmarks/declarative/qdeclarativedebugtrace/tst_qdeclarativedebugtrace.cpp
index e52cd2e573..224e7b471f 100644
--- a/tests/benchmarks/declarative/qperformancetimer/tst_qperformancetimer.cpp
+++ b/tests/benchmarks/declarative/qdeclarativedebugtrace/tst_qdeclarativedebugtrace.cpp
@@ -39,16 +39,16 @@
**
****************************************************************************/
-#include <private/qperformancetimer_p.h>
+#include <QtCore/QElapsedTimer>
#include <QObject>
#include <qtest.h>
-class tst_qperformancetimer : public QObject
+class tst_qdeclarativedebugtrace : public QObject
{
Q_OBJECT
public:
- tst_qperformancetimer() {}
+ tst_qdeclarativedebugtrace() {}
private slots:
void all();
@@ -57,35 +57,35 @@ private slots:
void trace();
};
-void tst_qperformancetimer::all()
+void tst_qdeclarativedebugtrace::all()
{
QBENCHMARK {
- QPerformanceTimer t;
+ QElapsedTimer t;
t.start();
- t.elapsed();
+ t.nsecsElapsed();
}
}
-void tst_qperformancetimer::startElapsed()
+void tst_qdeclarativedebugtrace::startElapsed()
{
- QPerformanceTimer t;
+ QElapsedTimer t;
QBENCHMARK {
t.start();
- t.elapsed();
+ t.nsecsElapsed();
}
}
-void tst_qperformancetimer::doubleElapsed()
+void tst_qdeclarativedebugtrace::doubleElapsed()
{
- QPerformanceTimer t;
+ QElapsedTimer t;
t.start();
QBENCHMARK {
- t.elapsed();
- t.elapsed();
+ t.nsecsElapsed();
+ t.nsecsElapsed();
}
}
-void tst_qperformancetimer::trace()
+void tst_qdeclarativedebugtrace::trace()
{
QString s("A decent sized string of text here.");
QBENCHMARK {
@@ -95,6 +95,6 @@ void tst_qperformancetimer::trace()
}
}
-QTEST_MAIN(tst_qperformancetimer)
+QTEST_MAIN(tst_qdeclarativedebugtrace)
-#include "tst_qperformancetimer.moc"
+#include "tst_qdeclarativedebugtrace.moc"
diff --git a/tests/benchmarks/declarative/qperformancetimer/qperformancetimer.pro b/tests/benchmarks/declarative/qperformancetimer/qperformancetimer.pro
deleted file mode 100644
index a39cd3d979..0000000000
--- a/tests/benchmarks/declarative/qperformancetimer/qperformancetimer.pro
+++ /dev/null
@@ -1,8 +0,0 @@
-load(qttest_p4)
-QT += declarative
-TEMPLATE = app
-TARGET = tst_qperformancetimer
-macx:CONFIG -= app_bundle
-
-SOURCES += tst_qperformancetimer.cpp
-