One - One Code All

Blog Content

jvm调优-xmx和xms设置成一样的好处

Java   2018-03-31 10:45:25

把xmx和xms设置一致可以让JVM在启动时就直接向OS申请xmx的commited内存,好处是:


1. 避免JVM在运行过程中向OS申请内存

2. 延后启动后首次GC的发生时机

3. 减少启动初期的GC次数

4. 尽可能避免使用swap space


总之:避免在生产环境由于heap内存扩大或缩小导致应用停顿,降低延迟,同时避免每次垃圾回收完成后JVM重新分配内存。


JVM垃圾回收的不足

当堆内存使用情况变化时,并不是单纯的扩大和缩小堆内存就完事了。在此之前还会执行GC(垃圾回收)操作。如果-Xms起初值设置的比较小,那么就频繁触发GC操作。当GC操作无法释放更多内存时,才会进行内存的扩充。


GC操作是需要耗时的,而且Full GC会引起“Stop the World”,也就是说会引起线程停止,不可避免就会引起性能问题。



虽然设置为相同值有很多好处,但也会有一些不足。比如,如果两个值一样,会减少GC的操作,也意味着只有当JVM即将使用完时才会进行回收,此前内存会不停的增长。



上一篇:SSM-Mybatis保存多条记录,foreach循环列表和数组select in
下一篇:intellij idea在mac中快捷键失灵,无法复制

The minute you think of giving up, think of the reason why you held on so long.