作者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/cn.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