aboutsummaryrefslogtreecommitdiffstats
path: root/tests/benchmarks
diff options
context:
space:
mode:
authorhjk <qtc-committer@nokia.com>2009-05-26 15:52:53 +0200
committerhjk <qtc-committer@nokia.com>2009-05-26 15:54:22 +0200
commitaf4fcde1c2a17276f2d7b360c19a0493a78b4a0e (patch)
tree4b1088f016bc92f196a69bb21755111f8dcdd5b6 /tests/benchmarks
parentda2c44ee027569298724098995ef47298251de4d (diff)
qstringlist: polishing
Make operator% only act on types we want to handle. Also add a benchmark for comparison with QString::reserve();
Diffstat (limited to 'tests/benchmarks')
-rw-r--r--tests/benchmarks/qstringbuilder/main.cpp49
1 files changed, 49 insertions, 0 deletions
diff --git a/tests/benchmarks/qstringbuilder/main.cpp b/tests/benchmarks/qstringbuilder/main.cpp
index b8f087346b..6cecfba6b4 100644
--- a/tests/benchmarks/qstringbuilder/main.cpp
+++ b/tests/benchmarks/qstringbuilder/main.cpp
@@ -217,6 +217,48 @@ private slots:
QBENCHMARK { result = ba + ba + ba; }
}
+
+ void separator_9() { SEP("QString::reserve()"); }
+
+ void b_reserve() {
+ QBENCHMARK {
+ r.clear();
+ r = string % string % string % string;
+ }
+ COMPARE(r, string + string + string + string);
+ }
+ void b_reserve_lit() {
+ QBENCHMARK {
+ r.clear();
+ r = string % l1literal % string % string;
+ }
+ COMPARE(r, string + string + string + string);
+ }
+ void s_reserve() {
+ QBENCHMARK {
+ r.clear();
+ r.reserve(string.size() + string.size() + string.size() + string.size());
+ r += string;
+ r += string;
+ r += string;
+ r += string;
+ }
+ COMPARE(r, string + string + string + string);
+ }
+ void s_reserve_lit() {
+ QBENCHMARK {
+ r.clear();
+ //r.reserve(string.size() + qstrlen(l1string.latin1())
+ // + string.size() + string.size());
+ r.reserve(1024);
+ r += string;
+ r += l1string;
+ r += string;
+ r += string;
+ }
+ COMPARE(r, string + string + string + string);
+ }
+
private:
const QLatin1Literal l1literal;
const QLatin1String l1string;
@@ -229,8 +271,15 @@ private:
};
+//void operator%(QString, int) {}
+
int main(int argc, char *argv[])
{
+ 42 % 3; // Sanity test, should always work.
+
+ //QString("x") % 2; // Sanity test, should only compile when the
+ // operator%(QString, int) is visible.
+
if (argc == 2 && (argv[1] == L("--run-builder") || argv[1] == L("-b"))) {
tst_qstringbuilder test;
return test.run_builder();