博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
IDEA JVM优化 实例
阅读量:6848 次
发布时间:2019-06-26

本文共 966 字,大约阅读时间需要 3 分钟。

hot3.png

          昨天启动工程,发现占用内存特别多,占用了1个多G,导致系统特别卡,这还只是刚启动呢,什么都没做,我不能忍,卡的人心烦,而且工作 效率也低,所以看是不是能解决掉这个问题?

 

112852_41Dm_3187740.png

 

     首先看看程序中是否有代码问题导致内存吃这么多?通过JDK自带的VisualVM监控,发现都挺正常的,使用的堆常在250M以内,还能接受,但是分配的话,是分配了900M的空间,初步估计应该是初始化的时候撑大的,但没有释放回去,所以决定通过设置JVM参数的方法看是不是能优化一下;

 

112900_6zQL_3187740.png

 

在IDEA中设置JVM启动参数

 

 

112908_iFgZ_3187740.png

 

-Xmx600m                                  最大堆大小

-Xms600m                                  初始堆大小

-Xmn100m                                  年轻代大小

-XX:SurvivorRatio=8                  Eden区与Survivor区的大小比值,设置为8,则两个Survivor区与一个Eden区的比值为2:8,一个Survivor区占整个年轻代的1/10

-XX:+UseG1GC                              使用 G1 (Garbage First) 垃圾收集器 (因为本地是JDK版本是JDK8,所以启用G1收集器,8以下的可以试用CMS收集器)

-XX:ParallelGCThreads=8                   设置垃圾收集器在并行阶段使用的线程数[一般设置为本机CPU线程数相等,即本机同时可以处理的个数,设置过大也没有用]

-XX:ConcGCThreads=8                       并发垃圾收集器使用的线程数量

-XX:+DisableExplicitGC                    禁止在启动期间显式调用System.gc()

-XX:+HeapDumpOnOutOfMemoryError           OOM时导出堆到文件

-XX:HeapDumpPath=d:/dumps/xxx.dump        导出OOM的路径(此处自定义dump文件路径)

-XX:+PrintGCDetails                       打印GC详细信息

-XX:+PrintGCTimeStamps                    打印CG发生的时间戳

-XX:+PrintHeapAtGC                        每一次GC前和GC后,都打印堆信息

-XX:+TraceClassLoading                    监控类的加载

 

设置完后再查看内存就基本上稳定在600M左右了,一下少了差不多一半,还是很值得的。这下再也不用担心电脑卡了。。

 

112749_ixb5_3187740.png

转载于:https://my.oschina.net/u/3187740/blog/1631536

你可能感兴趣的文章
【Cocos2d-x】开发基础-Cocos2d-x核心概念
查看>>
MyBatis(2):config.xml文件
查看>>
Sonar相关汇总
查看>>
重构——41引入断言(Introduce Assertion)
查看>>
用prototype 方法$A() uncheck radio button
查看>>
【框架】[Spring]AOP拦截-使用切点:AspectJExpressionPointcut-切点语言
查看>>
谈一谈Http Request 与 Http Response
查看>>
SQLSERVER使用密码加密备份文件以防止未经授权还原数据库
查看>>
惠普集团放弃Salesforce 采用微软的云端CRM
查看>>
什么是双码流技术?
查看>>
中兴通讯STN助力中国联通SD-UTN江苏现网测试圆满完成
查看>>
JUnit in java 真正的测试用例实战
查看>>
国际主流企业级硬盘(机械&固态)产品锦标赛 —— 国内首次企业级硬盘基准测试...
查看>>
业界"恶棍"Khosla向戴尔-EMC创新工作发出猛烈抨击
查看>>
传统企业转型时代,如何成为协同领域新标杆?
查看>>
大数据架构的未来
查看>>
《笑傲测试》笔记(第二式:蓬门始开)
查看>>
监控摄像机选型攻略之全天候机型选用
查看>>
Java异常的概念和分类
查看>>
Java中finally关键字的使用
查看>>