-Xms256m -Xmx256m,栈堆内存中常见的字眼

2022-03-29 12:35:57 浏览数 (1)

不知道有没有细心的小伙伴发现,IDEA的启动项(自定义VM选项),或者一些其他代码启动的地方,存在一些不起眼的语句,比如Xms256m -Xmx256m这些,那这些玩意都是啥意思有啥用呢?

我打开浏览器搜索了一下,发现这居然是对于栈堆内存的控制,比如我们看下面这个语句。

代码语言:javascript复制
-Xms256m -Xmx256m -XX:PermSize=64M -XX:MaxNewSize=64m -XX:MaxPermSize=256m

Xms

-Xms:是初始化堆内存值

Xmx

-Xmx:是堆内存最大值

知道这两个玩意是啥了,那他们有什么用呢?

这两个值是Tomcat服务器内存分配是动态的最好体现。

为什么这么说呢?

因为刚启动时系统给Tomcat分配的内存为-Xms值,当项目占用的内存达到初始化内存的一定比例后(百度上说是80%,我没去试过)才会将给Tomcat分配-Xmx大小的内存,反之亦然当项目占用的内存降至-Xmx的40%时,系统会释放部分内存,又将-Xms大小的内存划分给tomcat服务器。

那么还有几个其他的字段是啥意思呢?

-XX:PermSize和-XX:MaxPermSize

-XX:PermSize和-XX:MaxPermSize是初始化永久保存区,原理同内存是一样的。

-XX:MAxNewSize

-XX:MAxNewSize是什么意思,我也没去详细搜索过,好像也搜索不到啥,但看到有要求这个值的大小应该设置为-Xmx的1/4。

就当作一个知识扩展,了解了解吧。

0 人点赞