我有两台机器具有完全相同的硬件设置: Intel i7 CPU(4核,8线程或虚拟核)16GB内存。唯一的区别是一台机器运行Windows 7,另一台机器运行Ubuntu。
我的多线程程序有8个线程执行类似的任务。我注意到,当它在Windows机器上运行时,只有4个虚拟内核运行,CPU占用率为30%,其余4个虚拟内核的CPU使用率为0。当相同的程序在Ubuntu机器上运行时,所有8个虚拟核心的CPU使用率大致相等,为30%。
此外,该程序在Ubuntu机器上的运行速度要快得多。
为什么java不使用Windows上的所有CPU核心? jre / OS设置有什么特别之处吗?
有关系统信息的更多详细信息:
有关任务的更多详细信息: