Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java代码';s的CPU使用率正在改变_Java - Fatal编程技术网

Java代码';s的CPU使用率正在改变

Java代码';s的CPU使用率正在改变,java,Java,当我试图粗略估计我的代码的运行时时,我遇到了这种情况:在代码的第一部分,CPU使用率保持在10%左右,这涉及到遍历2个字符串,并将内容扔到哈希集中。当代码到达第二部分(2个嵌套for循环,加上巨大的数组分配)时,CPU使用率飙升到50% 我认为我没有做任何与多线程相关的事情。另外,如果我稍微修改第一部分(非常简单的事情,比如添加另一个for循环),CPU的使用也会有很大的变化。为什么会这样?有点好奇谁在利用CPU消耗 这不一定是正在运行的代码与CPU使用率之间的直接比较,因为JVM在管理垃圾收集

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


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

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

您可以通过运行jvisualvm.exe获得更多详细信息,jvisualvm.exe位于您的jdk bin文件夹中。我不确定有多少CPU使用信息是现成的,但至少有插件可以给你CPU使用信息。根据david99world的回答,这也是查看堆使用情况的一种图形化方法


每个CPU 10%或跨一组CPU 10%。top/task manager说什么在消耗CPU?@charlesforsyth Java(TM)平台SE二进制文件是我说的,这不是我要问的。当JVM使用10%的CPU时,是单个CPU的10%,还是所有CPU的10%可用?还有哪些进程正在使用剩余的CPU容量?