View Issue Details

IDProjectCategoryView StatusLast Update
0000675LDMud 3.5LPC Compiler/Preprocessorpublic2009-09-16 09:36
ReporterBardioc Assigned To 
Status newResolutionopen 
Summary0000675: Implementation of generational garbage collection using the 'Train Algorithm' (real-time, interruptable)
DescriptionImplementation 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.
TagsNo tags attached.



2009-09-16 09:36

administrator   ~0001269

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.

Issue History

Date Modified Username Field Change
2009-09-16 06:30 Bardioc New Issue
2009-09-16 06:33 Gnomi Project LDMud => LDMud 3.5
2009-09-16 09:36 zesstra Note Added: 0001269