Saya telah membuat program sederhana di java:
public static void main(String[] args) throws InterruptedException {
while (true)
;
}
Jika saya menjalankan ini pada mesin Linux, ini menunjukkan penggunaan CPU 100%, tetapi tidak menyebabkan OS tampak lambat. Namun, jika saya menjalankan kode yang sama persis pada Windows, itu hanya menunjukkan penggunaan CPU sekitar 20%.
Saya menggunakan Oracle JRE di Windows dan OpenJDK 6 di Linux.
Saya bertanya-tanya apakah penjadwal Windows mendahului utas secara acak dan Linux tidak?
100*N cores %
?Jawaban:
Secara default,
top
pada Linux berjalan dalam apa yang disebut mode IRIX, sedangkan Windows Task Manager tidak. Katakanlah Anda memiliki 4 core:Dengan mode IRIX aktif, 1 core yang sepenuhnya digunakan adalah 100% dan 4 core 400%.
Dengan mode IRIX mati, 1 inti yang sepenuhnya digunakan adalah 25% dan 4 core 100%.
Ini berarti bahwa secara default,
top
di Linux akan menunjukkan loop tanpa batas sebagai ~ 100% dan Windows akan menampilkan ~ 25%, dan itu berarti hal yang persis sama.Anda dapat mengaktifkan mode IRIX saat
top
sedang berjalan dengan Shift+ i. Ini akan membuat angka cocok.sumber