询问一个JVM GC的问题

一个普通的服务应用,设置JVM的-Xms 512M 和-Xmx512M,假设我的这个应用最大的heap其实需要不到400M,这个服务应用还会发生full GC吗? 有没有谁测试过?
因为我在家中,没条件测试,突然想起这个问题,求有经验的同学详解,多谢 :oops:

[quote]
假设我的这个应用最大的heap其实需要不到400M,这个服务应用还会发生full GC吗? 有没有谁测试过?
[/quote]
发生full GC一般都是年老代的堆满了,具体还和你选择的GC有关。所以,即时你整个应用使用的堆空间不操过400m,并不说明在运行过程中年老代的堆使用不会达到最大,因为年轻代和年老代的总和才是整个堆的大小,这两者的具体空间和你选择的系统又有关系(如果你不指定各年代堆的大小的话)

具体还要看回收策略吧 如果是cms 看一下CMSInitiatingOccupancyFraction的大小 到达临界点就会触发

😀