This release includes artifacts for trying out our visualizations on projects that can be built with GraalVM Native Image.
Therefore we provide a modified GraalVM that is able to produce our additional data output. A build for Ubuntu 22.04 is attached below.
Getting started
Acquiring data during Native Image building
- Download the graalvm-ce-javaXX-...-.tar.gz for the java version of your choice.
- Unpack it to a location of your choice (e.g. /usr/lib/jvm/)
- Set the environment variable JAVA_HOME to the unpacked directory root (e.g. /usr/lib/jvm/graalvm-ce-javaXX-.../)
- Build your project: If your build process involves invoking GraalVM Native Image manually, use the one from the unpacked archive (e.g. /usr/lib/jvm/graalvm-ce-javaXX-.../bin/native-image). If you want to visualize the causal relationships in your code and be able to make cutoff hypotheses, add the option
-H:+PrintCausalityGraph
to Native Image.
After building has finished the report printed on stdout will refer to additonal files that have been generated:
<name>.reachability.json
and<name>.cg.zip
.
While either can be used as input for our visualizations, the latter should be used whenever possible as it contains strictly more data.
Visualize the data
- Download the observatory.zip and unpack it to a location of your choice.
- Start a local web-server in this location (e.g.
python3 -m http.sever
) - Navigate to the local website using your favorite browser.
- In the tab called Data Manager, select a build output generated during Native Image building.