aboutsummaryrefslogtreecommitdiffstats
path: root/tests/benchmarker
Commit message (Collapse)AuthorAgeFilesLines
* Make Qt Concurrent dependency optionalKai Koehne2018-03-131-1/+5
| | | | | Change-Id: Ifd7cac3f646ecef2e8b12079771c01af410691bb Reviewed-by: Christian Kandeler <christian.kandeler@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>