作为一个把JAVA当做自己的主要语言的程序猿,必要是还是得懂些JVM的相关知识,今天就记录一下JVM的几个内存参数。
如:-vmargs-Xms256M-Xmx512M-XX:PermSize=64M-XX:MaxPermSize=512M
-vmargs 告诉JVM下面是你要设置的参数
-Xms256M JVM能初始分配的堆内存为256M
-Xmx512M JVM能最大分配的对堆内存为512M
-XX:PermSize=64M JVM初始分配的非堆内存为64M
-XX:MaxPermSize=512M JVM能最大分配给非堆内存512M
默认设置方案: 若物理可用内存为8g
-Xms 常常设置为物理内存的 1/64 则可以设置为8*1024/64M=128M
-Xmx 常常设置为物理内存的1/4 则可以设置为8*1024/4M=2048M
-XX:PermSize 也常常设置为物理内存的 1/64
-XX:MaxPermSize 常常设置为物理内存的1/4
堆内存变化阈值:
增加:当空余堆内存 <40% 时, JVM便开始增加堆内存,直至到达其-Xmx 设定的最大值
减少:当空余堆内存>70%时,JVM便开始减少堆内存,直至到达其-Xms设定的最小值
非堆内存的变化阈值求有知道的大佬给出。谢谢。