Я пытаюсь запустить тесты параллельно на моем ноутбуке, который имеет 4 физических и 8 логических процессоров.
➜ sysctl -n hw.ncpu
8
➜ sysctl hw.physicalcpu
hw.physicalcpu: 4
Это команда, которую я выполняю:
./gradlew remoteChromeTest -Pparallel=4 --continue --max-workers=8
Свойство parallel
входит в maxParallelForks
задачи Test
.
Тем не менее, похоже, что Gradle одновременно занимает не более 4 рабочих (один из которых, по-видимому, резервируется).для самой сборки), что совпадает с количеством физических процессоров.
Вывод выглядит следующим образом:
> Task :remoteChromeTest
Running tests in parallel using 4 processes.
<============-> 92% EXECUTING [12s]
> :remoteChromeTest > 0 tests completed
> :remoteChromeTest > Executing test spec.Spec1
> IDLE
> :remoteChromeTest > Executing test spec.Spec2
> :remoteChromeTest > Executing test spec.Spec3
Итак, параллельно выполняются только 3 теста.
Что мне здесь не хватает?Документация предполагает, что это может быть запущено за пределы числа реальных процессоров.
Я получаю такое же поведение на другой машине, которая имеет только 2 физических ядра, и там она ограничена двумя процессами, то есть без параллельногоисполнение на всех.