在指定jvm的运行参数-Xms1024m -Xmx1024m后(这两个参数指定的是heap内存),在heap没有到达1024m以前,gc只会进行一般gc,也就是只对heap中的
年轻代进行回收;当heap到达1024m中,gc会做Full gc,也就是会对整个heap进行回收,包括年轻代和中年代。
年轻代进行回收;当heap到达1024m中,gc会做Full gc,也就是会对整个heap进行回收,包括年轻代和中年代。
所以你有时会观察到这样一种现象,一开始java应用的内存不断增加,但到达一个峰值后就不会增加,这是正常想象,因为一开始Gc没有回收heap的中年代object,
直到整个heap空间到达1024m极限。jvm这样做是尽量减少Gc对应用程序的影响,因为Full Gc比普通的Gc更耗系统资源。
直到整个heap空间到达1024m极限。jvm这样做是尽量减少Gc对应用程序的影响,因为Full Gc比普通的Gc更耗系统资源。
如有需要,可以有Jconsole等工具对jvm的heap内存进行观察。