Eu criei um programa simples em java:
public static void main(String[] args) throws InterruptedException {
while (true)
;
}
Se eu executar isso em uma máquina Linux, ele mostra 100% de uso da CPU, mas não faz com que o SO apareça lento. No entanto, se eu executar exatamente o mesmo código no Windows, ele mostrará apenas cerca de 20% de uso da CPU.
Estou usando o Oracle JRE no Windows e o OpenJDK 6 no Linux.
Eu estou querendo saber se o agendador do Windows preempt threads aleatoriamente e Linux não?
100*N cores %
?Respostas:
Por padrão,
top
no Linux é executado no chamado modo IRIX, enquanto o Windows Task Manager não. Digamos que você tenha 4 núcleos:Com o modo IRIX ativado, 1 núcleo totalmente utilizado é 100% e 4 núcleos são 400%.
Com o modo IRIX desativado, 1 núcleo totalmente utilizado é 25% e 4 núcleos são 100%.
Isso significa que, por padrão,
top
no Linux mostrará um loop infinito como ~ 100% e o Windows mostrará como ~ 25%, e significa exatamente a mesma coisa.Você pode alternar o modo IRIX enquanto
top
estiver executando com Shift+ i. Isso fará com que os números correspondam.fonte