summaryrefslogtreecommitdiffstats
path: root/tests/benchmarks
diff options
context:
space:
mode:
authorDavid Faure <david.faure@kdab.com>2017-03-03 14:06:49 +0100
committerDavid Faure <david.faure@kdab.com>2017-01-03 13:37:49 +0000
commita8ae8e3130fe4953ebfd54bce15648f58cd3f5be (patch)
treebe441c4211e3e1ce3a1d37f353b485e8056a8e85 /tests/benchmarks
parent9449325f2b234981a2ecc1b0a0bd6ec74f30ff6c (diff)
QDateTime::fromString(): improve performance by 33%
getMaximum() and getMinimum(), called during parsing, create new QDateTime instances, which on Linux end up calling mktime(). Making these static (for the common case of LocalTime spec) improves performance dramatically, when parsing several date/times. tests/benchmarks/corelib/tools/qdatetime/ (after fixing it to actually parse a valid date/time) says: RESULT : tst_QDateTime::fromString(): - 36,742,060 instruction reads per iteration (total: 36,742,060, iterations: 1) + 24,230,060 instruction reads per iteration (total: 24,230,060, iterations: 1) Change-Id: I0c3931285475bf19a5be8cba1486ed07cbf5e134 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'tests/benchmarks')
-rw-r--r--tests/benchmarks/corelib/tools/qdatetime/main.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/tests/benchmarks/corelib/tools/qdatetime/main.cpp b/tests/benchmarks/corelib/tools/qdatetime/main.cpp
index 8f43a412b7..2c1e3d97ae 100644
--- a/tests/benchmarks/corelib/tools/qdatetime/main.cpp
+++ b/tests/benchmarks/corelib/tools/qdatetime/main.cpp
@@ -547,8 +547,9 @@ void tst_QDateTime::currentMSecsSinceEpoch()
void tst_QDateTime::fromString()
{
- QString format = "yyy-MM-dd hh:mm:ss.zzz t";
- QString input = "2010-01-01 13:12:11.999 UTC";
+ QString format = "yyyy-MM-dd hh:mm:ss.zzz";
+ QString input = "2010-01-01 13:12:11.999";
+ QVERIFY(QDateTime::fromString(input, format).isValid());
QBENCHMARK {
for (int i = 0; i < 1000; ++i)
QDateTime::fromString(input, format);