Java代码的CPU使用率发生变化

时间:2013-04-03 14:58:42

标签: java

当我试图对代码的运行时进行粗略估计时,我遇到了这个观察结果:代码的第一部分的CPU使用率保持在10%左右,其中包括遍历2个字符串并将内容扔到哈希集中。当代码到达第二部分时(2个嵌套for循环,再加上一个巨大的数组分配),CPU使用率飙升至50%。

我认为我没有做过与多线程有关的任何事情。此外,如果我稍微修改第一部分(非常简单,如添加另一个for循环),CPU使用率也会有很大差异。为什么会这样?有点好奇谁在利用CPU消耗。

2 个答案:

答案 0 :(得分:0)

这不一定是正在运行的代码与CPU使用率之间的直接比较,因为JVM将根据管理垃圾收集时该堆中的内容来调整CPU使用率。如果它突然上升到50%然后退缩,这可能是巧合,因为同时垃圾收集开始。

答案 1 :(得分:0)

您可以通过运行位于jdk bin文件夹中的jvisualvm.exe来获取更多详细信息。我不确定开箱即用的CPU使用信息有多少,但至少有一些插件可以为您提供CPU使用信息。根据david99world的回答,这也是一种查看堆使用情况的图形方式。

http://visualvm.java.net/index.html