diff options
author | Robin Burchell <robin.burchell@collabora.com> | 2012-01-20 01:54:43 +0200 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-01-24 01:09:05 +0100 |
commit | 1806ea8dd9c5849ea70389d5c3baf66137242d8e (patch) | |
tree | a2027b5bb7467c1770c158f28f4a2e4ba643bf2d /tests/benchmarks | |
parent | 47d0813f5b3b7df56a3ac4b32c460d82b425c664 (diff) |
Add the capability to use multiple data sources for qhash benchmark.
More data sources to be added in followup commits.
Change-Id: I0393119b36ac5d88fc2c5c8d46b000d13d5ca996
Reviewed-by: Richard J. Moore <rich@kde.org>
Diffstat (limited to 'tests/benchmarks')
-rw-r--r-- | tests/benchmarks/corelib/tools/qhash/main.cpp | 51 | ||||
-rw-r--r-- | tests/benchmarks/corelib/tools/qhash/paths_small_data.txt (renamed from tests/benchmarks/corelib/tools/qhash/data.txt) | 0 |
2 files changed, 31 insertions, 20 deletions
diff --git a/tests/benchmarks/corelib/tools/qhash/main.cpp b/tests/benchmarks/corelib/tools/qhash/main.cpp index 412f071a99..f9aec58485 100644 --- a/tests/benchmarks/corelib/tools/qhash/main.cpp +++ b/tests/benchmarks/corelib/tools/qhash/main.cpp @@ -54,12 +54,15 @@ class tst_QHash : public QObject Q_OBJECT private slots: + void qhash_qt4_data() { data(); } void qhash_qt4(); + void qhash_faster_data() { data(); } void qhash_faster(); + void javaString_data() { data(); } void javaString(); private: - QString data(); + void data(); }; const int N = 1000000; @@ -67,49 +70,57 @@ extern double s; ///////////////////// QHash ///////////////////// -QString tst_QHash::data() +void tst_QHash::data() { - QFile file("data.txt"); - file.open(QIODevice::ReadOnly); - return QString::fromLatin1(file.readAll()); + QFile smallPathsData("paths_small_data.txt"); + smallPathsData.open(QIODevice::ReadOnly); + + QTest::addColumn<QStringList>("items"); + QTest::newRow("paths-small") + << QString::fromLatin1(smallPathsData.readAll()).split(QLatin1Char('\n')); } void tst_QHash::qhash_qt4() { - QStringList items = data().split(QLatin1Char('\n')); + QFETCH(QStringList, items); + QStringList realitems = items; // for copy/paste ease between benchmarks QHash<QString, int> hash; - + QBENCHMARK { - for (int i = 0, n = items.size(); i != n; ++i) { - hash[items.at(i)] = i; + for (int i = 0, n = realitems.size(); i != n; ++i) { + hash[realitems.at(i)] = i; } } } void tst_QHash::qhash_faster() { - QList<String> items; - foreach (const QString &s, data().split(QLatin1Char('\n'))) - items.append(s); + QFETCH(QStringList, items); QHash<String, int> hash; - + + QList<String> realitems; + foreach (const QString &s, items) + realitems.append(s); + QBENCHMARK { - for (int i = 0, n = items.size(); i != n; ++i) { - hash[items.at(i)] = i; + for (int i = 0, n = realitems.size(); i != n; ++i) { + hash[realitems.at(i)] = i; } } } void tst_QHash::javaString() { - QList<JavaString> items; - foreach (const QString &s, data().split(QLatin1Char('\n'))) - items.append(s); + QFETCH(QStringList, items); QHash<JavaString, int> hash; + QList<JavaString> realitems; + foreach (const QString &s, items) + realitems.append(s); + QBENCHMARK { - for (int i = 0, n = items.size(); i != n; ++i) { - hash[items.at(i)] = i; + for (int i = 0, n = realitems.size(); i != n; ++i) { + hash[realitems.at(i)] = i; } } } diff --git a/tests/benchmarks/corelib/tools/qhash/data.txt b/tests/benchmarks/corelib/tools/qhash/paths_small_data.txt index d5acd28820..d5acd28820 100644 --- a/tests/benchmarks/corelib/tools/qhash/data.txt +++ b/tests/benchmarks/corelib/tools/qhash/paths_small_data.txt |