簡體   English   中英

堆轉儲分析-查找OutOfMemory異常的根本原因

[英]Heap Dump Analysis - Find root cause of OutOfMemory Exception

我正在運行一個最大堆大小為4 gigs -Xms4096m -Xmx4096m -Xmn1024m且GC配置為-XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=50並且GC間隔為Dsun.rmi.dgc.server.gcInterval=43200000 -Dsun.rmi.dgc.client.gcInterval=43200000

突然我的應用程序去了內存不足的堆,我在同一場合進行了線程轉儲和堆轉儲。 在分析線程轉儲時,由於為hashMap和arrayList創建一些值而導致線程卡住。 ByteArrayOutStream已在線程之一中創建了鎖。

在eclipse內存分析器工具中的“分析堆轉儲”上,它清楚地表明bytearray對象已經占據了將近1 Gigs的堆。 從GCViewer可以看出,它的峰值只有幾分之一秒。 我不太清楚為什么字節數組對象突然使用了1 Gigs的空間。 有人可以幫我縮小罪魁禍首的范圍嗎?

-應用服務器-Weblogic 12c

在eclipse內存分析器工具中的“分析堆轉儲”上,它清楚地表明bytearray對象已經占據了將近1 Gigs的堆。

使用最短路徑到MAT的GC根功能,可以查看哪些引用保留在該字節數組上。

暫無
暫無

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

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