我想分析程序的內存使用情況,但我不斷收到堆棧溢出錯誤。是netbeans java profiler如何在〜64mb時出現堆溢出錯誤?
我使用NetBeans內存設置如下:在
我使用-J-Xss2m -J-Xms32m -J-XX:PermSize=32m -J-XX:MaxPermSize=200m
該項目的內存設置如下:
-Xms256m -Xmx512m
我不確定哪裏有65 MB來自哪裏。有人可以幫幫我嗎?
謝謝 GRAE
PS:NetBeans的6.5
我想分析程序的內存使用情況,但我不斷收到堆棧溢出錯誤。是netbeans java profiler如何在〜64mb時出現堆溢出錯誤?
我使用NetBeans內存設置如下:在
我使用-J-Xss2m -J-Xms32m -J-XX:PermSize=32m -J-XX:MaxPermSize=200m
該項目的內存設置如下:
-Xms256m -Xmx512m
我不確定哪裏有65 MB來自哪裏。有人可以幫幫我嗎?
謝謝 GRAE
PS:NetBeans的6.5
你沒有把-Xmx
(最大堆大小)針對NetBeans本身,默認爲64MB。
不完全。 NetBeans動態調整-Xmx,具體取決於物理內存(例如,在我的4GB計算機上,它將最大堆數設置爲768M) – 2011-07-13 18:50:21
此65M上限來自您的應用程序。它與NetBeans無關。你需要增加應用程序的最大堆以擺脫這個OOME。
此外,倖存的幾代人的數量在不斷增長,表明內存泄漏很可能。
您知道有關Netbeans如何實現這一點的任何參考嗎?我的意思是找到泄漏。從我的研究中,我認爲這是一個類加載器問題。 – 2011-07-12 13:07:28
首先,當您的應用程序崩潰時,它應該生成一個堆轉儲,它可以直接在NetBeans或任何其他heapwalker(MAT,例如。)中打開。在那裏你可以本地化泄漏的課程。 然後嘗試http://netbeans.org/kb/articles/nb-profiler-uncoveringleaks_pt1.html查明泄漏實例的分配位置。 – 2011-07-13 18:44:33
感謝您的鏈接 – 2011-07-21 21:40:51
您使用的是哪個版本的Java,以及您的盒子中有多少物理內存? – 2010-07-25 21:42:55