Skip to content
A Garbage Collection Simulator
Java Python Shell
Branch: with-gui
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.


Type Name Latest commit message Commit time
Failed to load latest commit information.

Distributed Garbage Collector Simulator GUI

I am working to add a GUI to Dr. Steven Brandt's Distruibted Garbage Collector Simulator. His read-me is as follows:

Overview of codes and programs:

  • src - Contains a full implemenation of the SWPR algorithm described in ISMM 2018.
  • python
  • - This is an implementation of the "single collector" described in ISMM 2018.
  • - run the java code, executing all the tests in the test suite.
  • - run the java code, executing all the tests from the tests folder.
  • - Create the png files in the plots directory. See for how to invoke it.
  • - Generate the test output for all tests of a given type.
  • bash
  • - Invoke both and to generate png files in plots/
  • - Build the Java code.
  • plots - The output of These are the figures in the ISMM 2018 paper.

Running from the command line:

  • sh bash/
  • java -ea -DCheckCounts=no -Dverbose=yes -Dseed=NUM -Dfileloc=filename.txt -Dtest=file-input -cp build/classes edu.lsu.cct.distgc.Main
  • -ea - Assertions must be enabled
  • -DCheckCounts=no - This ensures that phantom counts, etc. never go negative. This will not happen for the built-in tests, but is allowed for the test files.
  • -DVerbose=yes - If one is only interested in the answer and not the intermediate steps, this setting is fine.

Syntax for the test file:

 create NODENUM # create a node, plus and edge from the root to the node
 edge NODENUM->NODENUM # create an edge between nodes
 deledge NODENUM->NODENUM # delete an edge between nodes.
                             # deledge 0->1 deletes a root edge.
 runall # Process all messages until collections are done

After the file is executed, any pending messages will be printed. These messages can be added to the file one by one to allow fine grained control of the execution. Messages include "Incr 1->2", "Phan 2->1", etc.

You can’t perform that action at this time.