添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

I have created a simple program in java:

public static void main(String[] args) throws InterruptedException {

while (true)

;

}

If I run this on a Linux machine, it shows 100% CPU usage, but doesn't cause the OS to appear slow. However, if I run the exact same code on Windows, it only shows about 20% CPU usage.

I am using Oracle JRE on Windows and OpenJDK 6 on Linux.

I'm wondering if Windows' scheduler preempt threads randomly and Linux's doesn't?

  • By default, top on Linux runs in so-called IRIX mode, while the Windows Task Manager does not. Let's say you have 4 cores:

    • With IRIX mode on, 1 fully utilized core is 100% and 4 cores are 400%.
    • With IRIX mode off, 1 fully utilized core is 25% and 4 cores are 100%.

    This means that by default, top on Linux will show an infinite loop as ~100% and Windows will show it as ~25%, and it means exactly the same thing.

    You can toggle IRIX mode while top is running with Shift+i. This will make the numbers match up.

    Data Science Interview Questions | Devops Interview Questions | Salesforce Interview Questions | Java Interview Questions | Selenium Interview Questions | Cyber Security Interview Questions | Azure Interview Questions | Power Bi Interview Questions | Software Testing Interview Questions | Data Analyst Interview Questions