[問題] VistualVM能否找出哪一個method吃掉記憶

作者: comodore (Commodore)   2017-06-21 18:25:01
目前系統執行大量資料進行測試時
跑到一半便會出現out of memory的問題
之前試過使用Vistual JVM去找出最花時間的method是哪個
來降低執行速度太慢的問題,
現在遇到另一個記憶體空間不足的問題,
但似乎Vistual JVM沒有辦法顯示是哪一個method一直在爆量增加記憶體,
還是找吃掉記憶體元凶通常不是這樣看呢?
或者是要用其他工具才有辦法看到更詳細的分析結果呢?
麻煩大家
謝謝
作者: Lordaeron (Terry)   2017-06-21 19:44:00
花錢請人找問題吧, 想學一下就會, 很多人早升天了.
作者: loser5566 (5566)   2017-06-21 21:07:00
Heap dump?
作者: Lordaeron (Terry)   2017-06-21 21:50:00
heap dump不會告訴你哪個METHOD吃RESOURCE的.
作者: Chikei ( )   2017-06-22 01:26:00
VisualVM -> Profiler -> Settings -> Memory settings ->Record allocations stack traces -> start profiling ->Take Snapshot -> 右鍵 -> Show Alloc. Stack Traces
作者: comodore (Commodore)   2017-06-22 09:53:00
failed to obtain results snapshotthe profiled application terminated
作者: Lordaeron (Terry)   2017-06-22 23:11:00
程式可能重寫比你這麼找半天來得快囉.
作者: cowbaying (是在靠北喔)   2017-06-24 14:11:00
是可以看哪個物件吃了最多記憶體找method除非是程式在寫的時候就有寫監視功能進去不然沒辦法知道是哪個METHOD
作者: WildCherry (手、腳、刀都不用)   2017-06-24 18:06:00
jrockit?
作者: Lordaeron (Terry)   2017-06-24 18:13:00
一堆沒做過的人,提了一堆工具,認為就可以有答案了.
作者: gmoz ( This can't do that. )   2017-06-25 10:56:00
沒這麼簡單阿~~
作者: cowbaying (是在靠北喔)   2017-06-27 22:52:00
我說的是用jstat但是有沒有符合原PO的需求就不曉得了jstat可以看到哪個物件生成數最多 占多少記憶體應該是說變數啦
作者: csieflyman (風之驕子)   2017-06-28 19:01:00
code review + 逐漸縮小範圍測試你運氣算好的 可以透過測試重現OOM問題
作者: ssccg (23)   2017-06-28 19:46:00
能歸在method吃掉的記憶體只有local variable吧其他的物件就在heap上啊

Links booklink

Contact Us: admin [ a t ] ucptt.com