zoukankan      html  css  js  c++  java
  • jvm 内存溢出

    堆内存溢出

      堆内存中存在大量对象,这些对象都有被引用,当所有对象占用空间达到堆内存的最大值,就会出现内存溢出OutOfMemory:Java heap space

    永久代溢出

      类的一些信息,如类名、访问修饰符、字段描述、方法描述等,所占空间大于永久代最大值,就会出现OutOfMemoryError:PermGen space

    内存溢出的检测方法

    Jdk/bin目录下有很多检测工

    图形界面: Jconsole Jvisualvm

    命令行工具

      Jstat –gcutil pid 1000 100      FullGC频率:单次FullGC时间<200ms

      

      Jmap –histo pid | head -20

      

      Jmap –heap pid

      

    工程日志报错

    jvm 常见参数

      -Xms2048m,初始堆大小,建议<物理内存的1/4,默认值为物理内存的1/64

      -Xmx2048m,最大堆大小,建议与-Xms保持一致,默认值为物理内存的1/4

      -Xmn512m,新生代大小,建议不超过堆内存的1/2 -Xss256k,线程年轻代堆栈大小,建议256k

      -XX:PermSize=256m,永久代初始值,默认值为物理内存的1/64

      -XX:MaxPermSize=256m,永久代最大值,默认值为物理内存的1/4

      -XX:SurvivorRatio=8:年轻带中Eden区和Survivor区的比例,默认为8:1,即Eden(8),From Space(1),ToSpace(1)

      -XX:+UseConcMarkSweepGC:开启CMS垃圾回收器

    jmap -histo pid 查看收集对象信息(对象大小的收集)

    jmap -histo pid | head -20 查看前20个对象信息

  • 相关阅读:
    c++ 迷宫问题
    linux下恢复删除的文件
    c++ 分解数2
    c++ 平分石头
    多态
    设计模式中类的6种关系
    工厂方法模式
    设计原则之面向接口编程
    封装、继承
    便利构造器、单件模式
  • 原文地址:https://www.cnblogs.com/dwdw/p/11020544.html
Copyright © 2011-2022 走看看