1. 设置堆空间大小
设置堆的初始大小和最大大小,为了防止垃圾收集器在初始大小、最大大小之间收缩堆而产生额外的时间,通常把最大、初始大小设置为相同的值
。
堆空间设置多少合适?
最大大小的默认值是物理内存的1/4,初始大小是物理内存的1/64
堆太小,可能会频繁的导致年轻代和老年代的垃圾回收,会产生stw,暂停用户线程
堆内存大肯定是好的,存在风险,假如发生了fullgc,它会扫描整个堆空间,暂停用户线程的时间长
设置参考推荐:尽量大,也要考察一下当前计算机其他程序的内存使用情况
2. 虚拟机栈的设置
虚拟机栈的设置:每个线程默认会开启1M的内存
,用于存放栈帧、调用参数、局部变量等,但一般256K就够用
。通常减少每个线程的堆栈,可以产生更多的线程,但这实际上还受限于操作系统。
3. 年轻代中Eden区和两个Survivor区的大小比例
设置年轻代中Eden区和两个Survivor区的大小比例。该值如果不设置,则默认比例为8:1:1
。通过增大Eden区的大小,来减少YGC发生的次数
,但有时我们发现,虽然次数减少了,但Eden区满的时候,由于占用的空间较大,导致释放缓慢,此时STW的时间较长,因此需要按照程序情况去调优。
4. 年轻代晋升老年代阈值
文章来源:https://www.toymoban.com/news/detail-658325.html
5. 设置垃圾回收收集器
文章来源地址https://www.toymoban.com/news/detail-658325.html
到了这里,关于【JVM】JVM 调优的参数都有哪些?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!