Skip to content

Final project result

Latest
Compare
Choose a tag to compare
@ChristophTF ChristophTF released this 03 Apr 13:44
· 8 commits to main since this release
dd92305

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

  1. Download the graalvm-ce-javaXX-...-.tar.gz for the java version of your choice.
  2. Unpack it to a location of your choice (e.g. /usr/lib/jvm/)
  3. Set the environment variable JAVA_HOME to the unpacked directory root (e.g. /usr/lib/jvm/graalvm-ce-javaXX-.../)
  4. 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

  1. Download the observatory.zip and unpack it to a location of your choice.
  2. Start a local web-server in this location (e.g. python3 -m http.sever)
  3. Navigate to the local website using your favorite browser.
  4. In the tab called Data Manager, select a build output generated during Native Image building.