2012-10-27 48 views
0

我正在運行mule 2.2.1獨立服務器並使用yourkit對其進行分析。我試圖分析分析器的輸出結果,如果有人能夠幫助閱讀結果,我會很感激。如何從這些分析器結果中得出結論

大約99%的堆空間被字符串消耗,char []這是正常的嗎?,我應該看看這個嗎?

PS Old Gen使用總共3.4 GB堆空間中的2.7 GB。我應該如何解釋這一點?它從來沒有

在GC部分,它告訴我,它花了20%的時間在GC,但我沒有看到任何次要或主要集合,我應該如何閱讀?

Memory consumption

GC behavior

感謝

回答

3

About 99% of the heap space is consumed by String and char[] is this normal ?

你應該打開引用屏幕和檢查誰持有這些Stringschar[]如果是你的一些應用程序類,它肯定是異常的。在這種情況下,請重新訪問您的代碼並確保您的對象引用已被釋放以進行垃圾回收。

The PS Old Gen consumes 2.7 GB of the total 3.4 GB heap space used.

使用不健全的權利前期這多少堆空間。如果您有大量應用程序並通過設計緩存大量數據,那麼它可能是好的。如果不是,你的對象引用應該給你清晰的圖片why。一旦你知道原因(不需要的對象引用),然後清除它們。

可能存在內存泄漏:

在非內存泄漏的屏幕,它也不是很清楚,但看起來像圖是最終(整體)往上走。請仔細查看您的數據,稍微延長忽略峯值的時間,並確保它不會上升。如果它正在上升,那麼應用程序代碼中可能會有一些內存泄漏。

希望這會有所幫助。

+0

「你應該打開參考屏幕,並檢查誰拿着這些」我找不到這個標籤。我怎麼能跟蹤這些字符串的引用?沒有應用程序本身不會緩存很多數據。 「在非內存泄漏屏幕」你的意思是非堆標籤?關於GC行爲的任何想法? – Sudarshan

+0

您是否指的是http://www.yourkit.com/docs/11/help/paths.jsp中的「來自GC根的路徑」。根據你的經驗,這種行爲會在應用程序中造成2-3秒的停頓嗎? – Sudarshan

+0

@蘇達爾森:是的。檢查您的應用程序類是否出現在路徑中。高內存依賴性和內存泄漏確實會導致應用程序性能下降。 –