This repository contains the implementation of LR-Z used in the paper Mutator-Driven Object Placement using Load Barriers.
lr-z
contains the main contribution.
- LR-Z patch ...
or
git diff jdk lr-z
- Telemetry patch for ZGC ...
or
git diff jdk jdk_telemetry
- Telemetry patch for LR-Z ...
or
git diff lr-z lr-z_telemetry
Note that lr-z
also contains an extraction of the best configuration from HCSGC. Use the following flags to activate different GCs:
- ZGC
-XX:+UseZGC
- HCSGC
-XX:+UseZGC -XX:+UseRelocateAllSmallPages -XX:+UseLazyRelocate
- LR-Z
-XX:+UseZGC -XX:+UsePartialEvacuation -XX:+UseLazyRelocate
All GCs except HCSGC/LR-Z were evaluated using JDK 15+36 which can be found in the branch jdk
.
To configure building you should run (after checking out a branch) bash configure --with-boot-jdk=/home/user/jdk/candidates/jdk-15.0.2 --with-extra-cxxflags='-std=c++11'
. To build you run make CONF=release
.
boot-jdk
needs to be version 14 or 15 and can be downloaded from https://jdk.java.net/archive/. Note that we only support Linux/x86.