2014-05-16 31 views
4

我們已經使用jmap大約2年來測量在Java 6下運行的大型多服務器應用程序的堆大小。我們每分鐘都會進行一次測量。每次測量都需要(經過時間)小於1秒。jmap在Java 7下顯得較慢,減慢了JVM

我們現在正在Java 7下測試同一個應用程序。現在突然jmap經常需要10秒,20秒,有時更長,並且在那段時間它似乎放慢了速度(或者甚至停止!)。

我們在jmap輸出(在Java 6和Java 7之間)中看到的唯一區別是關於有多少個字符串被實現的附加信息。 (和它似乎就像這是更慢的部分。)

有誰知道發生了什麼事情,或在jmap或Java 7中可能會導致此更改嗎?

我們正在使用「jstat -gc」來測試以獲得相同的信息,並且看起來好多了,而且看起來並沒有導致我們用jmap看到的應用程序減速。對於如何快速測量堆大小還有其他建議嗎?

任何想法,歡迎提前致謝。

+0

可能相關的問題在http://stackoverflow.com/questions/20832793/java-get-heap-dump-without-jmap-or-without-hanging-the-application?rq=1和http:// stackoverflow的.com /問題/ 5287010/IS-JVM-停而執行的-JMAP?RQ = 1 –

回答

0

我個人非常喜歡Oracle Mission Control監視堆大小。它有更多的選項,但它的作用就像監視堆大小的魅力。