Skip to content
This repository has been archived by the owner on May 9, 2024. It is now read-only.

BioGustav/ProjectInSoftwareEngineering

 
 

Repository files navigation

Fixed Memory Marking for G1 (C++)

This project is done in reference to the course Project in Software Engineering at JKU.

The G1 garbage collector is the current default garbage collector in the OpenJDK Hotspot VM. Its algorithm to determine reachable objects is a straightforward implementation of the Tri-Color abstraction. The drawback of this algorithm is that mark stack, a helper data structure, memory requirements is only bounded by the number of live objects which can be a very large number (in the MBs). There is an algorithm that bounds only needs a very small mark stack and a small helper table to complete marking.

Project Description

Implement a marking algorithm that uses (small) constant memory and compare with the existing.

The task for this work comprises:

  • Implement the mentioned algorithm in the G1 garbage collector.
  • The description only describes single-threaded operation, extend it to use multiple threads.
  • Compare its performance and memory consumption to the existing algorithm on benchmarks.

Optionally:

  • Implement/reuse it for Concurrent Marking.

JDK stuff

For build instructions please see the online documentation, or either of these files:

See https://openjdk.org/ for more information about the OpenJDK Community and the JDK and see https://bugs.openjdk.org for JDK issue tracking.

More information about jdk22 can be found here.

About

This repository is used in reference to the course Project in Software Engineering at JKU.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 75.0%
  • C++ 13.7%
  • C 7.3%
  • Assembly 2.2%
  • Objective-C 0.4%
  • HTML 0.3%
  • Other 1.1%