title: What's the exact use of -XX+UseCMSCompactAtFullCollection?
body: <p>I understand it tells CMS collector to do a compaction on old gen when a full GC has happened.</p>
  
  <p>But I want to confirm if I understand it correctly (pieced together from various sources):</p>
  
  <p>A full GC would pause the world, collect and compact the old gen (using the result from the CMS's remark phase), then collect the young gen, promote objects (if any), and resume the world.  </p>
  
  <p>At this point, there might be floating garbage in the old gen, and <code>UseCMSCompactAtFullCollection</code> is to clean up them and compact the old gen again (basically another GC on old gen).  Because the world is stopped anyway, it might be worth to do a bit more compacting.</p>
  
  <p>Is this description correct?  Have I missed any important details?  Thanks</p>