¿Cómo hago para que java.exe utilice varias CPU?

¿Cómo hago para que java.exe utilice varias CPU?

Estoy ejecutando Hudson en una máquina con Windows 7 (x64): esto simplemente se inicia usando 'java -jar hudson.war'. Por alguna razón, el proceso de Java solo usa una CPU, de las 2 disponibles, aunque ejecuta varios subprocesos. Estoy bastante seguro de que el comportamiento predeterminado del sistema operativo es distribuir los subprocesos de un programa multiproceso entre las CPU, a menos que se indique explícitamente lo contrario (usando alguna API SetProcessorAffinity si no recuerdo mal).

¿Hay alguna manera de decirle a Java que use varias CPU?

Respuesta1

Normalmente, java.execolocará automáticamente subprocesos en diferentes CPU.

Si no es así, podría deberse a que el programa está vinculado a E/S, en lugar de a la CPU, o porque los subprocesos no pueden ejecutarse simultáneamente debido a la sincronización.

Verhttp://www.oracle.com/technetwork/java/hotspotfaq-138619.html#perf_scalingpara más información.

Probablemente tendrás que depurar Hudson para saber por qué utiliza sólo un procesador.

información relacionada