summaryrefslogtreecommitdiffstats
path: root/tests/benchmarks
Commit message (Collapse)AuthorAgeFilesLines
* 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 (!!)
* 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
| |
* | Remove some files as instructed by Legal department.Jason McDonald2010-07-202-0/+0
| | | | | | | | Task-number: QT-3613
* | Merge branch '4.7' of scm.dev.nokia.troll.no:qt/qt-qml into 4.7-integrationQt Continuous Integration System2010-07-101-0/+41
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * '4.7' of scm.dev.nokia.troll.no:qt/qt-qml: (65 commits) Fix QTextDocument::markContentsDirty() Replace 4.6 in all .qdocconf files Resetting bindings through debugger interface Fix crash with invalid role indexes Make test pass and fix docs following removal of SpringFollow Remove autotests of depracted element SmoothedFollow doc improvements Clean up at the end of each test. Improve test reliability. Fix crash Follow -> Behavior Added some documentation to spring animation Fix spring animation Update QtDeclarative def files Fix exponential behavior of QTextCursor::removeSelectedText Optimization: change signal/slot to function call Don't show warning for attempts to load pixmaps asynchronously Remove Image::pixmap property. QML applications should use Update QmlChanges.txt Don't double delete cancelled pixmap cache requests ...
| * | Add styled text layout benchmark.Michael Brasser2010-07-051-0/+41
| | |
* | | Add test and fix style for the SSE2 implementation of ARGB32 conversionBenjamin Poulain2010-07-071-1/+63
|/ / | | | | | | | | | | | | | | The commit beba018814b35c4bd032e6b9fa948e4bac34c59a introduce conversion from ARGB32 to ARGB32_PM with SSE2. This patch add a benchmark for this type of usage, and change the name to use lowercase for SSE2 (style convention).
* | Merge branch '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2 into ↵Qt Continuous Integration System2010-07-011-0/+51
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4.7-integration * '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2: (51 commits) Symbian on Linux: $QTDIR/bin is not necessarily in the path. Updated Symbian def files with new EGL exports. Added another missing EGL stub. Fixed compilation on Symbian. Added missing EGL stub function. Got rid of unused variable compiler warning. QGLWindowSurface support for partial updates via EGL_NOK_swap_region2 Adding func prototypes for EGL_NOK_swap_region2 extension. Check for EGLSurface leak only when paint device is a QGLWidget. Fixed bug in drawTiledPixmap when width of pixmap matches target rect. Update def files for symbian Improved performance of 16 bit memrotates using NEON instructions. Use built-in iconv on Solaris if available Export various symbols needed to make a custom GL graphicssystem. Moc: fix compilation when templated types with multiple arguments are used. Fixes the documentation of QGraphicsEffect::update(). support BGRA textures on SGX Avoid calling time.elapsed() twice in abstract animation Adds slowdownFactor to UnifiedTimer in abstract animation Add the conversion in-place for QPixmap::fromImageReader() on raster. ...