针对上面这些问题,我们应该从实践出发,带着目的学习。这样不但记得牢、而且一开始就面向实践,理解得也要比单纯的看资料深入。在这篇文章中,就以我们公司的某个后端服务的java启动选项为例,介绍这些jvm选项,逐个解释这些选项的作用,及相关的JVM内存管理、GC或类加载等知识。
我们公司某一个大流量的后端服务配置了这些jvm选项(这些选项也是目前国内互联网公司经常用到的),如下图所示。
1) -Xms4G解释
这个配置项对应的JVM选项是 -Xms,其中,4G是参数值。
我们知道java命令是用来启动java虚拟机执行java代码的。java命令支持很多选项,在这些选项当中,以"-X"开头的,都是Java虚拟机选项;不以"-X"开头的选项,不是传给Java虚拟机的,例如"java -jar filename.jar"中的"-jar"不是传给JVM的。
所以,-Xms4G中的-X代表这是一个jvm选项,m代表memory,对于jvm而言memory就是堆;s是smallest,最小的意思。