刚参加工作,发现每次配置启动时,在
都配置了。虽然也是知道是配置虚拟机的,可是具体有什么用,不晓得。特此记录一下。
-Xms512m
-Xmx1024m
-XX:PerSize=512M
-XX:MaxPersize=1024M
-noverify
-Xms512m
完整格式是:
-Xmssize
这是一个不标准的选项(标准的选项是所有类型的虚拟机都可以使用的),而这个选项是特定于Java HotSpot Virtual Machine的。意思是设置堆的初始化大小,值的大小必须大于1M并且是1024byte的倍数。默认单位是byte,不过末尾可以使用k或者K去指明单位是kilobytes。同理可以使用m/M,g/G。下面是使用该选项设置堆的初始化大小为6M。
-Xms6291456
-Xms6144k
-Xms6m
如果你不设置的话,那么堆的初始化大小为老年代和新生代的大小总和。
tips:
可以使用-Xmn option 或者 -XX:NewSize option来设置新生代的大小。
-Xmx1024m
完整格式是:
-Xmssize
设置堆的最大大小,也必须为1024的倍数,并且必须大于2m.
-XX:PerSize=512M
permanent generation(由叫做non-heap),其实就是java虚拟机运行时数据区中的方法区。
用来设置方法区触发垃圾回收机制的内层大小。当超过大小就会触发垃圾回收机制。在jdk8中是不建议的,推荐使用-XX:MetaspaceSize替换。
Sets the space (in bytes) allocated to the permanent generation that triggers a garbage collection if it is exceeded. This option was deprecated un JDK 8, and superseded by the -XX:MetaspaceSize option.
XX:MaxPersize=1024M
设置方法区最大大小。同样在jdk8中是不建议的,建议使用 -XX:MaxMetaspaceSize替换。
Sets the maximum permanent generation space size (in bytes). This option was deprecated in JDK 8, and superseded by the -XX:MaxMetaspaceSize option.
-noverify
关闭字节码校验。
可以参考一下-Xverify:mode 和文章 JVM的noverify选项
字节码校验可以验证字节码class文件格式是否满足要求,并且满足约束条件(字节码的魔数这些东西)。
参考文献
垃圾收集器及内存分配策略
Configuring JVM options and platform properties
Java hotspot vm options for windows
Java hotspot vm options for unix