我的程序一直以最大 1% 的 CPU 使用率运行,但有时由于程序内部的某些事件,我无法确定,它每 15 秒有 5-10 秒的 100% 使用率。它看起来像一个导致使用高峰的线程,但我无法确定它的来源(有 8000 个类,所以这很难)。很难测试问题是否仍然存在(例如在使某些代码“死”之后),因为该问题有时会在虚拟机生命周期的几个小时后开始存在。
您知道什么可以帮助我找到问题的根源吗?
我的程序一直以最大 1% 的 CPU 使用率运行,但有时由于程序内部的某些事件,我无法确定,它每 15 秒有 5-10 秒的 100% 使用率。它看起来像一个导致使用高峰的线程,但我无法确定它的来源(有 8000 个类,所以这很难)。很难测试问题是否仍然存在(例如在使某些代码“死”之后),因为该问题有时会在虚拟机生命周期的几个小时后开始存在。
您知道什么可以帮助我找到问题的根源吗?
如果没有更多信息,甚至无法尝试猜测问题的原因。
我建议使用诸如VisualVM之类的分析器来确定导致问题的线程以及发生问题时可能的确切情况。
例如,使用分析器会告诉您: