zoukankan      html  css  js  c++  java
  • 第二章:Java堆内存溢出

    • Java堆溢出
    可以通过不停的创建对象来造成堆内存溢出
    public static void main(String[] args) {
    List list = new ArrayList<>();
    while(true) {
    list.add(new ObjectBIg())
    }
    }
     
    使用-XX:+HeapDumpOnOutOfMemoryError可以在虚拟机在出现内存溢出异常时Dump出当前的内存堆转存储快照以便后续进行分析。
    对Dump快照进行分析,需要区分出到底是内存泄漏Memory Leak还是内存异常Memory Overflow。
    如果是内存泄漏,进一步通过工具对GC Root的引用链进行分析。
    如果不是内存泄漏,就是内存中的对象确实都还必须存活,那就应该修改虚拟机参数Xmx Xms,同时判断是否可以通过调大物理内存的方式解决。然后从代码角度检测是否存在某些对象生命周期过长、持有状态时间过长的情况,尝试减少程序运行期的消耗。
    收藏文章数量从多到少与“把书读薄”是一个道理
  • 相关阅读:
    杨辉三角
    100以内的素数
    九九
    MyDate
    计算器
    100以内素数
    杨辉三角形
    九九乘法表
    窗口关闭事件
    计算器界面
  • 原文地址:https://www.cnblogs.com/use-D/p/10618767.html
Copyright © 2011-2022 走看看