GraalVM Native Image can be used to turn your service into a standalone platform executable. Such executables provide valuable performance benefits in production, and the process of creating them is now supported as a standard procedure by major application frameworks. Although there are several quirks. Some of them appear at build time (like the build time itself). Some appear at run time. For example debugging. Regular JVM debuggers that we are used to work using the JDWP protocol. However, native programs require native platform debuggers and certain support should be added to Native Image. BellSoft recently implemented such debugging support for macOS, so we'll walk through how it works with different operating systems and tools.
Dmitry Chuyko
Dmitry is an OpenJDK committer and conference speaker. Before joining BellSoft, Dmitry worked on the HotSpot JVM at Oracle, and before that had many years of programming experience, mainly in Java. He is currently primarily focused on optimizing HotSpot for x86 and ARM, and was also involved in the deployment of JEP 386 to make the smallest JDK containers legal.