return ...
© 2024-2026 Joel Sikström GitHub LinkedIn
OpenJDK Contributions
I’m an OpenJDK Reviewer mainly focused on the Garbage Collection (GC) subsystem(s), with an emphasis on ZGC. You can see my active roles in the OpenJDK Community Census https://openjdk.org/census#jsikstro.
Contributions
You can find the bulk of my OpenJDK contributions in the following links:
- Mainline PRs: https://github.com/openjdk/jdk/pulls?q=author:jsikstro
- Valhalla PRs: https://github.com/openjdk/valhalla/pulls?q=author:jsikstro
Projects
My largest contribution is leading an effort to redesign ZGC’s memory allocation layer to address virtual address space fragmentation. This work has internally been dubbed the Mapped Cache, for its inclusion of a cache for mapped memory.
- Defined requirements and designed a new allocation and defragmentation strategy. Implemented and integrated the solution into ZGC without regressions in existing functionality. Improved robustness and scalability of virtual memory handling in large heap scenarios, improving performance and robustness for large-scale workloads.
- PR: https://github.com/openjdk/jdk/pull/24547
Other noteworthy contributions/project participations:
-
- Implementing and improving support for GC subsystems and the JDK as a whole. Listed as a co-contributor on the commit.
- Integration commit: https://github.com/openjdk/jdk/commit/cc278dbb8a1ca0754d5842708b9029441055d361:
- PRs: https://github.com/openjdk/valhalla/pulls?q=author:jsikstro
-
- I’ve been a core contributor of the functionality of Automatic Heap Sizing for ZGC, that is planned to release in a future release of OpenJDK.
- As of 2026-08-02 in active development at https://github.com/openjdk/zgc/tree/zgc_ahs
- Significant work on adapting ZGC to know more about the environment (CPU, Memory) it is running in so that the heap can be sized automatically. A fair amount of work getting other subsystems in the JDK to work with these changes, mainly due to the fact that ZGC now requires a more resilient runtime.
-
JEP 516: Ahead-of-Time Object Caching with Any GC
- A new approach to caching and loading objects in the Java heap that is supported by any GC, which notably includes ZGC, which has not been possible up to this point.
- PR: https://github.com/openjdk/jdk/pull/27732
-
Remove the default value of InitialRAMPercentage
- The old default has moved from 1/64 down to 1/512 over time, with additional constraints that are seemingly arbitrary and unintuitive for users of the JDK. Configuring a higher value for InitialRAMPercentage allocates/commits more memory for the Java heap during startup, resulting in worse startup performance but better warmup performance. To make it easier for users of Java to reason about the flag and how much memory is initially allocated/committed for the Java heap during startup, I lead an effort to change the value of the flag to 0, effectively allocating as little memory as possible during startup.
- PR: https://github.com/openjdk/jdk/pull/28641
-
Deprecation and removal of outdated GC flags