使用MAT工进行内存溢出定位及分析.docxVIP

  • 3
  • 0
  • 约3.45千字
  • 约 10页
  • 2018-10-15 发布于江苏
  • 举报
使用MAT工进行内存溢出定位及分析

内存溢出监控及分析问题所在 内存溢出内存泄漏的名词解释 内存溢出(out of memory):就是你要求分配的内存超出了系统能给你的,系统不能满足需求,于是产生溢出。 内存泄露(memory leak):是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄露危害可以忽略,但内存泄露堆积后果很严重,无论多少内存,迟早会被占光。 何时会抛出内存溢出错误 何时会抛出Out Of MemoryException,并不是内存被耗空的时候才抛出 JVM98%的时间都花费在内存回收 每次回收的内存小于2% ? 满足这两个条件将触发OutOfMemoryException,这将会留给系统一个微小的间隙以做一些Down之前的操作,比如手动打印Heap Dump。 ?Q:为什么崩溃前垃圾回收的时间越来越长? ?A:根据内存模型和垃圾回收算法,垃圾回收分两部分:内存标记、清除(复制),标记部分只要内存大小固定时间是不变的,变的是复制部分,因为每次垃圾回收都有一些回收不掉的内存,所以增加了复制量,导致时间延长。所以,垃圾回收的时间也可以作为判断内存泄漏的依据 ?Q:为什么Full GC的次数越来越多? ?A:因此内存的积累,逐渐耗尽了年老代的内存,导致新对象分配没有更多的空间,从而导致频繁的垃圾回收 ?Q:为什么年老代占用的内存越来越大? ?A:因为年轻代的内存无法被回收,越来越多地被Cop

文档评论(0)

1亿VIP精品文档

相关文档