summaryrefslogtreecommitdiffstats
path: root/tests/benchmarks
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch '4.7' of scm.dev.nokia.troll.no:qt/qt-qml into qtquick11Martin Jones2011-01-19220-220/+220
|\
| * Update copyright year to 2011.Jason McDonald2011-01-10220-220/+220
| | | | | | | | Reviewed-by: Trust Me
* | Merge branch '4.7' of scm.dev.nokia.troll.no:qt/qt-qml into qtquick11Martin Jones2010-12-012-0/+139
|\ \ | |/
| * Fix code styleJan-Arve Sæther2010-11-191-1/+1
| |
| * Improve performance of hfw in qgridlayoutengine by adding more caching.Jan-Arve Sæther2010-11-192-0/+139
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The previous code tried to do caching of queries with constraints too, but it's usecase was rather limited. The caching worked for the simple case of effectiveSizeHint(Qt::PreferredSize, QSize(10, -1)); effectiveSizeHint(Qt::PreferredSize, QSize(10, -1)); // uses cache The problem was that if somebody called this sequence: effectiveSizeHint(Qt::PreferredSize, QSize(10, -1)); effectiveSizeHint(Qt::PreferredSize, QSize(-1, -1)); effectiveSizeHint(Qt::PreferredSize, QSize(10, -1)); Each call would disregard the cache because the constraint was different. Now the pattern is used in the qgridlayoutengine itself when we calculate hfw: (yes, height-for-width). First, we ask for the horizontal size hints with no constraints. Then, we'll ask for the vertical size hints with constraints. Since horizontal and vertical ultimately comes from the same function (effectiveSizeHint) it will invalidate the cache each time. The solution is to add another cache for the sizeHints with constraints. The most notable improvement is in the hfw, nested case. Result: RESULT : tst_QGraphicsLinearLayout::heightForWidth():"hfw, nested": 546 msecs per iteration (total: 546, iterations: 1) RESULT : tst_QGraphicsLinearLayout::heightForWidth():"hfw, nested": 0.000029 msecs per iteration (total: 62, iterations: 2097152) Improvement: 18,827,586 times faster (!!)
* | Make deferred tracing less expensive (real-time cost is the same)Michael Brasser2010-11-191-0/+11
| |
* | Add a private high-performance timer for profiling.Michael Brasser2010-11-192-0/+97
|/
* fix tst_headersHarald Fernengel2010-11-102-2/+4
| | | | | Fix the generator and the generated file to ensure that the string "generated" appears in the first line.
* fix build on mingwKonstantin Ritt2010-11-083-15/+15
| | | | | | | | | | | | | | | | | | | | | | > data.cpp:2: error: 'ushort' does not name a type > data.cpp:1133: error: 'ushort' does not name a type and lot of > data.cpp:1276: error: too many initializers for 'StringCollection' when the issue with ushort is fixed (by including qglobal.h, for example) a bunch of some new build errors occurs: > data.cpp:4: error: 'stringCollectionData' was declared 'extern' and later 'static' > data.h:54: error: previous declaration of 'stringCollectionData' > data.cpp:1131: error: redefinition of 'struct StringCollection' > data.h:48: error: previous definition of 'struct StringCollection' > data.cpp:1136: error: invalid type in declaration before '=' token > data.cpp:1136: error: conflicting declaration 'int stringCollection []' > data.h:55: error: 'stringCollection' has a previous declaration as 'StringCollection stringCollection [] > data.cpp:1279: error: 'stringCollectionCount' was declared 'extern' and later 'static' > data.h:56: error: previous declaration of 'stringCollectionCount' Merge-request: 910 Reviewed-By: Thiago Macieira <thiago.macieira@nokia.com>
* Fix conflict between QDeclarativeGraphics_DerivedObject declared both in ↵Joona Petrell2010-10-201-2/+2
| | | | | | | qdeclarativeglobal and tst_creation.cpp Task-number: Reviewed-by: Martin Jones
* Add additional documentation for the qmltime benchmark.Michael Brasser2010-10-181-1/+64
|
* Fix performance regression in QUuid::createUuid()Bradley T. Hughes2010-10-054-1/+76
| | | | | | | | | | | | | | | | | | | | | | After commit 4363d4eebce4afd2ce3b3d6da205f8037357099a, createUuid() would create a QFile, open it, read from it, and destroy it. This resulted in a pretty serious performance regression (report says around 2000 times slower, I measured 3600 times slower on my machine). This change creates one QFile per thread (since QFile is not thread safe) and leaves the file open until the thread exits (at which point QThreadStorage deletes the QFile). This approach is around 600 times faster than the current code, which is around 6 times slower than the original. Unfortunately, it is not possible to restore the original performance without reintroducing the problems that the commit mentioned above had fixed. Benchmark is included. Task-number: QTBUG-13877 Reviewed-by: thiago Reviewed-by: mgoetz
* Merge branch '4.7' of scm.dev.nokia.troll.no:qt/qt-qml into 4.7-integrationQt Continuous Integration System2010-09-3034-34/+34
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * '4.7' of scm.dev.nokia.troll.no:qt/qt-qml: (27 commits) Revert "QDeclarativeDebugService: Add bc autotest" to get changes through staging. Doc clarification. Fallback to A8 text rendering on Mac when LCD smoothing is disabled Recreate Qt 4.7 branch QtDeclarative def files on top of changes made to Qt 4.7.1 Autotest that new "import Qt 4.7"s aren't added accidentally Document "import QtQuick 1.0" change Replace "import Qt 4.7" with "import QtQuick 1.0" Add test for Qt 4.7 module Replace all occurances of "Qt 4.7" with "QtQuick 1.0" Correct property type of PathAttribute::value in the docs. Register QtQuick 1.0 module. Remove unused AST node destructors. Fix crash when trying to append a null transform to QDeclarativeItem. Documentation. Documentation fix for Flickable (mark content properties as real, not int). QDeclarativeDebugClient: Fix gcc warning QmlDebugService: Check that there is a receiver before sending messages If a type is registered under several names, share the attached property object QmlViewer: Fix typo in comment QmlViewer: Fix assert on exit (Windows) ...
| * Replace all occurances of "Qt 4.7" with "QtQuick 1.0"Aaron Kennedy2010-09-2934-34/+34
| | | | | | | | | | Task-number: QTBUG-13799 Reviewed-by: Martin Jones
* | SSL: Add benchmark for QSslSocket::systemCaCertificates()Markus Goetz2010-09-284-0/+120
|/ | | | | Task-number: QTBUG-14013 Reviewed-by: Peter Hartmann
* Add the missing license headers to the QString benchmark dataThiago Macieira2010-08-243-1/+44
|
* Unroll the SSSE3 code even more to avoid the need to keep an extra variable ↵Thiago Macieira2010-08-241-35/+53
| | | | | | for inverting the result On 32-bit, we're out of registers already, so this variable ended up in memory
* Don't try to compile the SSE2 and SSSE3 code with compilers that don't ↵Thiago Macieira2010-08-241-3/+11
| | | | support them (e.g. ARM)
* Improve on the SSSE3 with alternate aligning function.Thiago Macieira2010-08-241-38/+101
| | | | Even though this function *only* does aligned loads, it's worse than the other function
* Add the beginnings of a new SSSE3-based aligning algorithmThiago Macieira2010-08-241-1/+83
|
* Small fixupThiago Macieira2010-08-241-1/+1
|
* Update the SSSE3-with-alignment function to use aligned loads.Thiago Macieira2010-08-241-9/+11
| | | | | | This results in no change on the Core-i7, but another 2.6% on the Atom (so it's now 8% better than 4-byte loads and 31% better than current code)
* Add an ucstrncmp that uses SSSE3 with aligning.Thiago Macieira2010-08-241-1/+52
| | | | | | | | | | | The results on i7 are 32% improvement over current code, 13% improvement over 4-byte loads, 6% over the unaligned SSSE3 loads. However, it's about 2.5% slower than pure SSE2 code due to complexity. The results on Atom are 30% improvement over current code, 7% over 4-byte loads, 15% over pure unaligned SSE2 and 9% over unaligned SSSE3.
* Add an SSSE3 version of ucstrncmpThiago Macieira2010-08-241-1/+79
|
* Optimise the tail comparison of ucstrncmpThiago Macieira2010-08-241-2/+36
|
* Add a version of ucstrncmp with SSE2 with aligning.Thiago Macieira2010-08-241-1/+43
| | | | | | | | This is a different technique of aligning. Instead of reading some bytes before the string, we will read some bytes of the string twice. Best results are only 2% improvement over the unaligned SSE2 on a Core-i7.
* Add an SSE2-optimised version of ucstrncmpThiago Macieira2010-08-241-1/+38
| | | | | First results make it 34% faster than current ucstrncmp, 16% faster than the 32-bit version.
* Add the ucstrncmp benchmarksThiago Macieira2010-08-241-0/+136
|
* Update the data generation script to use a non-including .cppThiago Macieira2010-08-244-14/+23
| | | | | This speeds up the writing of algorithms, so I don't have to recompile megabytes of data dumps.
* Major improvements to the comparison functions.Thiago Macieira2010-08-242-188/+1770
| | | | | | Also use the real-world data that I collected. The resulting files are quite large, so I've added to Git only the smallest dump (apparently Teambuilder scanning the environment for "TEAMBUILDER=").
* Add a script to generate real-world data from applicationsThiago Macieira2010-08-241-0/+200
|
* Slightly better version that saves EBX in an XMM registerThiago Macieira2010-08-241-15/+20
|
* Add an SSE4.2 version of the string comparisonThiago Macieira2010-08-242-1/+43
| | | | | It's currently slightly worse than SSE2 with prolog aligning (i.e., it's no good)
* Add an SSSE3 version that uses palignr to align.Thiago Macieira2010-08-242-1/+112
| | | | | | | | | Instead of using a non-SIMD method for aligning, we instead load more bytes from p1 and use the PALIGNR instruction to realign to what we want. The result is that it's bit slower than the non-SIMD comparison, due to the complexity. For strings over 8 QChars wide, it's only slightly worse than the non-SIMD comparison.
* Add an SSE2 comparison with prologThiago Macieira2010-08-241-0/+38
| | | | | | | The prolog tries to align p1 to a multiple of 16, so as to run aligned loads, which are faster. Unfortunately, my tests so far indicate that the prolog ends up taking longer than the benefit of having aligned loads.
* Add a benchmark for SSE2 comparison.Thiago Macieira2010-08-242-0/+28
| | | | | This function uses unaligned loads. I'll try to write one with aligned loads later.
* Add a 4-byte comparison routine.Thiago Macieira2010-08-241-0/+48
| | | | This is a copy of qMemEquals from qstring.cpp
* Add some quick benchmarks for QChar comparisonThiago Macieira2010-08-241-1/+142
|
* Merge branch '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-1 into ↵Qt Continuous Integration System2010-08-181-0/+81
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4.7-integration * '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-1: Cocoa: revert parts of cc6dc0aeefde881a95f5fea2b26f2f3d7bdc6e15 Cocoa, Autotest: disable autotest that was added a bit premature make error messages consistent Add tests/benchmarks/README qgrayraster: Remove unnecessary indirection in QT_FT_Outline_Decompose Cocoa: add autotest to be more safe regarding child window stacking Fix compilation: QT_NO_TEXTSTREAM exclude QtXmlPatterns from the completeness assessment fix QMAKE_SUBSTITUTES with shadow builds Outline / fill inconsistency in X11 paint engine. Cocoa: parent windows shows on screen when they should be hidden Prevented Xorg crash in qtdemo when running corkboards example.
| * Add tests/benchmarks/READMEMarkus Goetz2010-08-171-0/+81
| | | | | | | | | | | | With some information from the dev mailing list. Reviewed-by: Thiago
* | Implement the general blending of ARGB32_pm with SSSE3Benjamin Poulain2010-08-161-0/+43
|/ | | | | | | | | | | | | | | | | | | SSSE3 provides two tools to improve the blending speed over SSE2: -palignr -byte permutation The alignement is enforced on src and dst with palignr to always make aligned access. The extraction of the alpha mask is done with a byte permutation in order to save two instructions per cycle. On Atom, this patch gives between 0% (aligned src) to 10% of improvement (unaligned 4 and 12 bytes). On Core 2, this patch gives consistently 8% to 10% of improvement for every miss-alignment. Reviewed-by: Samuel Rødal
* add performance comparisons to qregexp benchmarkArvid Ephraim Picciani2010-08-103-1/+320
| | | | Reviewed-by: hjk
* Implement comp_Source with SSE2 when there is a const alphaBenjamin Poulain2010-08-041-0/+32
| | | | | | On Atom, comp_Source is 280% faster with the SSE2 implementation. Reviewed-by: Andreas Kling
* Merge remote branch 'origin/4.6' into 4.7-from-4.6Rohan McGovern2010-07-291-1/+1
|\ | | | | | | | | | | | | | | | | | | Conflicts: src/3rdparty/webkit/VERSION src/3rdparty/webkit/WebKit/qt/ChangeLog src/gui/itemviews/qlistview.cpp tests/auto/qlistview/tst_qlistview.cpp tests/auto/qnetworkreply/test/test.pro tests/auto/qsocks5socketengine/qsocks5socketengine.pro
| * Fix Rhys' qmake warningsMarkus Goetz2010-07-221-1/+1
| |
| * Remove files as instructed by Legal department.Jason McDonald2010-07-192-0/+0
| |
| * Remove test cases which cause stack overflowShane Kearns2010-07-151-0/+5
| | | | | | | | | | | | | | | | | | These test cases are not considered reasonable for a small screen device (625 widgets). Patching the QWidget code to use iteration rather than recursion is considered too risky, as the code is performance critical. Task-number: QTBUG-8512 Reviewed-by: Bjoern Erik Nilsen
| * The cmd line arguments have not been delegated properly.Aleksandar Sasha Babic2010-04-271-32/+1
| | | | | | | | | | Task-number: QT-9377 Reviewed-by: Joao
* | Use SSSE3 to convert from RGB888 to RGB32Benjamin Poulain2010-07-263-0/+119
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Converting from RGB encoded on 24bits to RGB encoded on 32 bits is quite inefficient. This type of conversion is common for some image format. The patch implement the conversion with SSSE3. This reduce by 3 the number of instructions, pushing the bottleneck to memory bandwidth. On Atom N450, the new benchmark is 40% faster for scanlines of 2000 pixels, 30% faster for scanlines of 32 pixels, and 15% slower for small images (3 and 8px). Reviewed-by: Olivier Goffart
* | Add additional QVariant benchmarks.Michael Brasser2010-07-221-0/+45
| |