[英]Which GC to use when profiling memory?
我使用NetBeans探查器(實際上是嵌入式VisualVM)來監視Java應用程序的內存消耗。 我使用堆視圖, 尚存的生成視圖和內存轉儲來跟蹤內存泄漏。
堆視圖顯示了已使用的內存總量,但是由於垃圾回收器管理內存的方式,這有點混亂。 該圖基本上是鋸齒形的,因此不是特別可讀。 有時,我會強制執行GC,以便我可以更准確地了解實際內存消耗。
我想知道:是否有一個垃圾回收器更適合於內存分析,並且生成的堆圖更接近於實際的內存使用情況? 或更籠統地說,我可以使用哪些JVM設置( -XX
選項或其他設置)來有效地跟蹤內存泄漏?
我建議您在不使用分析器的情況下使用打算使用的GC。 使用這種方法,您將獲得一個圖形,該圖形更像應用程序的行為,盡管並不總是那么可讀。
如果您想要一個更具可讀性但不太現實的圖形,則可以將最小內存大小增加到1 GB。 這將導致較少的GC和較少的尖峰圖,但是除了使圖更漂亮之外,可能對您沒有幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.