Complete gig history
For updates and more, join our community 👉 https://www.linkedin.com/company/devoxx-united-kingdom Single Instruction Multiple Data (SIMD) instructions have been available in Intel and other processor instruction sets for over 25 years. The current implementation is Advanced Vector eXtensions (AVX), first introduced in the Sandy Bridge microarchitecture. Using Vector processing through AVX can profoundly improve the performance level of an application that includes numerically intensive operations. The difficulty is that, although the compiler should be responsible for determining their use, code is often too complex to do so effectively. In JDK 16, an incubator module for the Vector API (not to be confused with the Vector collections class) was introduced. This allows a developer to express vector computations that reliably compile at runtime to optimal vector instructions. The API has undergone several revisions resulting in the sixth incubator in JDK 21. In this session, we'll explore how to use the Vector API in different use cases, comparing the code generated by the JIT compiler without the API and with it. We'll also look at what difference this makes to the performance delivered.
🎙 Simon Ritter, Deputy CTO @Azul 🔗 https://twitter.com/speakjava ☑ Website: https://devoxx.com.ua/ ☑ Facebook: https://www.facebook.com/DevoxxUkraine ☑ Instagram: https://www.instagram.com/devoxxua/ ☑ Twitter: https://twitter.com/DevoxxUA ☑ YouTube: https://www.youtube.com/@DevoxxUkraine Devoxx Ukraine 2023 partners: 🫶 Platinum Partner & Organizer - EPAM Ukraine https://careers.epam.ua 🫶 Silver Partner - SPD Technology https://spd.tech/ 🫶 Streaming partner - Mediastream https://mediastream.com.ua/
For more info on the next Devoxx UK event 👉 www.devoxx.co.uk One of the key benefits of a microservice architecture is the ability to dynamically respond to changes in load by spinning up new instances as required. However, when deploying JVM-based services, the warmup time of JIT compilation can be a limitation on the effectiveness of this technique. One approach to solving this problem is using native images, where the service is statically compiled using an ahead-of-time (AOT) compiler. Although this does reduce startup time and footprint, it does so at the cost of overall performance. A new project has been proposed and accepted into OpenJDK called CRaC (Coordinated Restore at Checkpoint). The goal is to research the co-ordination of Java programs with mechanisms to checkpoint (snapshot) a running application. Restoring from the snapshot could solve some of the problems with the startup and warmup times, especially in microservices. In this session, we’ll look at the main challenges for such a project, potential solutions and the results from a proof-of-concept implementation.