Я создал простую программу в Java:
public static void main(String[] args) throws InterruptedException {
while (true)
;
}
Если я запускаю это на машине с Linux, это показывает 100% загрузку процессора, но не заставляет ОС работать медленно. Однако, если я запускаю точно такой же код в Windows, он показывает только около 20% загрузки процессора.
Я использую Oracle JRE в Windows и OpenJDK 6 в Linux.
Мне интересно, если планировщик Windows выгружает потоки случайно, а Linux - нет?
100*N cores %
?Ответы:
По умолчанию
top
в Linux работает в так называемом режиме IRIX, а Windows Task Manager - нет. Допустим, у вас есть 4 ядра:При включенном режиме IRIX 1 полностью использованное ядро составляет 100%, а 4 ядра - 400%.
При выключенном режиме IRIX 1 полностью загруженное ядро составляет 25%, а 4 ядра - 100%.
Это означает, что по умолчанию
top
в Linux бесконечный цикл будет отображаться как ~ 100%, а в Windows - около 25%, и это означает точно то же самое.Вы можете переключать режим IRIX, когда
top
работает с Shift+ i. Это сделает цифры совпадают.источник