大家好,今天小编关注到一个比较有意思的话题,就是关于jvm多久gc一次的问题,于是小编就整理了3个相关介绍的解答,让我们一起看看吧。
jdk jvm.cfg文件配置说明?
jvm.cfg文件用于配置java、javac能够使用的option,其中配置顺序非常重要,第一个为default JVM(不管其是KNOWN还是IGNORE;IGNORE仅仅是禁用VM option;ERROR则报错显示not supported)
对于jdk8该文件在JAVA_HOME/jre/lib/目录下;对于jdk9、10、11、12该文件在JAVA_HOME/lib/目录下;删除jvm.cfg文件的话,则执行java命令会报错
可以看到对于mac来说其open jdk的jvm.cfg中-server位于-client前面,-server是default JVM,而-client则被忽略
怎么启动JAVA里的JVM?
方法如下:
1、虚拟机的启动入口位于share/tools/launcher/java.c的main。
2、配置JVM装载环境。
3、解析虚拟机参数。
4、设置线程栈大小。
5、执行Java main。
配置JVM装载环境的方法:
1、Java代码执行时需要一个JVM环境,JVM环境的创建包括两部分:JVM.dll文件的查找和装载,我们来看一段Jre通过环境的路径和系统版本寻找jvm.cfg文件的代码。
说明: 1)GetJREPath()查找当前JRE环境的所在路径。
survivorratio默认是8还是32?
关于Edon区和Survivor区的占比配置,Edon(伊甸园)是对象最开始去的地方,而Survivor作为young gc之后对象去的地方,关于JVM GC这里不再详述,这里重点讲一下JVM参数-XX:SurvivorRatio=8。
SurvivorRatio的默认值为8,言外之意就是Survivor和Edon的比例是8:1:1,这里提醒下,Survivor是有两个的(每次gc都会倒换,倒换一定次数之后触发old gc)。
到此,以上就是小编对于jvm gc次数的问题就介绍到这了,希望介绍的3点解答对大家有用。