簡體   English   中英

Java代碼的CPU使用率發生變化

[英]Java code's CPU usage changing

當我嘗試粗略估計代碼的運行時時,我遇到了這種觀察:代碼的第一部分的CPU使用率一直保持在10%左右,其中涉及遍歷2個字符串並將其放入哈希集中。 當代碼到達第二部分時(嵌套2個循環,外加巨大的數組分配),CPU使用率猛增到50%。

我不認為我做了與多線程有關的任何事情。 另外,如果我稍微修改了第一部分(諸如添加另一個for循環這樣的簡單操作),CPU使用率也會相差很大。 為什么會這樣呢? 有點好奇誰在利用CPU消耗。

這不一定是您運行的代碼與CPU使用率之間的直接比較,因為JVM在管理垃圾回收時會根據當時堆中的內容來波動CPU使用率。 如果它突然上升到50%,然后回落,這可能是巧合,同時垃圾收集開始了。

您可以通過運行jdvm bin文件夾中的jvisualvm.exe來獲取更多詳細信息。 我不確定是否有多少可用的CPU使用率信息,但是至少有一些插件可以為您提供CPU使用率信息。 根據david99world的回答,這也是查看堆使用情況的圖形方式。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM