JVM
堆空间设置多少合适?
设置堆的初始大小和最大大小,为了防止垃圾收集器在初始大小、最大大小之间收缩堆而产生额外的时间,通常把最大、初始大小设置为相同的值。 -Xms: 设置堆的初始化大小 -Xmx: 设置堆的最大大小 不指定单位默认为字节,指定单位,按照指定的单位设置 -Xms: 1024 -Xms: 1024k -Xms: 1024m -Xms: lg ❒ 堆空间设置多少合适? ✔ 最大大小的默认值是物理内存的 1/4,初始大小是物理内存的 1/64 ✔ 堆太小,可能会频繁的导致年轻代和老年代的垃圾回收,会产生stw,暂停用户线程 ✔ 堆内存大肯定是好的,存在风险,假如发生了fullgc,它会扫描整个堆空间,暂停用户线程的时间长 ✔ 设置参考推荐:尽量大,也要考察一下当前计算机其他程序的内存使用情况
对于JVM调优,主要就是调整年轻代、老年代、元空间的内存空间大小及使用的垃圾回收器类型。 ✔ 设置堆空间大小 ✔ 虚拟机栈的设置 ✔ 年轻代中Eden区和两个Survivor区的大小比例 ✔ 年轻代晋升老年代阈值 ✔ 设置垃圾回收收集器