Andrew Dinn Static Java, Graal VM Native and Open JDK
Java is specified as an extensible, dynamic language with an extensible, dynamic runtime. However, GraalVM Native has demonstrated that it is possible to deliver many Java apps as static deployments, with most application and runtime choices preconfigured at build time. This shift in behavior enables performance tradeoffs that suit current trends in containerization, most notably the ultrafast startup and low memory footprint demanded microservice and serverless deployments. It also risks opening up a gap between language and runtime specification vs implementation, with buildtime choices forcing runtime and application code down different execution paths in static vs dynamic deployments.
|
|