Těžko říct, záleží, jaký typ GC se v té Javě používá. Paralelní mark+sweep (-XX:+UseConcMarkSweepGC), který používá Go, je velmi rychlý, i když není tak efektivní. Máme v Javě několik serverů, které mají haldy v gigabajtech, a žádné záseky tam CMS nejsou, ani když paměť lítá. Můžete zkusit i hodně nový G1 (-XX:+UseG1GC), ten je i soft realtime (-XX:MaxGCPauseMillis=200).
Druhá možnost je, že se to dostane až blízko k OOM. Nevím, jak se v takovém případě chová Go, ale Java se snaží opravdu hodně, aby uvolnila veškerou poslední paměť, kterou může, což při takové haldě opravdu bude trvat dlouho (ale i to lze změnit).