diff options
author | Olivier De Cannière <olivier.decanniere@qt.io> | 2023-12-11 14:08:25 +0100 |
---|---|---|
committer | Olivier De Cannière <olivier.decanniere@qt.io> | 2023-12-20 08:38:26 +0100 |
commit | d08ede57dd530a67c3420b3858fe39bf1e5eb598 (patch) | |
tree | a2880723e202afafeb7e58e10f373dd375f17dca /tests/auto/qml/qv4mm | |
parent | 65deeb3f5125a6091ca959b192d09127ee3a99b0 (diff) |
tst_ecmascript: Run tests on separate processes instead of threads
Previously, tests were run in parallel on separate threads. This was
faster than running them on only one but was still significantly slower
than it could be, on Windows. This is due to them sharing the same heap
and the fact that each memory allocation and free would temporarilly
lock the heap for all other threads making the tests run much slower
than on other platforms.
This patch changes the way the test is run so that each js test file is
run on a separate process. This ensures that the heap is no longer being
shared by all test runners and reduces overhead significantly.
The test runner processes listen for test data in JSON format over their
standard input, run the test, return the results over their standard
output and then wait for the next test data.
tst_ecmascripttests on 13900k with 32 threads
Debug MSVC Windows Debug GCC Linux
threads: 569s 105s
processes: 89s (~ -84%) 52s (~ -50%)
On platforms where QT_CONFIG(process) returns false, the tests fallback
to running on threads as before.
Change-Id: Id51fc9d6e0d5ef0ae5c88f96b0119aa99e57f0fe
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Diffstat (limited to 'tests/auto/qml/qv4mm')
0 files changed, 0 insertions, 0 deletions