GC垃圾回收

  1. gc=full gc +young gc

    从网站建设到定制行业解决方案,为提供成都做网站、成都网站建设服务体系,各种行业企业客户提供网站建设解决方案,助力业务快速发展。创新互联将不断加快创新步伐,提供优质的建站服务。

  1. Java jvm 内存=堆内存+非堆内存

  2. 堆内存(-Xms-Xmx)=年轻代(-Xmn)+年老代

-Xms,初始分配内存,-Xmx最大分配内存,一般情况下设置成一样的值

  1. 年轻代=Eden+s0+s1

  2. 非堆内存=持久代(-XX:PermSize -XX:MaxPermSize)+code cache(-XX:reservedcodecachesize)

-XX:PermSize(初始值大小)、-XX:MaxPermSize(最大值)

【jvm内存模型图】

GC垃圾回收

  1. gc:自动检测和释放不再使用的内存。(垃圾回收)

  2. Minor gc:频率快是正常 ,也叫young  gc

  3. Major gc:尽可能让他频率少【重点关注】  ,也叫full gc

  4. 持久代(Perm):使用的class对象

  5. Jvm的生命周期:①一个对象,首先放置在Eden区,结果发现需继续使用,不能进入gc回收,则会放置在s区,s0和s1随意。②如果放在s0区,过一段时间仍不能gc回收,则会放置在s1区③再过一段时间仍不能回收,则会存放在年老代区域。④在年老代存放很长时间后,可能被major gc回收,也可能继续存活

  6. Jvm内存参数设置

  • -Xms-Xmx设置为一样的值,设置为可用内存的80%

  • -Xmn设置为堆内存的3/8

  • -XX:PermSize(默认为物理内存的1/64)、-XX:MaxPermSize(默认为物理内存的1/4)

  1. Jvm公共参数配置

  • -server:服务器模式,一定要放在所有参数之前

  • -Xss:指定每个线程占的大小(建议不要超过1M)

  • -XX:SurvivorRatio:设置年轻代里面Eden区和s区的大小比值

  • -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=path_address:JVM崩溃的时候会打印出heap dump

  • -XX:+AggressiveOpts:启用这个参数,则每当JDK版本升级时,你的JVM都会使用最新加入的优化技术(如果有的话)

  • -Djava.awt.headless=true:一般放在最后,主要是解决图表不兼容

  1. gc的类型

  • Serial GC:适用内存占用比较少的应用,性能最差

  • Parallel GC:年轻代多线程,年老代使用单线程

  • Parallel Old GC:年轻代和年老代都使用多线程收集垃圾

  • CMS:多线程并发回收垃圾,适用于不能忍受长时间停顿要求快速响应的应用,比较常用,最好和-XX:+UseParNewGC一同使用

  • -XX:+UseG1GC

  1. gc相关参数

  • -XX: +DisableExplicitGC:禁止使用System.gc

  • -XX:+PrintGCTimeStamps -XX:+PrintGCDetails –Xloggc:<filename>打印gc回收的详情日志

  • -XX:+UseGCOverheadLimit:让程序提前结束,达到预警目的

  • -XX:+UseCMSCompactAtFullCollection:对存活对象进行整理,使内存碎片减少

网站栏目:GC垃圾回收
链接地址:/article44/pjdohe.html

成都网站建设公司_创新互联,为您提供移动网站建设网站设计公司关键词优化外贸建站响应式网站做网站

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都做网站