Garbage Collection can be Faster than Stack Allocation

@article{Appel1987GarbageCC,
  title={Garbage Collection can be Faster than Stack Allocation},
  author={Andrew W. Appel},
  journal={Inf. Process. Lett.},
  year={1987},
  volume={25},
  pages={275-279}
}
  • A. Appel
  • Published 17 June 1987
  • Computer Science
  • Inf. Process. Lett.
Garbage Collection is Fast, but a Stack is Faster
TLDR
It is found that stack allocation of continuation frames outperforms heap allocation in some cases by almost a factor of three, ensuring that stacks remain an important implementation technique for procedure calls, even in the presence of an efficient, compacting garbage collector and large amounts of memory.
Automatic heapmanagement and realtime performance
  • H. Corporaal
  • Business
    [1991] Proceedings, Advanced Computer Technology, Reliable Systems and Applications
  • 1991
The work focuses on a particular garbage collection method, the incremental copying collector, which will probably be part of many future heap-management systems because it can easily be adapted to
Uniprocessor Garbage Collection Techniques
We survey basic garbage collection algorithms, and variations such as incremental and generational collection. The basic algorithms include reference counting, mark-sweep, mark-compact, copying, and
Simple generational garbage collection and fast allocation
  • A. Appel
  • Computer Science
    Softw. Pract. Exp.
  • 1989
TLDR
A scheme for quick record allocation attacks this bottleneck because many garbage‐collected environments do not know when to ask the operating system for more memory, and a robust heuristic solves this problem.
A generational mostly-concurrent garbage collector
TLDR
This paper reports the experiences with a mostly-concurrent incremental garbage collector, implemented in the context of a high performance virtual machine for the Java#8482; programming language, which minimises maximum garbage collection pause times, while having only a small impact on the average garbage collectionpause time and overall execution time.
Allocation without locking
  • A. Appel
  • Computer Science
    Softw. Pract. Exp.
  • 1989
In a programming environment with both concurrency and automatic garbage collection, the allocation and initialization of a new record is a sensitive matter: if it is interrupted half‐way through,
Performance of a hardware-assisted real-time garbage collector
Hardware-assisted real-time garbage collection offers high throughput and small worst-case bounds on the times required to allocate dynamic objects and to access the memory contained within
Memory subsystem performance of programs using copying garbage collection
TLDR
A study of the memory subsystem performance of heap allocation for memory subsystems found on many machines found that many machines support heap allocation poorly, but with the appropriate memory subsystem organization, heap allocation can have goodMemory subsystem performance.
Cache-Conscious Copying Collectors
TLDR
A multi-processor mutator/collector system is analyzed and the Intel 80860XP architecture is studied to optimize performance on modern single-chip computer architectures.
An Effect System Combining Alias and Liveness for Explicit Memory Reuse
TLDR
This work presents an effect system for checking whether every explicit memory reuse is safe, and abstracts the heap by using symbolic locations, kinds of cells, and two-level abstract domains to perform both alias and liveness analyses.
...
...

References

SHOWING 1-10 OF 11 REFERENCES
A LISP garbage-collector for virtual-memory computer systems
TLDR
A garbage-collection algorithm for list-processing systems which operate within very large virtual memo, ies is described, which is more the compaction of active storage than the discovery of free storage.
Garbage collection in a large LISP system
This paper discusses garbage collection techniques used in a high-performance Lisp implementation with a large virtual memory, the Symbolics 3600. Particular attention is paid to practical issues and
A real-time garbage collector based on the lifetimes of objects
TLDR
This work presents a garbage collection algorithm that makes storage for short-lived objects cheaper than storage for long-livedObjects, that operates in real time, increases locality of reference, for better virtual memory performance, and works well with multiple processors and a large address space.
Rabbit: A Compiler for Scheme
TLDR
A compiler for the lexically-scoped dialect of LISP known as SCHEME, which handles only a small basis set which reflects the semantics of lambda-calculus, and serves to produce code as good as that produced by more traditional compilers.
List Processing in Real Time on a Serial Computer
TLDR
A real-time list processing system is presented which continuously reclaims garbage, including directed cycles, while linearizing and compacting the accessible cells into contiguous locations to avoid fragmenting the free storage pool.
Recursive functions of symbolic expressions and their computation by machine, Part I
A programming system called LISP (for LISt Processor) has been developed for the IBM 704 computer by the Artificial Intelligence group at M.I.T. The system was designed to facilitate experiments with
A method for overlapping and erasure of lists
TLDR
The present paper describes a general method which enables efficient erasure of lists which employs interspersed reference counts to describe the extent of the overlapping.
A proposal for standard ML
Oki goes to court on Microtech pact
  • Oki goes to court on Microtech pact
  • 1986
‘ Oki goes to court on Microtech pact
    ...
    ...