summaryrefslogtreecommitdiffstats
path: root/tests/benchmarks/corelib
Commit message (Collapse)AuthorAgeFilesLines
* Update contact information in license headers.Sergio Ahumada2012-08-0143-86/+86
| | | | | | | | | | | | | - Replace Nokia contact email address with Qt Project website. - Remove "All rights reserved" line from license headers. As in the past, to avoid rewriting various autotests that contain line-number information, an extra blank line has been inserted at the end of the license text to ensure that this commit does not change the total number of lines in the license header. Change-Id: Ie7ba62011752fcb149b99b26317c54f2a0cfa931 Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
* Optimise QFile::seek that doesn't move the file pointerShane Kearns2012-03-131-0/+104
| | | | | | | | | If the seek position matches the current file position, then avoid doing an implicit flush that could be expensive. Change-Id: I019858ffb36fe832b9aee8da0a7803cafc8f7f75 Reviewed-by: Jaakko Helanti <ext-jaakko.helanti@nokia.com> Reviewed-by: João Abecasis <joao.abecasis@nokia.com>
* test: Split `qcontiguouscache' unit and benchmark testsSergio Ahumada2012-02-033-0/+194
| | | | | | | | | | | | | | Moving three benchmark tests from 'tests/auto' to 'tests/benchmarks'. Also removing 'qttest_p4' usage while we are at it. - void asScrollingList(); - void cacheBenchmark(); - void contiguousCacheBenchmark(); were moved to 'tests/benchmarks/corelib/tools/qcontiguouscache' Change-Id: Ie6ca7f55db2a218f3ccf699744cb721a8a1e2363 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Update year in Nokia copyright messages.Jason McDonald2012-01-1142-42/+42
| | | | | | | | | Simple search and replace. This commit doesn't touch 3rd-party files, nor translations (where the change is not so simple and will be handled in a separate commit). Change-Id: I4e48513b8078a44a8cd272326685b25338890148 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* tests: make tests compile or disable those which don't compileSergio Ahumada2011-12-0711-17/+17
| | | | | | | | | These changes are mostly a backport from qtbase and a fix to those tests that are dependent on private APIs. Change-Id: I6e647583d7aaddf525d719c3b61f59a0c9aedf74 Reviewed-by: Rohan McGovern Reviewed-by: Friedemann Kleint
* Fix permission (no execute bit).Frederik Gladhorn2011-11-223-0/+0
|
* Merge branch 'master' of scm.dev.nokia.troll.no:qt/qt-symbian-staging into ↵Qt Continuous Integration System2011-11-011-2/+2
|\ | | | | | | | | | | | | | | master-integration * 'master' of scm.dev.nokia.troll.no:qt/qt-symbian-staging: Supporting parallel pointer event delivery on Symbian Removed unix specific mmap use from QString benchmark
| * Removed unix specific mmap use from QString benchmarkmread2011-10-281-2/+2
| | | | | | | | | | | | | | | | | | The mmap flags MAP_ANONYMOUS and MAP_POPULATE are unix specific, and are not supported by Symbian's posix headers. The benchmark code using them, already unix-only, now is removed from Symbian builds. Task-number: QTBUG-18197 Reviewed-by: Shane Kearns
* | Fix performance regression on Mac OS X when creating/destroying QMutexBradley T. Hughes2011-10-211-0/+19
|/ | | | | | | | | | | | This reverts commit cf17b743d2fe84ab259b7232ab07b58a1872e18e, which changed QMutex to use a Mach semaphore_t on Mac OS X. We now use pthread_mutex_t on Mac OS X as well. Contention performance is mostly unchanged, but the new constructionQMutex() benchmark added in this commit shows that creating/destroying a semaphore_t is about 20 times slower than pthread_mutex_t. Reviewed-by: Olivier Goffart Reviewed-by: João Abecasis
* Removing accidental use of double instead of qreal from QLinemread2011-10-063-0/+170
| | | | | | | | | | | | | | | | | | | QLine contained a number of places where conversions and calculations were done as double where qreal should have been used instead. This is caused by the use of raw floating point literals. The fix is to construct the literals as qreal. The angle conversions are simplified to reduce the risk of a growing loss of precision from this change. On Symbian, where qreal is float, this gives a 5-10% performance improvement to the affected functions, as tested by a new benchmark test. The auto tests pass, these contain precision tests which indicates that there is no significant loss of precision with this change. On Windows, where qreal is double, this has no significant effect on performance. Task-number: QTBUG-4894 Reviewed-by: Shane Kearns
* optimize QList::removeAll()Ritt Konstantin2011-08-123-0/+256
| | | | | | | | | | | | | | | | | | | | | | | | | | a) don't detach until an occurrence found b) don't memmove every time an occurrence found c) truncate quickly ) well, numbers are better than words: before: RESULT : tst_QList::removeAll_primitive(): 2,617,902 CPU ticks per iteration (total: 261,790,171, iterations: 100) RESULT : tst_QList::removeAll_movable(): 2,547,540 CPU ticks per iteration (total: 254,753,960, iterations: 100) RESULT : tst_QList::removeAll_complex(): 16,852,099 CPU ticks per iteration (total: 1,685,209,906, iterations: 100) after: RESULT : tst_QList::removeAll_primitive(): 73,520 CPU ticks per iteration (total: 73,520,442, iterations: 1000) RESULT : tst_QList::removeAll_movable(): 90,422 CPU ticks per iteration (total: 90,422,464, iterations: 1000) RESULT : tst_QList::removeAll_complex(): 9,667,073 CPU ticks per iteration (total: 9,667,072,670, iterations: 1000) Merge-request: 1285 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* Compile on symbian^3Jo Asplin2011-07-262-0/+10
| | | | | | | | | Applies the fix of Commit 9c1e358df4b0af1a6299ea7932f8b2e8af840873 (review by Liang Qi) to four more test cases. Change-Id: I1483d4b7c2aecde960af5d98fb8b772aeba20ec5 Reviewed-by: Sergio Ahumada Reviewed-by: Liang Qi
* add a benchmark for QCFStringRitt Konstantin2011-06-091-0/+100
| | | | | | | optimizations follows... Merge-request: 2615 Reviewed-by: Denis Dzyubenko <denis.dzyubenko@nokia.com>
* Merge remote-tracking branch 'origin/4.8'Olivier Goffart2011-05-2441-681/+683
|\
| * Merge branch 'master' of scm.dev.nokia.troll.no:qt/qt-symbian-staging into ↵Qt Continuous Integration System2011-05-201-0/+2
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | master-integration * 'master' of scm.dev.nokia.troll.no:qt/qt-symbian-staging: Increased EPOCHEAPSIZE for qpainter benchmark Increased EPOCHEAPSIZE for few benchmarks Update Symbian DEF-files Improve DEFINES crossplatform compatibility in Symbian builds. Freezing the QtCore defs again for 4.8.
| | * Increased EPOCHEAPSIZE for few benchmarksMiikka Heikkinen2011-05-181-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | Insufficient heap size was causing containers-sequential and qgraphicsscene benchmarks to panic in Symbian^1 devices. Task-number: QTBUG-17725 Reviewed-by: Sami Merila
| * | Update licenseheader text in source files for qt4.8Jyri Tahtela2011-05-1340-681/+681
| |/ | | | | | | | | | | | | Updated version of LGPL and FDL licenseheaders. Apply release phase licenseheaders for all source files. Reviewed-by: Trust Me
* | Add QUuid::toRfc4122() and fromRfc4122()Liang Qi2011-05-201-0/+18
| | | | | | | | | | | | | | | | | | | | | | Following the RFC4122, provide the interfaces between QUuid and QByteArray, they are simpler then toByteArray() and relevant. Thanks for the suggestion and brief code from Robin Burchell. Task-number: QTBUG-19420 Reviewed-by: joao
* | Add QUuid::toByteArray() and relevantLiang Qi2011-05-201-0/+18
| | | | | | | | | | | | | | | | Add QUuid::toByteArray() and QUuid(const QByteArray &). Same behavior with QUuid::toString() and QUuid(const QString &). Task-number: QTBUG-19419 Reviewed-by: joao
* | Add some autotests and benchmarks for QUuidLiang Qi2011-05-201-0/+89
|/ | | | | | Missing those functions for optimization. Reviewed-by: joao
* Cleaned up benchmark project files.jasplin2011-04-261-1/+3
| | | | Reviewed-by: Sergio Ahumada
* Merge remote branch 'qt-master/master'Guoqing Zhang2011-04-0512-22/+73541
|\
| * Add a once-over unrolled fromLatin1 conversion (32 characters)Thiago Macieira2011-03-271-0/+46
| | | | | | | | | | This was suggested by Matthias Kretz on my blog. It improves on GCC (one case up to 5%), but worsens on ICC (up to 5%).
| * Add 16-byte loads of the Neon fromLatin1 functionsThiago Macieira2011-03-271-0/+68
| |
| * Remove the use of the QtTest baseline feature I revertedThiago Macieira2011-03-221-4/+4
| |
| * Use the ARM version of UTF-8 detection in the Neon codeThiago Macieira2011-03-221-16/+13
| |
| * Update the data files for the QString benchmark testThiago Macieira2011-03-223-204/+71503
| | | | | | | | Also add the Neon build flags
| * Fix a bug in the SSE2 UTF-8 decoder.Thiago Macieira2011-03-221-0/+4
| | | | | | | | | | If the multibyte sequence crossed the end of the SSE2 area, then len would have a wrong value and the data wouldn't be read.
| * Add ARM Neon versions of fromLatin1 and fromUtf8Thiago Macieira2011-03-221-0/+192
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The fromLatin1 code is very simple, yet the handwritten assembly performs better due to the use of post-increments. The fromUtf8 code has two alternatives. Neon lacks an instruction similar to SSE2's _mm_movemask_epi8 (PMOVMSKB) which extracts one bit from each byte and stores it in a register. We used that in the UTF-8 code to detect bytes with the highest bit set. To compensate, we used two alternatives: 1) AND the comparison result with a vector containing {128, 64, ...,1 } Do 3 parallel-adds (VPADD.I8), which will make the mask propagate to the lowest component in the vector. Trick found in: http://hilbert-space.de/?p=22 (comment 16-17) 2) Extract the two words from the doubleword Neon register and do the work in ARM assembly. It looks like the latter version is performing better.
| * Make this compile on Atom/Core2 (no SSE4) and on ARM (no SSE)Thiago Macieira2011-03-221-1/+18
| |
| * Add baselines and zeros to the benchmarks.Thiago Macieira2011-03-221-6/+13
| |
| * Add an UTF-8 conversion on trusted data and no BOM.Thiago Macieira2011-03-221-0/+48
| | | | | | | | | | This assumes that there are no overlong sequences, no continuation characters without the leading, no missing continuations and no BOM.
| * Make it easier to write a UTF-8 conversion on trusted dataThiago Macieira2011-03-221-38/+58
| |
| * Add the missing tests and 4-byte UTF-8 sequencesThiago Macieira2011-03-221-1/+23
| |
| * Improve the code and avoid unnecessary storesThiago Macieira2011-03-221-7/+9
| | | | | | | | | | If there's an UTF-8 high byte in the first 8 bytes, don't try to save the latter 8 characters
| * Add an UTF-8 conversion optimised for ASCII using SSE2Thiago Macieira2011-03-221-1/+54
| | | | | | | | | | This code is 2x faster than the original UTF-8 code and within 35% of the pure Latin1 code
| * Add an UTF-8 conversion code that is optimised for ASCIIThiago Macieira2011-03-221-2/+94
| | | | | | | | This code is ~1.5x faster than the original UTF-8 code
| * Add a stateless copy of the Qt 4.7 UTF-8 codec.Thiago Macieira2011-03-221-0/+99
| | | | | | | | For whatever reason, this code is worse than the stateful code...
| * Add UTF-8 code benchmarksThiago Macieira2011-03-221-0/+223
| | | | | | | | | | | | Also compare to the Latin1 functions. The UTF-8 algorithm in Qt 4.7 right now is 109% slower than the unoptimised Latin-1 algo, 120% than the Qt 4.7 SSE2 code
| * Improve a little more the core loop and propagate to the other codeThiago Macieira2011-03-221-18/+22
| | | | | | | | | | | | Currently are that the "improved SSE2" version and the SSE4.1 version are yielding the best results, within 1% of each other. These results are around 20% better than the Qt 4.7 code.
| * Reduce the number of operations in the main loopThiago Macieira2011-03-221-8/+7
| | | | | | | | | | | | The more operations there are, the more time it takes. More importantly, the more variables we touch, the more the compiler may want to use the stack instead of registers.
| * Add an SSE4 version using PMOVZXBW and PSRLDQThiago Macieira2011-03-221-0/+22
| |
| * Attempt to improve the epilog codeThiago Macieira2011-03-221-19/+72
| |
| * Add two SIMD overcommit prologsThiago Macieira2011-03-221-0/+21
| |
| * Try to remove the non-determinism by moving the malloc() awayThiago Macieira2011-03-221-10/+15
| |
| * Optimise the prolog even furtherThiago Macieira2011-03-221-16/+33
| |
| * Try to improve the prolog by doing less operationsThiago Macieira2011-03-221-7/+7
| |
| * Add an unrolled prologThiago Macieira2011-03-221-1/+22
| |
| * Make the prolog function more genericThiago Macieira2011-03-221-12/+6
| |
| * Add an SSE2 alternative with prologThiago Macieira2011-03-221-0/+48
| |