-Xmx512M heißt, dass max. 512Mb zur Verfügung stehen.
Bei mir war es per default -Xmx1024m und -Xms100m
-Xms ist die Grenze wo du sagst: bis dahin brauchst der garbage collector sich nicht darum kümmern. Ab 100Mb fängt er an aufzuräumen.

Du solltest also -Xms immer geringer gesetzt haben als -Xmx.