[问题] 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