This is an incredibly thorough breakdown! The battle for memory efficiency in Kubernetes clusters is so real. I’ve seen way too many teams get bitten by Java’s MaxRAMPercentage misconfigurations leading to sudden OOMKills, so highlighting JVM heap tuning is a massive public service.
On the C# side, .NET Chiseled images combined with Native AOT really feel like a cheat code for shrinking attack surfaces and slashing startup times. In your benchmarking, did you notice a significant trade-off in compilation times when shifting heavily toward Native AOT for C#? Awesome write-up!