This is going to come very handy for development of CodeBrew, my Java IDE for iPhone/iPad. It runs a full OpenJ9 JVM under the hood, and I had to do a bunch off massaging with the options to get it to run properly. I wish I had known this page sooner!
For anyone intered, here's the app:
https://apps.apple.com/app/apple-store/id6475267297?pt=11914...
People say we don’t build cathedrals anymore.
But here it is: JVM is a modern cathedral.
There is a 2nd edition now of the Optimizing Java book you are referring to on your site.
All of that configuration and it will always be less efficient than Rust, or even Golang.
This is why lots of engineers waste time fiddling with options to tune the JVM and still require hundreds of replicated micro-services to "scale" their backends and losing money on AWS and when they will never admit the issue is the technology they have chosen (Java) and why AWS loves their customers using inefficient and expensive technologies.
Even after that, both Go and Rust continue to run rings around the JVM no matter the combination of options.
1843 options is too many. You could never even consider all of the possible combinations and interactions, let alone test them.
I have really come to appreciate modern opinionated tooling like gofmt, that does not come with hundreds to thousands of knobs.