aboutsummaryrefslogtreecommitdiffstats
path: root/tests/benchmarker
Commit message (Collapse)AuthorAgeFilesLines
* RIP QMake buildIvan Komissarov2022-12-161-20/+0
| | | | | | | | | | We have been supported CMake build for quite some time so users should have plenty of time to adapt. Ubuntu, Brew and macports also use CMake for building QBS. Change-Id: Ib78177f4a7ca8cdea1a2f3a8eac8bfe804674f32 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Remove `import qbs` from all project filesDenis Shienkov2021-08-041-2/+0
| | | | | | | | | | | | | | ... because we don't need in this inclusion at all. But for some cases it is impossible to remove that inclusions (and even to move on next lines) because then the some tests are failed by unknown reason. For those tests were added the following comments on the inclusion lines: `// FIXME: Don't remove this import because then the test fails!` Change-Id: I9153fd0e38b94af08168e499ee46a23889ee4d73 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Switch qbs-benchmarker to QbsIvan Komissarov2021-07-032-4/+11
| | | | | | | | | | | | This allows to better utilize processor cores when building qbs as well as use ccache when set via profile: profiles.gcc.cpp.compilerWrapper: "/usr/bin/ccache" profiles.gcc.cpp.toolchainInstallPath: "/usr/bin" profiles.gcc.qbs.toolchain: "gcc" Change-Id: I4ba622777f1dd5d7c650a3d7399534043094c0b9 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* cmake: Add Qt6 buildIvan Komissarov2021-05-181-1/+1
| | | | | | | Also, switch Linux CMake job to build Qbs with Qt6 Change-Id: I188845a7cc086a8c87dbb7445ea95f99b26d94ef Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* qt6: use lambdas to pass callables to QtConcurrent::runIvan Komissarov2020-11-042-12/+16
| | | | | | | | It is not possible to use "this" as the 1st argument for run() method since it should be QThreadPool now Change-Id: I69d4291b8a748ea62de7e3b486f8e3e046cd38b4 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* qt6: do not forward-declare QStringListIvan Komissarov2020-11-043-11/+3
| | | | | | | It is a typedef to QList<QString> now, not a separate class Change-Id: I2f84d11f09b8c0db64f25bd0682bdc684b64018e Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Bump c++ version to the 17th standardIvan Komissarov2020-08-212-2/+2
| | | | | | | We can do that now as QtC moved to c++17 in master Change-Id: I91d7fc425f1b288f341ee3025fec61a53e98c8d9 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Initial CMake portIvan Komissarov2020-08-171-0/+18
| | | | | | | | | | | | | | | | | | | This change allows to build Qbs using CMake build tool Tested platforms - Linux (gcc) - macOS (clang) - Windows (msvc2017) Missing features (compared to Qbs build) - Documentation build - Bundled QtScript support - Static build - .pc file for qbscore - qbs module for qbscore Change-Id: I09b5dadd6723d5a47e5ef2a9a38d3300488718f2 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Fix Qt 5.15 deprecation warningsChristian Kandeler2020-06-161-1/+1
| | | | | Change-Id: I1d6968de823c43e42ca53eb68972ba5e69dc29ed Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
* Apply 'modernize-pass-by-value' fix-itIvan Komissarov2020-01-285-12/+13
| | | | | | | | | Also, treat this warning as error This amends 936eee744db9b2fd1b9b66d168d80a113002aad2 Change-Id: I372c3b11baa08375d581052282f4546b2ba2e057 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* qbs_benchmarker: Validate commit parametersIvan Komissarov2020-01-061-0/+4
| | | | | | | | It's possible to copy&paste old commit instead of a new one and easy to overlook that mistake. Change-Id: I408f256ba6b2f419b7cf90b7ed9ee582f91b081b Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Apply 'modernize-use-equals-default' fix-itIvan Komissarov2019-11-252-4/+2
| | | | | Change-Id: Iabdc777d2e8492d9903109365b0f3b1a5441ca11 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Fix -Wclazy-inefficient-qlist-softIvan Komissarov2019-05-201-3/+6
| | | | | | | | | QLists were used with types that bigger than sizeof(void*) which lead to extra allocations Change-Id: Id716c6b4919f9a0ad62e1d2972319a600785afc5 Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Apply fix-its for the missing override keywordIvan Komissarov2019-05-031-3/+3
| | | | | | | | Missing override is a warning in clang Change-Id: I90b899df37e690aebb942bffc65db54d9aa4050f Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Fix uninitialized variablesIvan Komissarov2019-05-021-1/+1
| | | | | | | | | This fixes most of clang analyzer warnings about uninitialized variables in ctors Change-Id: I879c785594307ed3fe7140588338a6b2a1e4db65 Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Use QStringLiteral more where it is possibleDenis Shienkov2019-02-254-17/+17
| | | | | | Change-Id: I7419cc3fbc1e8776de3943852dcedab4c95d1c32 Reviewed-by: Anton Kudryavtsev <antkudr@mail.ru> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Replace 'typedef' with 'using' where it is possibleDenis Shienkov2019-02-231-1/+1
| | | | | | | | One exception is that the 'typedef' for function pointers were skipped due to an additional work is required. Change-Id: I2112fded3abeaee1d1f49f56adfd2914d5db0324 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Replace non-const calls to temporaries with constIvan Komissarov2019-02-211-4/+8
| | | | | | | | This fixes -Wclazy-detaching-temporary Change-Id: I3c866c29c05f16e93eb86551efb21ccf9dc120b9 Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Remove support for in-build-dir-execution of the qbs qbs buildJoerg Bornemann2018-07-121-1/+6
| | | | | | | | | | This is not supported. People must use the content of the installation directory instead. This reduces complexity of qbs' own project files. Change-Id: I39f8bb4d5252b0631a64b3aac01f83b09b28ae0f Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* benchmarker: Fix crash when called with no parametersChristian Kandeler2018-07-101-1/+8
| | | | | | | The crash was accidentally introduced in da6c0e5058. Change-Id: If3a1ed1633fc8bb6aaf736859a89e1b7c17777c2 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Benchmarker: Keep the temp data in case of a failureChristian Kandeler2018-06-221-5/+8
| | | | | | | So the problem can be more easily investigated. Change-Id: Ia968a4e42164cce5b3f67d9e8a29ccd5b24e3eaf Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Merge 1.11 into masterChristian Kandeler2018-03-151-1/+5
|\ | | | | | | Change-Id: I15cdc5c73a13c36cf073d01aff0406e539bb507b
| * Make Qt Concurrent dependency optionalKai Koehne2018-03-131-1/+5
| | | | | | | | | | Change-Id: Ifd7cac3f646ecef2e8b12079771c01af410691bb Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Build qbs with C++14Christian Kandeler2018-02-152-2/+2
|/ | | | | | | | | This will enable us to simplify some of our templates. Qt Creator requires C++14 as well, so we won't break it. Change-Id: I577347ef12c53ff2ec59e88344ff181b27a0d50c Reviewed-by: Jake Petroules <jake.petroules@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Replace 'foreach' macro with range-based 'for'Denis Shienkov2017-11-242-5/+7
| | | | | Change-Id: I34479bc9673d0202363aeba5c7919efc8f0d7287 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Benchmarker: Better names for short optionsChristian Kandeler2017-11-201-3/+3
| | | | | | Change-Id: I89d63c9ca881136b7b1d47c45c42249724ee889b Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* STL compatibility: use push_back() instead of operator<<Jake Petroules2017-11-161-4/+4
| | | | | | | ...and operator+= Change-Id: I848610544cacc2d187d601c0db567703c3e68c93 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Benchmarker: Provide short command-line optionsChristian Kandeler2017-11-161-6/+9
| | | | | Change-Id: I278d4f939a950a65ce7ee3974ba1266b81419166 Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* STL compatibility: use empty() instead of isEmpty()Jake Petroules2017-11-161-1/+1
| | | | | | | This is a simple find and replace with manual sanity check. Change-Id: Iab6d46dcc3be246d1650aae2b1730f933b717be8 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* STL compatibility: use size() instead of count()Jake Petroules2017-11-151-3/+3
| | | | | | | This is a simple find and replace with manual sanity check. Change-Id: Ia733befe7885dc3c643d5c84e151312bfd86a3c6 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* STL compatibility: use front() instead of first()Jake Petroules2017-11-141-3/+3
| | | | | | | This is a simple find and replace with manual sanity check. Change-Id: I82f0eb38b6a5a3b75a4ed38d97bdb6ce164d09b3 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Benchmarker: Build qbs with debug infoChristian Kandeler2017-11-141-1/+2
| | | | | | | | When investigating performance regressions, we want source code annotations. Change-Id: I6b2d7414d8ebf0aa1e324c1e61453abc958c4961 Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* Benchmarker: Keep raw data in case a regression is detectedChristian Kandeler2017-11-135-21/+55
| | | | | | | | | | | If the difference between the old and new instruction count and/or memory usage is higher than a (user-configurable) threshold, do not remove the temporary directory and direct the user to its location. This way, they can investigate the regression right away, rather than having to re-run valgrind etc. Change-Id: I8a35fde073806fa9daf0b28315a827207f8bd04d Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* Use the [[noreturn]] attribute instead of Q_NORETURNChristian Kandeler2017-10-301-2/+2
| | | | | | | We can do this now that we require MSVC 2015. Change-Id: I77be55435d4db6c6ff17afeff779e163cf3803fb Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* Replace all uses of QMutex/QMutexLocker with std::mutex/std::lock_guardJake Petroules2017-03-222-4/+6
| | | | | | Change-Id: I5b4518cb241d556f062f85cadd6c8f61887c8ae6 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Change style of #includes of Qt headersJake Petroules2017-01-0411-28/+31
| | | | | | | | | | | | | | | | By using q<lowercase>.h headers, we become more bootstrap-friendly, as no full syncqt is required any more. In the same go, prefix all includes with the module name. This helps grep-based analysis of which parts of Qt are used and where. It's also consistent with Qt's public headers (where syncqt enforces the style). Testdata and examples are excluded from the change, as they are not relevant for bootstrapping. Change-Id: I9539b1d795e87fca6e5fc6c91acbb775b79208d9 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Fix restoration of symbolic commitsJoerg Bornemann2017-01-023-3/+17
| | | | | | | | | | | | | | | | qbs-benchmarker tries to restore the original commit of the qbs repository. To determine that commit the command git describe HEAD is used. For the 1.7 branch this produces something like v1.7.0-26-g2bc9373 which then is passed to 'git checkout'. Afterwards the repo is in detached HEAD state. Use 'git symbolic-ref' to determine the correct original branch name. Fall back to the old method if that doesn't work. Change-Id: I21526db1efceebcf5102eed9da43478871880ab1 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* qbs_benchmarker: Fix interpretation of massif outputChristian Kandeler2016-11-161-1/+1
| | | | | | | We mistakenly read the "extra" value rather than the "total" one. Change-Id: I06e584ffffb535687d72111ca7a884c94dac2878 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Update license headersIikka Eklund2016-08-295-80/+70
| | | | | | | | | | Patch-set 2 includes *.cpp *.c Every source file needs to have up-to-date license headers in order to pass ci. Change-Id: Ie6e493097af6f7dd6a8adff170eb856f496e689e Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* Update license headersIikka Eklund2016-08-296-96/+84
| | | | | | | | | | Patch-set 1 includes *.h Every source file needs to have up-to-date license headers in order to pass ci. Change-Id: Ib6cf3ac47dfba6dff262fded44bc952aef3bda8b Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* Benchmarker: Make valgrind trace child processesChristian Kandeler2016-07-281-2/+3
| | | | | | | Otherwise, we won't catch performance regressions introduced by Probes. Change-Id: Ia48848d6f7e328cdbd83065958900f9b45335900 Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* Replace 'the Qt build suite' with 'Qbs' in copyright notices.Jake Petroules2016-06-0611-11/+11
| | | | | | Change-Id: I885d94bb14b325dc36767a840ebdb0be1fb59dd2 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Add benchmarking tool.Christian Kandeler2015-02-1713-0/+1083
Takes two qbs repo states, runs callgrind and massif on different phases of the build process for each of them and informs the user of the relative performance of these operations. I suggest running this tool before committing anything that could conceivably impact performance. Note that we have similar regression detection functionality on our build machines, but it's better to spot such problems before pushing a change. Example output (for commits 04df1532c4 and f53d724eec building qbs itself): ========== Performance data for Resolving ========== Old instruction count: 1931242543 New instruction count: 1457438375 Relative change: -25 % Old peak memory usage: 1710721 Bytes New peak memory usage: 1509879 Bytes Relative change: -12 % ========== Performance data for Rule Execution ========== Old instruction count: 2924308821 New instruction count: 2890322188 Relative change: -2 % Old peak memory usage: 2520740 Bytes New peak memory usage: 2488058 Bytes Relative change: -2 % ========== Performance data for Null Build ========== Old instruction count: 572213104 New instruction count: 517813513 Relative change: -10 % Old peak memory usage: 1964455 Bytes New peak memory usage: 1774279 Bytes Relative change: -10 % Change-Id: I1f05c647d204b6cacf3539c8ecbf13633b757cf7 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>