From 74dc89de3ed45ad217fdb003f663144e71ef01f8 Mon Sep 17 00:00:00 2001 From: Jarek Kobus Date: Mon, 22 Jun 2020 16:30:54 +0200 Subject: Use QList instead of QVector in benchmarks tests Task-number: QTBUG-84469 Change-Id: Id61d6036067da0bcd0811b1b97df5f1334007b7e Reviewed-by: Lars Knoll --- .../corelib/thread/qmutex/tst_qmutex.cpp | 6 ++-- .../corelib/time/qdate/tst_bench_qdate.cpp | 14 ++++---- tests/benchmarks/corelib/time/qdatetime/main.cpp | 14 ++++---- tests/benchmarks/corelib/time/qtimezone/main.cpp | 30 +++++++---------- .../corelib/tools/containers-sequential/main.cpp | 38 +++++++++++----------- .../corelib/tools/qalgorithms/tst_qalgorithms.cpp | 18 +++++----- .../benchmarks/corelib/tools/qvector/outofline.cpp | 2 +- 7 files changed, 57 insertions(+), 65 deletions(-) (limited to 'tests/benchmarks/corelib') diff --git a/tests/benchmarks/corelib/thread/qmutex/tst_qmutex.cpp b/tests/benchmarks/corelib/thread/qmutex/tst_qmutex.cpp index b94d6ee619..1482c21a85 100644 --- a/tests/benchmarks/corelib/thread/qmutex/tst_qmutex.cpp +++ b/tests/benchmarks/corelib/thread/qmutex/tst_qmutex.cpp @@ -294,7 +294,7 @@ void tst_QMutex::contendedNative() NativeMutexInitialize(&mutex1); NativeMutexInitialize(&mutex2); - QVector threads(threadCount); + QList threads(threadCount); for (int i = 0; i < threads.count(); ++i) { threads[i] = new NativeMutexThread(&mutex1, &mutex2, iterations, msleepDuration, use2mutexes); threads[i]->start(); @@ -361,7 +361,7 @@ void tst_QMutex::contendedQMutex() QMutex mutex1, mutex2; - QVector threads(threadCount); + QList threads(threadCount); for (int i = 0; i < threads.count(); ++i) { threads[i] = new QMutexThread(&mutex1, &mutex2, iterations, msleepDuration, use2mutexes); threads[i]->start(); @@ -423,7 +423,7 @@ void tst_QMutex::contendedQMutexLocker() QMutex mutex1, mutex2; - QVector threads(threadCount); + QList threads(threadCount); for (int i = 0; i < threads.count(); ++i) { threads[i] = new QMutexLockerThread(&mutex1, &mutex2, iterations, msleepDuration, use2mutexes); threads[i]->start(); diff --git a/tests/benchmarks/corelib/time/qdate/tst_bench_qdate.cpp b/tests/benchmarks/corelib/time/qdate/tst_bench_qdate.cpp index 10c013c080..f8ca632beb 100644 --- a/tests/benchmarks/corelib/time/qdate/tst_bench_qdate.cpp +++ b/tests/benchmarks/corelib/time/qdate/tst_bench_qdate.cpp @@ -28,7 +28,7 @@ #include #include -#include +#include class tst_QDate : public QObject { @@ -41,8 +41,8 @@ class tst_QDate : public QObject JULIAN_DAY_2020 = 2458850, }; - static QVector daily(qint64 start, qint64 end); - static QVector yearly(qint32 first, qint32 last); + static QList daily(qint64 start, qint64 end); + static QList yearly(qint32 first, qint32 last); private Q_SLOTS: void create(); @@ -60,18 +60,18 @@ private Q_SLOTS: void addYears(); }; -QVector tst_QDate::daily(qint64 start, qint64 end) +QList tst_QDate::daily(qint64 start, qint64 end) { - QVector list; + QList list; list.reserve(end - start); for (qint64 jd = start; jd < end; ++jd) list.append(QDate::fromJulianDay(jd)); return list; } -QVector tst_QDate::yearly(qint32 first, qint32 last) +QList tst_QDate::yearly(qint32 first, qint32 last) { - QVector list; + QList list; list.reserve(last + 1 - first); for (qint32 year = first; year <= last; ++year) list.append(QDate(year, 3, 21)); diff --git a/tests/benchmarks/corelib/time/qdatetime/main.cpp b/tests/benchmarks/corelib/time/qdatetime/main.cpp index 740e08cc46..1d63547f8f 100644 --- a/tests/benchmarks/corelib/time/qdatetime/main.cpp +++ b/tests/benchmarks/corelib/time/qdatetime/main.cpp @@ -29,7 +29,7 @@ #include #include #include -#include +#include #include class tst_QDateTime : public QObject @@ -50,8 +50,8 @@ class tst_QDateTime : public QObject JULIAN_DAY_2060 = 2473460 }; - static QVector daily(qint64 start, qint64 end); - static QVector norse(qint64 start, qint64 end); + static QList daily(qint64 start, qint64 end); + static QList norse(qint64 start, qint64 end); private Q_SLOTS: void create(); @@ -102,19 +102,19 @@ private Q_SLOTS: void fromMSecsSinceEpochTz(); }; -QVector tst_QDateTime::daily(qint64 start, qint64 end) +QList tst_QDateTime::daily(qint64 start, qint64 end) { - QVector list; + QList list; list.reserve(end - start); for (int jd = start; jd < end; ++jd) list.append(QDateTime(QDate::fromJulianDay(jd), QTime::fromMSecsSinceStartOfDay(0))); return list; } -QVector tst_QDateTime::norse(qint64 start, qint64 end) +QList tst_QDateTime::norse(qint64 start, qint64 end) { const QTimeZone cet("Europe/Oslo"); - QVector list; + QList list; list.reserve(end - start); for (int jd = start; jd < end; ++jd) list.append(QDateTime(QDate::fromJulianDay(jd), QTime::fromMSecsSinceStartOfDay(0), cet)); diff --git a/tests/benchmarks/corelib/time/qtimezone/main.cpp b/tests/benchmarks/corelib/time/qtimezone/main.cpp index 133e6451bc..509d62d3bb 100644 --- a/tests/benchmarks/corelib/time/qtimezone/main.cpp +++ b/tests/benchmarks/corelib/time/qtimezone/main.cpp @@ -51,32 +51,24 @@ private Q_SLOTS: void transitionsReverse(); }; -static QVector enoughZones() +static QList enoughZones() { #ifdef EXHAUSTIVE auto available = QTimeZone::availableTimeZoneIds(); - QVector result; + QList result; result.reserve(available.size() + 1); for (conat auto &name : available) result << name; #else - QVector result{ - QByteArray("UTC"), - // Those named overtly in tst_QDateTime: - QByteArray("Europe/Oslo"), - QByteArray("America/Vancouver"), - QByteArray("Europe/Berlin"), - QByteArray("America/Sao_Paulo"), - QByteArray("Pacific/Auckland"), - QByteArray("Australia/Eucla"), - QByteArray("Asia/Kathmandu"), - QByteArray("Pacific/Kiritimati"), - QByteArray("Pacific/Apia"), - QByteArray("UTC+12:00"), - QByteArray("Australia/Sydney"), - QByteArray("Asia/Singapore"), - QByteArray("Australia/Brisbane") - }; + QList result { QByteArray("UTC"), + // Those named overtly in tst_QDateTime: + QByteArray("Europe/Oslo"), QByteArray("America/Vancouver"), + QByteArray("Europe/Berlin"), QByteArray("America/Sao_Paulo"), + QByteArray("Pacific/Auckland"), QByteArray("Australia/Eucla"), + QByteArray("Asia/Kathmandu"), QByteArray("Pacific/Kiritimati"), + QByteArray("Pacific/Apia"), QByteArray("UTC+12:00"), + QByteArray("Australia/Sydney"), QByteArray("Asia/Singapore"), + QByteArray("Australia/Brisbane") }; #endif result << QByteArray("Vulcan/ShiKahr"); // invalid: also worth testing return result; diff --git a/tests/benchmarks/corelib/tools/containers-sequential/main.cpp b/tests/benchmarks/corelib/tools/containers-sequential/main.cpp index 64d3dd5733..6874c69abc 100644 --- a/tests/benchmarks/corelib/tools/containers-sequential/main.cpp +++ b/tests/benchmarks/corelib/tools/containers-sequential/main.cpp @@ -25,10 +25,10 @@ ** $QT_END_LICENSE$ ** ****************************************************************************/ -// This file contains benchmarks for comparing QVector against std::vector +// This file contains benchmarks for comparing QList against std::vector #include -#include +#include #include #include @@ -51,13 +51,13 @@ T * f(T *ts) // dummy function to prevent code from being optimized away by the return ts; } -// This subclass implements the use cases using QVector as efficiently as possible. -template -class UseCases_QVector : public UseCases +// This subclass implements the use cases using QList as efficiently as possible. +template +class UseCases_QList : public UseCases { void insert(int size) { - QVector v; + QList v; T t; QBENCHMARK { for (int i = 0; i < size; ++i) @@ -67,7 +67,7 @@ class UseCases_QVector : public UseCases void lookup(int size) { - QVector v; + QList v; T t; for (int i = 0; i < size; ++i) @@ -127,17 +127,17 @@ class tst_vector_vs_std : public QObject public: tst_vector_vs_std() { - useCases_QVector_int = new UseCases_QVector; + useCases_QList_int = new UseCases_QList; useCases_stdvector_int = new UseCases_stdvector; - useCases_QVector_Large = new UseCases_QVector; + useCases_QList_Large = new UseCases_QList; useCases_stdvector_Large = new UseCases_stdvector; } private: - UseCases *useCases_QVector_int; + UseCases *useCases_QList_int; UseCases *useCases_stdvector_int; - UseCases *useCases_QVector_Large; + UseCases *useCases_QList_Large; UseCases *useCases_stdvector_Large; private slots: @@ -159,7 +159,7 @@ void tst_vector_vs_std::insert_int_data() for (int size = 10; size < 20000; size += 100) { const QByteArray sizeString = QByteArray::number(size); QTest::newRow(QByteArray("std::vector-int--" + sizeString).constData()) << true << size; - QTest::newRow(QByteArray("QVector-int--" + sizeString).constData()) << false << size; + QTest::newRow(QByteArray("QList-int--" + sizeString).constData()) << false << size; } } @@ -171,7 +171,7 @@ void tst_vector_vs_std::insert_int() if (useStd) useCases_stdvector_int->insert(size); else - useCases_QVector_int->insert(size); + useCases_QList_int->insert(size); } void tst_vector_vs_std::insert_Large_data() @@ -182,7 +182,7 @@ void tst_vector_vs_std::insert_Large_data() for (int size = 10; size < LARGE_MAX_SIZE; size += 100) { const QByteArray sizeString = QByteArray::number(size); QTest::newRow(QByteArray("std::vector-Large--" + sizeString).constData()) << true << size; - QTest::newRow(QByteArray("QVector-Large--" + sizeString).constData()) << false << size; + QTest::newRow(QByteArray("QList-Large--" + sizeString).constData()) << false << size; } } @@ -194,7 +194,7 @@ void tst_vector_vs_std::insert_Large() if (useStd) useCases_stdvector_Large->insert(size); else - useCases_QVector_Large->insert(size); + useCases_QList_Large->insert(size); } void tst_vector_vs_std::lookup_int_data() @@ -205,7 +205,7 @@ void tst_vector_vs_std::lookup_int_data() for (int size = 10; size < 20000; size += 100) { const QByteArray sizeString = QByteArray::number(size); QTest::newRow(QByteArray("std::vector-int--" + sizeString).constData()) << true << size; - QTest::newRow(QByteArray("QVector-int--" + sizeString).constData()) << false << size; + QTest::newRow(QByteArray("QList-int--" + sizeString).constData()) << false << size; } } @@ -217,7 +217,7 @@ void tst_vector_vs_std::lookup_int() if (useStd) useCases_stdvector_int->lookup(size); else - useCases_QVector_int->lookup(size); + useCases_QList_int->lookup(size); } void tst_vector_vs_std::lookup_Large_data() @@ -228,7 +228,7 @@ void tst_vector_vs_std::lookup_Large_data() for (int size = 10; size < LARGE_MAX_SIZE; size += 100) { const QByteArray sizeString = QByteArray::number(size); QTest::newRow(QByteArray("std::vector-Large--" + sizeString).constData()) << true << size; - QTest::newRow(QByteArray("QVector-Large--" + sizeString).constData()) << false << size; + QTest::newRow(QByteArray("QList-Large--" + sizeString).constData()) << false << size; } } @@ -240,7 +240,7 @@ void tst_vector_vs_std::lookup_Large() if (useStd) useCases_stdvector_Large->lookup(size); else - useCases_QVector_Large->lookup(size); + useCases_QList_Large->lookup(size); } QTEST_MAIN(tst_vector_vs_std) diff --git a/tests/benchmarks/corelib/tools/qalgorithms/tst_qalgorithms.cpp b/tests/benchmarks/corelib/tools/qalgorithms/tst_qalgorithms.cpp index a4ad3a08a8..ea116a4006 100644 --- a/tests/benchmarks/corelib/tools/qalgorithms/tst_qalgorithms.cpp +++ b/tests/benchmarks/corelib/tools/qalgorithms/tst_qalgorithms.cpp @@ -36,7 +36,7 @@ #include #include #include -#include +#include using namespace std; @@ -51,10 +51,10 @@ private slots: void sort(); }; -template -QVector generateData(QString dataSetType, const int length) +template +QList generateData(QString dataSetType, const int length) { - QVector container; + QList container; if (dataSetType == "Random") { for (int i = 0; i < length; ++i) container.append(QRandomGenerator::global()->generate()); @@ -88,7 +88,7 @@ QVector generateData(QString dataSetType, const int length) void tst_QAlgorithms::stableSort_data() { const int dataSize = 5000; - QTest::addColumn >("unsorted"); + QTest::addColumn>("unsorted"); QTest::newRow("Equal") << (generateData("Equal", dataSize)); QTest::newRow("Ascending") << (generateData("Ascending", dataSize)); QTest::newRow("Descending") << (generateData("Descending", dataSize)); @@ -98,10 +98,10 @@ void tst_QAlgorithms::stableSort_data() void tst_QAlgorithms::stableSort() { - QFETCH(QVector, unsorted); + QFETCH(QList, unsorted); QBENCHMARK { - QVector sorted = unsorted; + QList sorted = unsorted; qStableSort(sorted.begin(), sorted.end()); } } @@ -113,10 +113,10 @@ void tst_QAlgorithms::sort_data() void tst_QAlgorithms::sort() { - QFETCH(QVector, unsorted); + QFETCH(QList, unsorted); QBENCHMARK { - QVector sorted = unsorted; + QList sorted = unsorted; qSort(sorted.begin(), sorted.end()); } } diff --git a/tests/benchmarks/corelib/tools/qvector/outofline.cpp b/tests/benchmarks/corelib/tools/qvector/outofline.cpp index 7182a43008..daa630efe1 100644 --- a/tests/benchmarks/corelib/tools/qvector/outofline.cpp +++ b/tests/benchmarks/corelib/tools/qvector/outofline.cpp @@ -26,7 +26,7 @@ ** ****************************************************************************/ -#include +#include #include #include "qrawvector.h" -- cgit v1.2.3