2001 · 22 citations · 16 references
ComputingComputer EngineeringComputer ScienceCompilersData StructuresOperating SystemsGarbage CollectionMemory HierarchyMemory ManagementVirtual MemoryDynamic HeapsGarbage Collection AlgorithmsGarbage Collection OverheadHeap ManagementHeap OrganizationPerformance OverheadPerformance Overhead AnalysisVirtual Machine Performance Optimization
This paper describes a novel method for dynamically switching between a Mark&Compact (M&C) and a Mark&Sweep (M&S) garbage collector in the generational memory system of a high performance Java virtual machine. A M&C collector reclaims space by sliding all live objects towards the beginning of the heap. A M&S collector de-allocates garbage objects in-place. In this paper, both algorithms are assumed to operate over the old generation of a generational memory system and on their own provide different trade-offs to the application that uses them: faster old collections but with slower young collections and the possibility of fragmentation (M&S) or slower old collections but with faster young collections and the guarantee to eliminate fragmentation (M&C). We propose Hot-Swapping, a technique for dynamically switching between these two algorithms, to attempt to achieve the best of both worlds. Its introduction to the memory system of the virtual machine imposed minimal changes to the existing implementations of M&C and M&S and virtually no extra performance overhead. Experimental results, presented in the paper, show that this hybrid scheme can either outperform both algorithms, or is very close to the faster of the two (whether this is M&S or M&C), while never being the slowest.
16
On-line construction of suffix trees
Esko Ukkonen · Algorithmica · 1995 · 1.5K citations
David Ungar · ACM SIGSOFT Software Engineering Notes · 1984 · 487 citations
A nonrecursive list compacting algorithm
C. J. Cheney · Communications of the ACM · 1970 · 392 citations · Full text