1

Я использую Hudson на компьютере с Windows 7 (x64): он просто запускается с помощью java -jar hudson.war. По какой-то причине процесс Java использует только один процессор из двух доступных, хотя он работает с несколькими потоками. Я почти уверен, что стандартным поведением для os является распределение потоков многопоточной программы между процессорами, если явно не указано иное (используя API-интерфейс SetProcessorAffinity, если я правильно помню).

Есть ли способ сказать Java, чтобы использовать несколько процессоров?

1 ответ1

2

Обычно java.exe автоматически помещает потоки в разные процессоры.

Если это не так, это может быть связано с тем, что программа связана с вводом / выводом, а не с процессором, или потому, что потоки не могут работать одновременно из-за синхронизации.

См. Http://www.oracle.com/technetwork/java/hotspotfaq-138619.html#perf_scaling для получения дополнительной информации.

Вам, вероятно, придется отладить Hudson, чтобы узнать, почему он использует только один процессор.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .