2017-02-20 3 views
2

Я использую параллельную сборку моего проекта maven.Уменьшить приоритет потоков/процессов сборки maven

Обычно я запускаю mvn install -T 4 (у меня есть 4 ядра на моем ПК).

После этого я должен подождать почти 5-10 минут, чтобы полностью построить проект. Я не могу ничего сделать на своей рабочей станции Windows: мышь/клавиатура не реагирует. Загрузка процессора = 100%.

Есть ли способ уменьшить приоритет потоков/процессов (javac), созданных maven?

Как я понимаю, если я устанавливаю приоритет ниже обычного - ОС будет планировать меньше времени для сборки maven и больше для других программ.

+2

Если у вас есть только 4 ядра, вы не должны использовать '-T 4' лучше использовать' -T 2', поэтому другие ядра могут свободно делать другие вещи ... – khmarbaise

ответ

1

Комментарий, предлагающий использовать менее 4 ядер, чтобы у вас были свободные ядра, чтобы делать другие вещи, представляет собой неправильное представление. При нормальных обстоятельствах ваши ядра в основном ничего не делают, кроме как ждать, поэтому бессмысленно оставлять некоторые из них просто сидящими там ничего не делая, в то время как у maven есть работа. Дело в том, что, как вы уже догадались, позволить процессу maven использовать столько мощности процессора, какую может дать ваш компьютер, и уменьшить приоритет процесса maven, так что, когда вы хотите взаимодействовать с вашим компьютером, пока работает maven , ваши взаимодействия приобретают более высокий приоритет, чем maven, поэтому они завершаются быстро, и сразу же после этого maven может продолжать свою собственную работу, используя полную мощность вашего процессора.

Итак, под окнами в командной строке start /belownormal mvn install -T 4 сделают это.

Еще лучше, если ваш процессор достаточно современен (и это, вероятно, есть), и если вы не хотите беспокоиться о том, сколько ядер у вас есть (вероятно, нет,), затем используйте start /belownormal mvn install -T1C, чтобы указать maven, чтобы выяснить, сколько ядер у вас есть, и создать один поток на ядро. Это предпочтительнее, потому что оно допускает гиперпоточность: у вашего процессора может быть только 4 ядра, но эти ядра могут быть с гиперпотоком с 2 потоками на ядро, поэтому maven будет создавать 8 потоков.

Тип help start Дополнительные сведения о встроенной команде «запуска» Windows, которая дает вам контроль над приоритетом приложений, запускаемых в командной строке. Например, вы можете указать /low вместо /belownormal; он может дать еще лучшую отзывчивость и, вполне возможно, для заметного замедления процесса mvn.

Единственная ситуация, при которой может иметь смысл резервировать ядра, - это если вы хотите запускать другие задачи с интенсивным процессором параллельно с maven (вероятно, нет) и вы не доверяете Windows планировщик, чтобы сделать хорошую работу в организации этого. (Вы должны.)

+1

Наконец-то проверено сегодня. Работает как шарм! – turbanoff

Смежные вопросы