zoukankan      html  css  js  c++  java
  • 堆内存溢出定位方法

      最近做的稳定性测试,大概跑了2小时左右LR前端报请求超时、HTTP状态码为500错误,日志报java.lang.OutOfMemoryError:Java heap space错误,明显是堆内存溢出问题。

    内存溢出原因:老年代满了就会自动触发fullgc进行垃圾回收,但是如果老年代里的对象回收不掉的话,如果此时有从年轻代过来的对象,但老年代没有足够的空间放这些对象的话,就会产生内存溢出。

    定位方法:用JDK自带的命令jmap -histo pid去查看堆内存的使用情况

    会看到实例被调用的次数,从大到小排序,越排前面说明占内存空间越大

    发现排名第一的就是自己应用程序里所调用的方法,此时只需要在代码里找到该方法,发现该方法使用之后没有及时被释放导致的内存溢出,并交由开发修改即可。

  • 相关阅读:
    生成器
    迭代器
    装饰器
    闭包函数
    函数对象
    函数
    文件
    字符编码
    基本的数据类型和内置方法02
    基本的数据类型和内置方法01
  • 原文地址:https://www.cnblogs.com/lanyy/p/8585597.html
Copyright © 2011-2022 走看看