> Ridiculous performance, near-instant startup, radically less memory consumption.

It seems like your use case is rather not a good fit for Java.

Java shines best with large applications, where more abstract source code is desired and when you care more about typical performance, not the worst case performance. And if you can afford the cost of all those benefits, which is higher RAM usage.

At least that's the theory :)

It's not like typical performance of Java is great and only GC pauses (or whatever) drag it down. In other words, Java is no match for Rust / C / C++ even comparing "good runs only" of both.

There are no GC pauses in modern Java implementations, and there are plenty of systems written in C and C++ that have been replaced by Java, I took part in such projects.

Companies like PTC and Aicas stay in business, because there are plenty of industries that pay for their embedded JVM implementations instead of keeping legacy C and C++ infrastructure running.

Every GC in Java involves synchronization points and the pausing of application threads.

I'm arguing against "Java performance is as good as it gets" in this thread, but the best Java GCs have sub-millisecond pause times for huge heap sizes and, apparently, such a GC even became the default recent-ish-ly: https://inside.java/2023/11/28/gen-zgc-explainer/

The JVM is amazing technology for what it is, but what it is still limits how fast it can go.

[flagged]

Not every GC, better learn the ecosystem.

Provide the GC name.