diff options
Diffstat (limited to 'tests/benchmarks/corelib/tools/qmap/main.cpp')
-rw-r--r-- | tests/benchmarks/corelib/tools/qmap/main.cpp | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/tests/benchmarks/corelib/tools/qmap/main.cpp b/tests/benchmarks/corelib/tools/qmap/main.cpp index 05b52ba42f..c11e54ff1d 100644 --- a/tests/benchmarks/corelib/tools/qmap/main.cpp +++ b/tests/benchmarks/corelib/tools/qmap/main.cpp @@ -60,6 +60,10 @@ private slots: void lookup_string_int(); void iteration(); + void toStdMap(); + void iterator_begin(); + + void ctorStdMap(); }; @@ -159,6 +163,46 @@ void tst_QMap::iteration() } } +void tst_QMap::toStdMap() +{ + QMap<int, int> map; + for (int i = 0; i < 100000; ++i) + map.insert(i, i); + + QBENCHMARK { + std::map<int, int> n = map.toStdMap(); + n.begin(); + } +} + +void tst_QMap::iterator_begin() +{ + QMap<int, int> map; + for (int i = 0; i < 100000; ++i) + map.insert(i, i); + + QBENCHMARK { + for (int i = 0; i < 100000; ++i) { + QMap<int, int>::const_iterator it = map.constBegin(); + QMap<int, int>::const_iterator end = map.constEnd(); + if (it == end) // same as if (false) + ++it; + } + } +} + +void tst_QMap::ctorStdMap() +{ + std::map<int, int> map; + for (int i = 0; i < 100000; ++i) + map.insert(std::pair<int, int>(i, i)); + + QBENCHMARK { + QMap<int, int> qmap(map); + qmap.constBegin(); + } +} + QTEST_MAIN(tst_QMap) |