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,同时判断是否可以通过调大物理内存的方式解决。然后从代码角度检测是否存在某些对象生命周期过长、持有状态时间过长的情况,尝试减少程序运行期的消耗。
    收藏文章数量从多到少与“把书读薄”是一个道理
  • 相关阅读:
    Upgrading to MySQL 5.7---focusing on temporal types
    mysqldump备份7
    mysqldump原理5
    mysqldump原理4
    mysqldump原理3
    mysqldump原理2
    mysqldump原理1
    MySQL复制中slave延迟监控
    赵浮云的blog 关注IT运维,开源硬件。
    爱维帮---LVS
  • 原文地址:https://www.cnblogs.com/use-D/p/10618767.html
Copyright © 2011-2022 走看看