1 of 13

🚀Java is Going to the Moon: Native Images with GraalVM

+

Small demo

1

2 of 13

Agenda

2

  • What?
  • Why?
  • How?
  • Demo

3 of 13

going on in Javaland?

What’s

3

4 of 13

going on in Javaland?

What’s

4

5 of 13

Why

Quarkus?

5

  • Fast boot time
  • Small size on disk
  • Low RSS memory
  • Developer joy

6 of 13

Quarkus works?

How?

6

7 of 13

7

  1. Run programs more efficiently
  2. Make developers more productive

8 of 13

8

  • Run programs more efficiently
  • Make developers more productive

9 of 13

9

10 of 13

to create a native image via AOT?

How

10

Wimmer, Christian, et al. "Initialize once, start fast: application initialization at build time." OOPSLA (2019): 1-29.

11 of 13

a close world assumption is necessary

But…

11

  • The points-to analysis needs to see all the bytecode
  • Dynamic Java features require configuration at build time
  • No loading of new classes at run time

12 of 13

RQs

that matter…

12

  • Is the behavior always preserved? (i.e, compilable code = native code)
  • How to automatically modify applications to comply with the close world assumption?
  • What tools are available to analyze the native binary?
  • …

13 of 13

Demo!

13