使用jvisualvm監控JAVA程式,注意對程式效能的影響

來源:互聯網
上載者:User

      最近在使用阿里的Dubbo【http://code.alibabatech.com/wiki/display/dubbo/Home-zh】做一個即時分析功能,為了提高效能,對程式進行了很多的最佳化工作,在此過程中JDK中的jvisualvm的確功勞不小,但是也有讓我誤解的地方。

   先說它的功勞:

   第一:可以幫我監控線程的數量,及時發現沒有正常結束的線程。由於給dubbo配置了800的線程池,我當前活動的線程中守護線程為826,總數減去800個線程池中的線程,dubbo佔用了26個守護線程,再多出來的線程大多就是我程式中產生的線程了。

   第二:可以監控CPU的使用方式。

  第三:監控堆佔用記憶體的情況。

  第四:監控總的類的載入數量。


  以上四個監控,均無須修改原有的JAVA原始碼,只需要只步簡單的配置即可實現,詳細配置可參見:【http://blog.csdn.net/ssergsw/article/details/9933227】

下面說一下它的問題:

添加了監控後,堆記憶體的佔用情況和正常時佔用有不小的偏差:

剛開始使用監控後3分鐘的情況:



下面是使用監控後10分鐘的情況:




對比兩個圖,可以看出,在沒有使用監控的時候,堆記憶體的佔用比較平衡,使用了監控後堆記憶體迅速增加,之後大約5分鐘後GC一次,然後又慢慢上升,所以建議大家在使用監控的時候,多親關注線程和類的載入的情況,另外,不要長期使用工具監控程式!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.