View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0000675||LDMud 3.5||LPC Compiler/Preprocessor||public||2009-09-16 06:30||2009-09-16 09:36|
|Summary||0000675: Implementation of generational garbage collection using the 'Train Algorithm' (real-time, interruptable)|
|Description||Implementation of the Train Algorithm as described in the document|
Adantages over the currently "mark-and-sweep" garbage collection:
* interruptable (handles small partions of the memory, so called 'cars' in the 'train'
* realtime, as interruptable (can be set to only work for e.g. 10 ms, and stop afterwards)
* finds circular references and is able to free them
* is generational, thus preserves long-time objects to stay in other generation than short-time objects (reduces fragmentation)
Maybe some others that I actually don't recall. JVM > 1.4 uses Train Algorithm if called with -Xincgc.
|Tags||No tags attached.|
I may be wrong, but as far as I understand the algorithm (I just glanced over), this will require quite extensive changes (GC itself + allocators, reference management, interpreter, swapper).
In this case, I don't see that as suitable for 3.5.x if we want to finish that in a foreseeable time.