Or an ice-cream, which you could also have for breakfast, because you can do whatever you like: https://en.wikipedia.org/wiki/Cornetto_(frozen_dessert)
I miss Cornetto! The texture of the cream and the chocolatey bits at the top bring up very fond childhood memories. Also some of them IIRC have a solid chocolate bottom in the cone.
One patch (back in Corretto 11) relates to arm64, the CPU architecture that their Graviton EC2 instances (m6g/r6g/c6g/etc) use. It significantly reduces lock-related context-switch overhead and improves performance of high-concurrency Java applications as a result. Replacing OpenJDK 11 with Corretto can reduce CPU utilization of Kafka brokers on that platform by up to 20%.
That's nice but where can I read about it?
That fix is in mainline OpenJDK, so it's not included in their list of patches.
I found it by looking at their changelog for Corretto 11, which includes both their patches and the changes from mainline.
That fix is in mainline OpenJDK, so it's not included in their list of patches. I found it by looking at their changelog for Corretto 11, which includes both their patches and the changes from mainline. https://github.com/corretto/corretto-11/blob/develop/CHANGEL... https://bugs.openjdk.java.net/browse/JDK-8186670
Thanks. I updated my comment to clarify that this is about OpenJDK 11; later versions of OpenJDK apparently already include this patch.
Main Page: https://aws.amazon.com/corretto/ FAQ: https://aws.amazon.com/corretto/faqs/ Downloads: https://docs.aws.amazon.com/corretto/latest/corretto-18-ug/d... Q: How is Corretto different from OpenJDK? A: Corretto is a distribution of Open JDK with patches included by Amazon that are not yet integrated in the corresponding OpenJDK update projects. We focus on patches that improve performance or stability in OpenJD…
More details:
"Amazon Corretto, A Journey into Latency Reduction":
Pretty awesome to watch how languages get faster and faster over time through engine updates. JS/V8 is particularly impressive. I wonder how far we are from the theoretical performance limit on the software side? I would guess we will eventually see deprecations of warts to improve engine performance further. Or integrated type system etc.
That was the whole idea of the Dart VM, by the way: to bridge the gap between the maximum performance you could get out of JavaScript and what you could get of a more statically-typed language. My recollection from a few years ago was that there was about a 2x performance gap between V8 and HotSpot. (All three VMs efforts: HotSpot, V8, and the Dart VM, were led by Larks Bak, by the way). I don't know if that gap has shrunk, grown, or has remained the same.
Dumb question: for home/hobby type coding, what is the best JDK to install on my Mac?
OSX? Brew. https://formulae.brew.sh/formula/openjdk If you don't use brew to install your software, you probably should start doing so. Windows? Chocolately. https://community.chocolatey.org/packages/openjdk
Huh. I do use Brew. I guess I never considered that it would have a JDK package, though. No explanation as to why I never thought of it.
Pretty awesome to watch how languages get faster and faster over time through engine updates. JS/V8 is particularly impressive. I wonder how far we are from the theoretical performance limit on the software side? I would guess we will eventually see deprecations of warts to improve engine performance further. Or integrated type system etc.
That was the whole idea of the Dart VM, by the way: to bridge the gap between the maximum performance you could get out of JavaScript and what you could get of a more statically-typed language. My recollection from a few years ago was that there was about a 2x performance gap between V8 and HotSpot. (All three VMs efforts: HotSpot, V8, and the Dart VM, were led by Larks Bak, by the way). I don't know if that gap has…
Yeah, it was a good idea. Given that Typescript is mostly consensus at this point, I'd argue trying to integrate it into the language spec is the better approach vs introducing a new language.
But maybe there are technical reasons why it's not feasible