For Building Programs That Run Faster Anywhere: Oracle GraalVM Enterprise Edition

May 8, 2019 | 3 minute read
Scott Lynn
Director of Product Management GraalVM
Text Size 100%:

Today, Oracle is announcing Oracle GraalVM Enterprise Edition. GraalVM Enterprise is built on the global standard for enterprise-class application development, Java SE.  GraalVM Enterprise is a multilingual virtual machine, and delivers even higher efficiency, better isolation and greater agility for enterprises in cloud and hybrid environments.

GraalVM is ideal for cloud native environments because it starts services up to 100X faster and reduces memory usage up to 5X by compiling programs, including Java applications, ahead-of-time. Fast startup and low footprint makes GraalVM excellent for running microservices, Function-as-a-Service and service mesh.  

Running a Netty.io microservice without GraalVM Enterprise and with GraalVM Enterprise Native Image.

 

GraalVM core features include:

  • GraalVM Native Image, available as an early access feature –– allows scripted applications to be compiled ahead of time into a native machine-code binary
  • GraalVM Compiler –– generates compiled code to run applications on a JVM, standalone, or embedded in another system
  • Polyglot Capabilities –– supports Java, Scala, Kotlin, JavaScript, and Node.js
  • Language Implementation Framework –– enables implementing any language for the GraalVM environment
  • LLVM Runtime –– permits native code to run in a managed environment in GraalVM Enterprise
Oracle GraalVM Enterprise Edition High-level Architecture

 

Efficiency

GraalVM Enterprise contains optimization algorithms that seek out opportunities to accelerate application processes by rearranging compiled code. The addition of these, and other, algorithms typically provide an additional 20% application performance improvement, while at the same time reducing the memory footprint. 

Examples include:

  • Path Duplication –– specializes optimizations for each code path based on profiling
  • Aggressive Method Inlining and Escape Analysis –– removes more unnecessary function calls in the GraalVM Enterprise Compiler than any other compiler
  • Advanced Vectorization –– uses optimistic aliasing and high-level map/reduce/fill vector analysis to vectorize complex loops

GraalVM Enterprise shows up to 3x performance improvements on a wide variety of measurements in the new JVM benchmark called “Renaissance,” which was accepted at the most prestigious programming language conference — PLDI.  The benchmark and performance results are maintained by Charles University in Prague.

Security

GraalVM Enterprise also includes security features to address some of the common sources of security application vulnerabilities, including buffer overflows in native code. Most real-world applications today in managed languages like Java, JavaScript or Python include native libraries to improve performance of compute-intensive code.  However, these native libraries may form a back-door that could enable an attacker to bypass VM-level isolation features like bounds-checks and garbage collection, which increases the potential for security vulnerabilities for your application.

Considering those issues, GraalVM Enterprise includes a “managed mode” for native libraries based on our LLVM bitcode runtime.  Safe Mode compiles even those portions of the application implemented in C code to use managed memory, garbage collection and bounds-checks, which help protect against common security applications vulnerabilities like buffer overflows.  In addition, GraalVM Native Image improves security by reducing your application attack surface by putting only the code needed by your application into the runtime, removing unused code that expands the attack surface.

Agility

The multilingual capabilities of GraalVM allow legacy applications to be modernized and new ones to be built faster. The open source library ecosystem for all of the supported GraalVM languages is available to your application, not just the one for the language in which you wrote the application. Legacy applications can be rewritten one piece at a time rather than all-at-once and new cloud microservices can mix multiple languages with no performance overhead. Developers can use diagnostic tools, including GraalVM Visual VM, NetBeans and Chrome debugging across language boundaries, resulting in faster diagnosis and development. GraalVM is designed to be embeddable in any other server or runtime with virtualized interfaces for any access points.  For example, GraalVM Enterprise is integrated into in Oracle Netsuite and the Oracle RDBMS Multilingual Engine.

Try GraalVM Enterprise now: 

GraalVM Enterprise is free for development and evaluation usage from the Oracle Technology Network.  

GraalVM Enterprise is available for purchase and is free on Oracle Cloud.

The full documentation for GraalVM Enterprise is now available on the Oracle documentation page.  

Keep an eye out for more information via blog posts on graalvm.org.

Scott Lynn

Director of Product Management GraalVM


Previous Post

JDK 12.0.1, 11.0.3, 8u211, 8u212, and 7u221 Have Been Released!

Clifford Wayne | 1 min read

Next Post


Java Magazine on Containers

Yolande Poirier | 1 min read