He creado un programa simple en Java:
public static void main(String[] args) throws InterruptedException {
while (true)
;
}
Si ejecuto esto en una máquina Linux, muestra el uso del 100% de la CPU, pero no hace que el sistema operativo parezca lento. Sin embargo, si ejecuto exactamente el mismo código en Windows, solo muestra aproximadamente el 20% de uso de la CPU.
Estoy usando Oracle JRE en Windows y OpenJDK 6 en Linux.
Me pregunto si el planificador de Windows se adelanta a los subprocesos al azar y el de Linux no.
100*N cores %
?Respuestas:
Por defecto,
top
en Linux se ejecuta en el llamado modo IRIX, mientras que el Administrador de tareas de Windows no. Digamos que tienes 4 núcleos:Con el modo IRIX activado, 1 núcleo totalmente utilizado es 100% y 4 núcleos son 400%.
Con el modo IRIX desactivado, 1 núcleo totalmente utilizado es 25% y 4 núcleos son 100%.
Esto significa que, por defecto,
top
en Linux mostrará un bucle infinito como ~ 100% y Windows lo mostrará como ~ 25%, y significa exactamente lo mismo.Puede alternar el modo IRIX mientras
top
se ejecuta con Shift+ i. Esto hará que los números coincidan.fuente