Java分析:检测哪一段代码导致高CPU负载

Mar*_*tör 8 java cpu profiler profiling cpu-usage

我用JProfiler和YourKit分析了我的代码.但是,我还没弄清楚如何检测哪一段代码导致高CPU负载.

如果响应时间不好,检测热点是微不足道的.在我的情况下,虽然响应时间不是问题.只是在处理此特定请求的短时间内CPU负载非常高(非常高).

如何确定哪个类/方法导致此问题?我想我正在寻找的是某种列表,它告诉我需要多少CPU周期来处理一个方法 - 左右.

Tho*_*sen 6

CPU负载实质上表示cpu有事可做的cpu周期数,而不仅仅是虚拟拇指.

因此,如果您的请求实际上是真正的工作(而不是等待磁盘I/O),那么当工作完成时,可以预期负载会变高,因为cpu有事可做.

你需要寻找的东西就是用完cpu周期,就像响应时间开始攀升一样.

如果您的问题是请求太短以至于探查器无法显示您需要查看的内容,那么请考虑使用自动化工具来请求它处理数十万个请求.这应该有所帮助.