【问题标题】:CPU usage 100% in I/O operaitionsI/O 操作中的 CPU 使用率 100%
【发布时间】:2016-09-29 10:36:42
【问题描述】:

我有一个关于 CPU 使用率的理论问题。当 CPU 使用率达到 100% 时,这意味着什么?这是否意味着,我的数据太大了?或者这是否意味着我的文件太大?还是文件数量过多?或者 JVM 上的数据太多?

这是使用多线程应用程序完成的 Java I/O 操作。

【问题讨论】:

  • 这取决于CPU在做什么,但你可以区分IO过多或CPU过多。

标签: java multithreading io


【解决方案1】:

这意味着您的应用程序进行的计算量超过了您的 CPU 可以管理的量,因此您的 CPU 完全超载,与计算相比,它不会做太多 IO,因为 IO 增加了一些延迟因此将减少 CPU 的使用,例如,没有暂停的无限循环将消耗 受影响 CPU100 %

while(true);

虽然带有暂停的无限循环会消耗更少的CPU,因为我们每单位时间要做的计算更少。

while(true) {
    Thread.sleep(50L);
}

【讨论】:

  • 你成功了 Nicolas.. 谢谢.. 我的旧代码中有 while(true).. :-)
  • 警告while(true) 不是问题的根本原因,这取决于它在循环中做了什么
猜你喜欢
  • 1970-01-01
  • 2018-07-15
  • 2017-08-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-27
  • 2013-06-23
相关资源
最近更新 更多