Yes, things have gotten a lot better. G1GC is the default now and we have free options like ZGC and ShenandoahGC for low latency options. Of course there are the IBM options and Azul as well.
Scalar replacement got better, and with Graal partial evaluation gives reduced heap allocation rates. Which can have big impacts.
Future is even more bright with inline (value) types going towards even less allocations and better memory layouts.
You mean partial escape analysis and scalar replacement for reduced heap allocation rates. Partial evaluation is something else, also pretty useful but for other reasons.
Scalar replacement got better, and with Graal partial evaluation gives reduced heap allocation rates. Which can have big impacts.
Future is even more bright with inline (value) types going towards even less allocations and better memory layouts.