title: After consecutive Full GC(Ergonomics), the size of heap didn't change
body: <p>There are a lot of threads in my program, one of which keeps asking for memory and doesn't release it.
  As gc log show, I found consecutive Full GC (Ergonomics), but the program did not get more memory, and all threads stopped, except for the JVM garbage collection thread.
  I read the official documentation, GC Ergonomics tries to grow or shrink the heap to meet a special goal such as minium pause time and/or throughput. However, after <code>Full GC (Ergonomics)</code>, as gc log show, heap The size of the space has not changed, both old and young.</p>
  
  <p>I wander why the size of heap didn't change after Full GC(Ergonomics)</p>
  
  <p>My computer has 16G memory and no swap. No other application run in this computer</p>
  
  <p>JVM Args:
  <code>
  -XX:+PrintGCDateStamps -Xloggc:gc.log -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.managementote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Xmx10G -XX:+HeapDumpOnOutOfMemoryError -XX:+PrintGCDetails
  </code>
  gc log:
  <a href="https://i.stack.imgur.com/borkH.png" rel="nofollow noreferrer">gc log</a></p>
  
  <p><a href="https://i.stack.imgur.com/m34Nj.png" rel="nofollow noreferrer">heap usage after gc</a></p>