TrustRadius Insights for GraalVM are summaries of user sentiment data from TrustRadius reviews and, when necessary, third party data sources.
Pros
Reduced Memory Footprint: Users have consistently praised GraalVM for its ability to reduce memory consumption, resulting in efficient performance and lower hardware requirements. This has led to smoother application execution and enhanced resource management.
Faster Application Startup Times: Reviewers have highlighted the tool's capability to significantly improve application startup speed, leading to quicker deployment cycles and better responsiveness in real-time environments.
Support for Multiple Programming Languages: Many users appreciate GraalVM's flexibility in supporting various programming languages, enabling developers to choose the most suitable language for their projects. This versatility allows for seamless integration of different language components within applications, enhancing overall development productivity.
GraalVM is being used in selective teams as an alternate to traditional JVM. A primary usage is to optimize the application compilation using the ahead of time compilation feature. One more is usage of Truffle Language Implementation framework for other JVM-supported languages such as Groovy. All this has allowed us to reduce the startup time of mission-critical applications
Pros
Reduces the application startup time
Allows usage of multiple languages, such as Java and Scala in the same codebase
Improved performance in range of C++
Cons
Notarization of Mac OS 10.15
Better support and documentation for debugging and profiling
RXVT emulator bug
Likelihood to Recommend
Specifically on mission-critical applications, as the startup time is an order of magnitude less than traditional Java JVM-based applications, GraalVM is a great choice. Also, for a polyglot team, you need a JVM solution to support engineers skilled and comfortable in multiple programming languages. Moreover, it makes profiling easy at the JVM level to troubleshoot memory issues.
We are in an investigative stage with GraalVM and AOT (native-compile) at the department level (software engineering and SecDevOps). We have deployed test applications written in Java and Scala to Windows, Ubuntu, and as Docker images running on container services (Google Cloud Run and Kubernetes).
At this point, I am very impressed. There was a learning curve to understand GraalVM, the polyglot features, and native-compiles. Pluralsight has a good fundamentals overview. The home site for GraalVM has a number of good "getting started" guides.
The areas that we are seeing major impacts in are software size, load time, and cold start time. These are critical benefits as we try to minimize the size of our containers and reduce cold-start time. The end result is more container services can be deployed with the same hardware. This could have a significant financial benefit over running code in a JVM.
We are also investigating the Polyglot features, such as running Node.js and Python in GraalVM. The ability to combine Java and Node.js could present some interesting features to combine the best of our libraries.
In my opinion, this product and technology will significantly improve the performance and footprint of Java-based containers to serverless containers, Kubernetes, and OpenShift.
Pros
Reducing software cold start time
AOT--Native compile, which removes the dependency on the JRE and JVM
Reduces application size. Combining native-compile and EXE compression significantly reduces the size of our containers
Cons
Native compiles. We have problems figuring out how to package jars with all dependencies for compilation. This might be our problem as we progress through the learning curve.
More support and testing for Sprint and GraalVM.
I recommend providing installer packages instead of downloading zip files.
Likelihood to Recommend
In my opinion, GraalVM is an amazing technology for deploying containers. There are many benefits of integrating GraalVM into our development and deployment processes:
Reduced application size.
Faster cold start, which improves HTTP request/response-based software.
Native compiles dramatically simplifies building and deploying Java-based containers.
Native compiles often significantly improves application performance.
GraalVM is being used by my organization to create a language-agnostic mod loader based on the Fabric API for Minecraft. It addresses a lot of problems with normal Java Native Interface Interop, and also makes it really easy to integrate numerous languages into the system.
The problem with normal JNIs is how hard it is to implement Mixins and other features, with GraalVM this is very easy and performant. GraalVM's performance is also outstanding, making it faster to launch dev environments and other factors.
Pros
Language Interop
Performance
Availability
Open Source
Ease of Use
Cons
JDK version is low
Lacks some features like ZGC
JNI is sometimes faster
Likelihood to Recommend
GraalVM is well suited for situations where one will want seamless language interop and a codebase with different languages. It is not appropriate for a project that is not entirely based on Java before, and also just a single language.
Other scenarios would be to take advantage of GraalVMs AOT features where performance is needed.
VU
Verified User
Contributor in Engineering (Computer Games company, 1-10 employees)
We are experimenting to use GraalVM in the context of serverless framework usage. The core issues that it addresses are image size and process start-up time, especially in the cold start scenarios. Another area of interest is in densification of the container images that we run on container clusters to save overall cost.
Pros
Ahead-of-time compiled native images which start up faster
Javascript application run on top of it without need for V8 engine.
Java libraries can be accessed from other programming languages.
Cons
JIT compiler makes a long-running server process run even faster as time passes with optimization at runtime. Lack of this feature makes GraalVM not suited for certain applications
All the libraries are not easily available or compiled down to GraalVM binary. Manual Involvement is needed to make some libraries work. Reflection-based libraries specifically do not work.
There are runtime surprises in some cases and increases support needs
Likelihood to Recommend
Microservices development and Serverless application development is an area GraalVM helps well--Especially for smaller binary footprint and faster start-up time. Another appropriate area is running docker containers on an orchestration platform such as K8S or ECS. It's also good for scenarios where alternate JVM languages need to be mixed and used and to run heavy memory usage javascript applications.
VU
Verified User
Director in Engineering (Financial Services company, 10,001+ employees)
GraalVM is used in my organization for streamlining JAVA applications and efficient testing of code. It has provided faster startup and no interpreted code as well. It has given a low memory footprint in the use cases. Its native and bright future of performance is also a great advantage. No profiling data required now for JIT optimizations.
Pros
High performance and it acts as JIT compiler. Optimizations like partial escape help a lot since it is not available in standard JIT compilers.
It helps in combining JAVASCRIPT, Java, and R
Helps in running native languages on the JVM
Helps in extension of JVM-Based application
Cons
It is efficient for a smaller heap only as it impacts latency
Generated native code is not fully efficient
No thread dump and heap dump support
Likelihood to Recommend
It can run spring applications, compiled with OPEN JDK or other JVMs.
There's also spring framework support of GraalVM. Although it is at its initial stage, we can be hopeful that spring framework support does work and helps to improve using JAVA. This is a current limitation of GraalVM, but it can be overcome as per official information.
GraalVM is still in the early stages of product investigation. Engineers are using it for R&D projects and getting familiar with how it can be used at a production level. It will address performance issues for our applications, notably startup times and artifact size.
Pros
Fast startup
Lower memory footprint
Polyglot apps
Cons
The name isn't so great.
More broad community use.
Likelihood to Recommend
Well suited for polyglot apps and those needing high performance. If there is a specific legacy application that requires a specific JDK version, I would not recommend it immediately until further research and testing are performed.
VU
Verified User
Engineer in Engineering (Computer Software company, 5001-10,000 employees)