Results 1 -
2 of
2
Allocation with Increments in a Non-moving Collector
, 1999
"... One of the advantages that compacting collectors tout over non-moving collectors is that compacting collectors can allocate memory very quickly with a simple pointer increment. It is shown that non-moving collectors can also use simple pointer increments when allocating memory without too much overh ..."
Abstract
-
Cited by 1 (1 self)
- Add to MetaCart
One of the advantages that compacting collectors tout over non-moving collectors is that compacting collectors can allocate memory very quickly with a simple pointer increment. It is shown that non-moving collectors can also use simple pointer increments when allocating memory without too much overhead. Keywords: memory allocation, garbage collection 1 Introduction The automatic reclamation of unused memory is called garbage collection, and is used in many programming environments (e.g. Java). There are two basic algorithms that are commonly used in garbage collectors (among others). Mark and sweep garbage collection works by marking all the reachable objects and then sweeping the heap to reclaim memory occupied by unreachable objects. Copying garbage collection works by copying all reachable objects from one half of the heap to the other half of the heap, which is initially empty. 1 Mark and sweep collectors never move objects within memory, and hence are non-moving collectors....
Garbage Collection and Local Variable Type-Precision and Liveness in Java
- In SIGPLAN Conf. on Prog. Lang. Design and Impl
, 1998
"... . Full precision in garbage collection implies retaining only those heap allocated objects that will actually be used in the future. Since full precision is not computable in general, garbage collectors use safe (i.e., conservative) approximations such as reachability from a set of root references. ..."
Abstract
- Add to MetaCart
. Full precision in garbage collection implies retaining only those heap allocated objects that will actually be used in the future. Since full precision is not computable in general, garbage collectors use safe (i.e., conservative) approximations such as reachability from a set of root references. Ambiguous roots collectors (commonly called "conservative") can be overly conservative because they overestimate the root set, and thereby retain unexpectedly large amounts of garbage. We consider two more precise collection schemes for Java virtual machines (JVMs). One uses a type analysis to obtain a type-precise root set (only those variables that contain references); the other adds a live variable analysis to reduce the root set to only the live reference variables. Even with the Java programming language's strong typing, it turns out that the JVM specification has a feature that makes type-precise root sets difficult to compute. We explain the problem and ways in which it can be solved....

