作者comodore (Commodore)
看板java
標題[問題] VistualVM能否找出哪一個method吃掉記憶
時間Wed Jun 21 18:25:01 2017
目前系統執行大量資料進行測試時
跑到一半便會出現out of memory的問題
之前試過使用Vistual JVM去找出最花時間的method是哪個
來降低執行速度太慢的問題,
現在遇到另一個記憶體空間不足的問題,
但似乎Vistual JVM沒有辦法顯示是哪一個method一直在爆量增加記憶體,
還是找吃掉記憶體元凶通常不是這樣看呢?
或者是要用其他工具才有辦法看到更詳細的分析結果呢?
麻煩大家
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.163.110.208
※ 文章網址: https://webptt.com/m.aspx?n=bbs/java/M.1498040703.A.1EF.html
1F:→ Lordaeron: 花錢請人找問題吧, 想學一下就會, 很多人早升天了. 06/21 19:44
2F:推 loser5566: Heap dump? 06/21 21:07
3F:→ Lordaeron: heap dump不會告訴你哪個METHOD吃RESOURCE的. 06/21 21:50
4F:→ Chikei: VisualVM -> Profiler -> Settings -> Memory settings -> 06/22 01:26
5F:→ Chikei: Record allocations stack traces -> start profiling -> 06/22 01:27
6F:→ Chikei: Take Snapshot -> 右鍵 -> Show Alloc. Stack Traces 06/22 01:28
7F:→ comodore: failed to obtain results snapshot 06/22 09:53
8F:→ comodore: the profiled application terminated 06/22 09:53
9F:→ Lordaeron: 程式可能重寫比你這麼找半天來得快囉. 06/22 23:11
10F:→ cowbaying: 是可以看哪個物件吃了最多記憶體 06/24 14:11
11F:→ cowbaying: 找method除非是程式在寫的時候就有寫監視功能進去 06/24 14:11
12F:→ cowbaying: 不然沒辦法知道是哪個METHOD 06/24 14:12
13F:→ WildCherry: jrockit? 06/24 18:06
14F:→ Lordaeron: 一堆沒做過的人,提了一堆工具,認為就可以有答案了. 06/24 18:13
15F:推 gmoz: 沒這麼簡單阿~~ 06/25 10:56
16F:→ cowbaying: 我說的是用jstat 06/27 22:52
17F:→ cowbaying: 但是有沒有符合原PO的需求就不曉得了 06/27 22:52
18F:→ cowbaying: jstat可以看到哪個物件生成數最多 占多少記憶體 06/27 22:53
19F:→ cowbaying: 應該是說變數啦 06/27 22:53
20F:推 csieflyman: code review + 逐漸縮小範圍測試 06/28 19:01
21F:推 csieflyman: 你運氣算好的 可以透過測試重現OOM問題 06/28 19:03
22F:→ ssccg: 能歸在method吃掉的記憶體只有local variable吧 06/28 19:46
23F:→ ssccg: 其他的物件就在heap上啊 06/28 19:48