Comment by pjmlp
1 day ago
Yes, just like with C and C++, PGO is the answer, aka training runs.
Also performance for what?
As long production SLA are met, that's a deployment success.
1 day ago
Yes, just like with C and C++, PGO is the answer, aka training runs.
Also performance for what?
As long production SLA are met, that's a deployment success.
Why are SLAs the bar for performance? Every additional second of execution time accumulates in the annual cloud bill, and using too much memory means I need a bigger box.
For example, the C++ replacement for a Java program bottlenecking my CI takes 1/3rd as long (with less variance) and runs on a smaller instance.
Because engineering salaries matter.
You missed to account the hours spent writing the application in C++, related memory and UB bugs, the additional security issues plugging a language like C++ directly into the Internet.
Additionally, you also failed to account Java has JNI, which means only a few hot-spots might be rewriten into something like C++, not the whole application.
Finally, with Panama, it is possible to design a memory layout off heap, similar to what would be done with C++.
Naturally this requires some low level programming skills, the benefit is that one keeps enjoying the ecosystem.
Finally, SLAs also include execution time, of course.