CPU使用率激增

时间:2012-11-10 13:33:38

标签: java multithreading cpu

我的程序一直以最高1%的CPU使用率运行,但有时因为程序中的某些事件,我无法确定,它每100秒使用100%约5-10秒。它看起来像一个螺纹导致使用高峰,但我无法确定它的来源(有8000个类,所以这很难)。很难测试问题是否仍然存在(例如在使代码的某些部分“死”之后),因为该问题有时会在虚拟机生命周期的几个小时后开始存在。

你知道什么可以帮助我找到问题的根源吗?

1 个答案:

答案 0 :(得分:5)

如果没有更多信息,甚至无法猜测问题的原因。

我建议使用分析器(例如VisualVM)来确定导致问题的线程以及可能发生的确切情况。

使用分析器会告诉您例如:

  • 哪些线程处于活动状态并占用CPU资源
  • 无论是VM还是应用程序线程
  • 垃圾收集操作花费了多少时间 - 虽然我认为最近的JVM在这方面有所改进,但GC通常是CPU使用率激增和延迟的来源。
  • 是否存在锁定问题
  • ...