J'ai créé un programme simple en java:
public static void main(String[] args) throws InterruptedException {
while (true)
;
}
Si je l'exécute sur une machine Linux, cela montre une utilisation du processeur à 100%, mais ne fait pas paraître le système d'exploitation lent. Cependant, si j'exécute exactement le même code sous Windows, cela ne montre qu'environ 20% d'utilisation du processeur.
J'utilise Oracle JRE sous Windows et OpenJDK 6 sous Linux.
Je me demande si le planificateur de Windows préempte les threads au hasard et pas celui de Linux?
100*N cores %
?Réponses:
Par défaut,
top
sous Linux s'exécute en mode dit IRIX, contrairement au gestionnaire de tâches Windows. Disons que vous avez 4 cœurs:Avec le mode IRIX activé, 1 cœur pleinement utilisé correspond à 100% et 4 cœurs à 400%.
Avec le mode IRIX désactivé, 1 cœur entièrement utilisé correspond à 25% et 4 cœurs à 100%.
Cela signifie que par défaut,
top
sous Linux affichera une boucle infinie à ~ 100% et Windows l'affichera à ~ 25%, et cela signifie exactement la même chose.Vous pouvez basculer le mode IRIX en
top
cours d'exécution avec Shift+ i. Cela fera correspondre les nombres.la source