Java 虚拟机调优及OOM,SOF错误查看

发布于 2021-03-11  719 次阅读


最近看到了关于JVM的方法区和永久代等概念,为了理解OutMemoryError(内存溢出)和StackOverFlowError(栈溢出)的概念,进行IDEA下的JVM调试;

调试方法;主要通过修改JVM的参数来测试;

修改入口:

IDEA---Help---Edit Custom  VM Options

JVM常用参数及参数大全:

//常见配置汇总
//堆设置
-Xms:初始堆大小
-Xmx:最大堆大小
-XX:NewSize=n:设置年轻代大小
-XX:NewRatio=n:设置年轻代和年老代的比值.如:为3,表示年轻代与年老代比值为1:3,年轻代占整个年轻代年老代和的1/4
-XX:SurvivorRatio=n:年轻代中Eden区与两个Survivor区的比值.注意Survivor区有两个.如:3,表示Eden:Survivor=3:2,一个Survivor区占整个年轻代的1/5
-XX:MaxPermSize=n:设置持久代大小
//收集器设置
-XX:+UseSerialGC:设置串行收集器
-XX:+UseParallelGC:设置并行收集器
-XX:+UseParalledlOldGC:设置并行年老代收集器
-XX:+UseConcMarkSweepGC:设置并发收集器
//垃圾回收统计信息
-XX:+PrintGC
-XX:+PrintGCDetails
-XX:+PrintGCTimeStamps
-Xloggc:filename
//并行收集器设置
-XX:ParallelGCThreads=n:设置并行收集器收集时使用的CPU数.并行收集//线程数.
-XX:MaxGCPauseMillis=n:设置并行收集最大暂停时间
-XX:GCTimeRatio=n:设置垃圾回收时间占程序运行时间的百分比.公式为1/(1+n)
//并发收集器设置
-XX:+CMSIncrementalMode:设置为增量模式.适用于单CPU情况.
-XX:ParallelGCThreads=n:设置并发收集器年轻代收集方式为并行收集时,使用的CPU数.并行收集线程数.
-XX:+CMSParallelRemarkEnabled:并发清理

参数查阅: https://blog.csdn.net/privateobject/article/details/105944578

JVM内存溢出实战(调优实战)

配置:

-XMS20m,设置JVM初始内存为20m,与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存

-Xmx20m,设置JVM最大可用内存20m

-XX:HeapDumpOnOutOfMemoryError,表示当JVM发生OOM时,自动生成DUMP文件;

其余代码参考转载博客:https://blog.csdn.net/chonywang/article/details/101171456?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.control&dist_request_id=1328626.20407.16154258417985887&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.control;

 

巨坑!修改JVM的参数之后再次启动IDEA可能报错!!!

需要修改该idea64.exe.vmoptions的值,或者把用户下的idea64.exe.vmoptions文本删除;

具体解决步骤和原因:

idea.vmoption文件修改错误怎么还原?
我看了安装目录下的vmoptions文件没错误没变化,idea却打不开
下图是缓存目录下的文件

idea默认应该读取安装目录下的vmoptions文件
但是你在idea软件里修改之后,

 

他会在缓存目录下生成一个vmoptions文件,idea再次打开就会读取这个缓存文件
修改之后idea会读取
C:\Users\你的用户名\AppData\Roaming\JetBrains\IntelliJIdea2020.1\idea64.exe.vmoptions
下的文件,而不是安装目录下的文件,修改安装目录下的文件没用,我们给这个缓存文件删除或者改正确,idea就可以打开了

修改后,idea成功打开
————————————————
版权声明:本文为CSDN博主「ZGIT」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u014299266/article/details/105821343/


她喜欢所以就做咯