Young garbage collection longer pause with java 7 vs java 6

Viewed 731

I noticed that each young garbage collection with java 7 takes on average 10 more milliseconds than with java 6. I'm using 1.6.0_31 and 1.7.0_21. The configuration hasn't changed, neither has the hardware, JVM arguments are:

-server -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+TieredCompilation -XX:+AggressiveOpts -Xms1g -Xmx1g -XX:MaxNewSize=256m -XX:NewSize=256m
  • Java 7:
 S0C    S1C    S0U    S1U      EC       EU        OC         OU       PC     PU    YGC     YGCT    FGC    FGCT     GCT   
26176.0 26176.0 3531.6  0.0   209792.0 21648.8   786432.0   86777.6   49472.0 49350.1     82    1.830   0      0.000    1.
  • Java 6
 S0C    S1C    S0U    S1U      EC       EU        OC         OU       PC     PU    YGC     YGCT    FGC    FGCT     GCT   
26176.0 26176.0  0.0   1210.5 209792.0 95873.4   786432.0   65327.1   35968.0 35891.2     83    0.620   0      0.000    0.620

I also looked at each individual times, and with java 6, each YGC takes ~10ms vs java 7 is 20ms. Did something change between version 6 and 7 that could explain this behavior?

EDIT: I noticed that java 7 runs in 64 bits mode, whereas java 6 use a 32 bits JVM, could that explain the difference?

Thanks

1 Answers
Related