有个项目,其服务器端原本内存占用很大,16G内存几乎都用光了
原先的JVM参数配置是这样的:- Xms16384m - Xmx16384m -XX:PermSize=64m -XX:MaxPermSize=256m
而现在改成了这样:[color=red]-server[/color] -Xms16384m -Xmx16384m [color=red]-Xmn4096m[/color] -XX:PermSize=64m -XX:MaxPermSize=256m [color=red]-Xincgc[/color]
可以看到,加了3个新参数,-server指定JVM以服务器模式运行,- Xmn4096m指定堆内存的新生代区大小为4096M(新生代垃圾回收较快,而且新生代区大,就不会频繁的把创建的实例挪到旧生代区),-Xincgc指定垃圾回收机制为1.6新的增量回收(新生代回收时同时回收一部分旧生代)
这样改了以后,内存的消耗从原来的几乎用光了16G内存,降低到现在的不足3G
原先的JVM参数配置是这样的:- Xms16384m - Xmx16384m -XX:PermSize=64m -XX:MaxPermSize=256m
而现在改成了这样:[color=red]-server[/color] -Xms16384m -Xmx16384m [color=red]-Xmn4096m[/color] -XX:PermSize=64m -XX:MaxPermSize=256m [color=red]-Xincgc[/color]
可以看到,加了3个新参数,-server指定JVM以服务器模式运行,- Xmn4096m指定堆内存的新生代区大小为4096M(新生代垃圾回收较快,而且新生代区大,就不会频繁的把创建的实例挪到旧生代区),-Xincgc指定垃圾回收机制为1.6新的增量回收(新生代回收时同时回收一部分旧生代)
这样改了以后,内存的消耗从原来的几乎用光了16G内存,降低到现在的不足3G