首页 > 其他 > 详细

JVM参数学习

时间:2021-02-18 23:32:28      阅读:24      评论:0      收藏:0      [点我收藏+]

今天学习的是设置堆大小的参数:

  • Xmx
  • Xms
  • InitialHeapSize
  • MaxHeapSize
  1. Xmx和MaxHeapSize是等价的,都是设置堆的最大值,比如-Xmx100M和-XX:MaxHeapSize=100M是等价的
  2. Xms和InitialHeapSize是等价的,都是设置堆的初始值(最小值),比如-Xms100M和-XX:InitialHeapSize=100M是等价的
  3. 一般情况下,在生产环境中,初始堆大小-Xms与最大堆大小-Xmx被设置为相等。-Xmx不能比-Xms小,如果小的话,进程会起不起来。假设如果在生产环境中,初始堆大小-Xms与最大堆大小-Xmx是不等的,那么JVM就会根据堆内存的使用情况,动态的向操作系统申请内存,扩大或者是缩小,以-Xmx和-Xms的值为上下界,这里的每一次调整都会产生一定的系统开销,虽然做到了动态申请堆大小的能力,不过生产环境中,很少说一台机器跑好多个JAVA程序,一般情况下都是一对一,那么动态申请调整堆大小就没有意义了,因为不管内存申请的多还是少,都只是这个JAVA程序在用,不需要给其他的程序腾出空间,相反的,如果把初始堆大小-Xms与最大堆大小-Xmx设置成不相等,那么反而画蛇添足,因为如果初始堆大小-Xms与最大堆大小-Xmx不相等,那么就会需要申请空间时,而每次申请空间,就会产生相应的系统开销,同时如果一开始堆大小是-Xms,会增加程序运行时进行gc的次数,降低程序的性能。
  4. -Xms必须不小于1M

参考链接:https://blog.csdn.net/weixin_38106322/article/details/108197030

https://tool.lu/index.php/en_US/deck/kD/detail

JVM参数学习

原文:https://www.cnblogs.com/loqing/p/14413371.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!