Virtualization Technology News and Information
Article
RSS
Oracle Releases GraalVM Enterprise

The GraalVM team at Oracle Labs announced the release of an Enterprise Edition of GraalVM, its "universal virtual machine" built on the global standard for enterprise-class application development, Oracle Java Standard Edition.

GraalVM Enterprise is the commercial version of the open source, polyglot JVM designed to provide higher efficiency, better isolation and greater agility for enterprises in cloud and hybrid environments.  It is a multi-language virtual machine and a shared runtime that's an extension of the JVM designed for applications written in a host of languages, including: Java, Scala, Kotlin, JavaScript, Node.js, Python, Ruby and native code.  GraalVM Enterprise enables interoperability between these programming languages to allow developers to write polyglot applications.

Based on Java SE, GraalVM Enterprise Edition provides performance and security capabilities for running enterprise applications.  It allows legacy applications to be modernized and new ones to be built faster.  And it is positioned for use in cloud environments, with programs compiled ahead of time to improve startup times and minimize memory footprints.  GraalVM Enterprise also supports microservices, functions-as-a-service, and service mesh.

A key feature of this release is a set of optimization algorithms designed to "seek out opportunities to accelerate application processing" by rearranging compiled code.  Oracle claims that the addition of these and other algorithms typically provide an additional 20% application performance improvement, while at the same time reducing the memory footprint.

The company cites three examples:

  • 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

Oracle is also claiming serious performance improvements in this release, citing 3x performance improvements on a wide variety of measurements rendered by the new JVM benchmarking suite called Renaissance, which is design for testing JIT compilers, garbage collectors, profilers, analyzers and other tools.  The benchmark and performance results are maintained by Charles University in Prague and are available at Renaissance.dev.

Security functions in GraalVM Enterprise also address some of the common sources of security application vulnerabilities, including buffer overflows in native code.  Most real-world applications in managed languages like Java include native libraries to improve performance of compute-intensive code.  However, these libraries may form a back door to enable an attacker to bypass VM-level isolation features.  GraalVM Enterprise includes a safe mode for native libraries, compiling portions of applications implemented in C code to use managed memory, garbage collection, and bounds checks to protect against vulnerabilities.

GraalVM Enterprise core capabilities include:
  • Graal Compiler - generates compiled code to run in either JavaVM or our Native Image Virtual Machine
  • GraalVM Native Image - allows scripted applications to be compiled ahead of time into a binary that runs natively on the system
  • Polyglot Capabilities - supports Java, Scala, Kotlin, JavaScript, and Node.js
  • Language Implementation Framework - enables implementing any language for the GraalVM environment
  • LLVM Interpreter - permits native code to run in a managed environment in GraalVM Enterprise
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.
Published Thursday, May 09, 2019 9:25 AM by David Marshall
Comments
There are no comments for this post.
To post a comment, you must be a registered user. Registration is free and easy! Sign up now!
Calendar
<May 2019>
SuMoTuWeThFrSa
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678