CLU reference manual
ORBIT: an optimizing compiler for scheme
SIGPLAN '86 Proceedings of the 1986 SIGPLAN symposium on Compiler construction
Revised report on the algorithmic language scheme
ACM SIGPLAN Notices
Improving locality of reference in a garbage-collecting memory management system
Communications of the ACM
MIPS RISC architecture
Simple generational garbage collection and fast allocation
Software—Practice & Experience
The definition of Standard ML
Computer architecture: a quantitative approach
Computer architecture: a quantitative approach
Cache and memory hierarchy design: a performance-directed approach
Cache and memory hierarchy design: a performance-directed approach
IMPS: an interactive mathematical proof system
CADE-10 Proceedings of the tenth international conference on Automated deduction
A parallel virtual machine for efficient scheme compilation
LFP '90 Proceedings of the 1990 ACM conference on LISP and functional programming
The cache performance and optimizations of blocked algorithms
ASPLOS IV Proceedings of the fourth international conference on Architectural support for programming languages and operating systems
ML for the working programmer
Cache behavior of combinator graph reduction
ACM Transactions on Programming Languages and Systems (TOPLAS)
Compiling with continuations
Caching considerations for generational garbage collection
LFP '92 Proceedings of the 1992 ACM conference on LISP and functional programming
Cache write policies and performance
ISCA '93 Proceedings of the 20th annual international symposium on computer architecture
Memory subsystem performance of programs using copying garbage collection
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A real-time garbage collector based on the lifetimes of objects
Communications of the ACM
A nonrecursive list compacting algorithm
Communications of the ACM
A LISP garbage-collector for virtual-memory computer systems
Communications of the ACM
Garbage collection in a large LISP system
LFP '84 Proceedings of the 1984 ACM Symposium on LISP and functional programming
T: a dialect of Lisp or LAMBDA: The ultimate software tool
LFP '82 Proceedings of the 1982 ACM symposium on LISP and functional programming
Address/memory management for a gigantic LISP environment or, GC considered harmful
LFP '80 Proceedings of the 1980 ACM conference on LISP and functional programming
Generation Scavenging: A non-disruptive high performance storage reclamation algorithm
SDE 1 Proceedings of the first ACM SIGSOFT/SIGPLAN software engineering symposium on Practical software development environments
Memory Subsystem Performance of Programs with Intensive Heap Allocation
Memory Subsystem Performance of Programs with Intensive Heap Allocation
CACHE PERFORMANCE OF GARBAGE-COLLECTED PROGRAMMING LANGUAGES
CACHE PERFORMANCE OF GARBAGE-COLLECTED PROGRAMMING LANGUAGES
TYPECHECKING IS UNDECIDABLE WHEN ''TYPE'' IS A TYPE
TYPECHECKING IS UNDECIDABLE WHEN ''TYPE'' IS A TYPE
Aspects of cache memory and instruction buffer performance
Aspects of cache memory and instruction buffer performance
Orbit: an optimizing compiler for scheme
Orbit: an optimizing compiler for scheme
Comparative performance evaluation of garbage collection algorithms
Comparative performance evaluation of garbage collection algorithms
Higher-order distributed objects
ACM Transactions on Programming Languages and Systems (TOPLAS)
Cache performance of fast-allocating programs
FPCA '95 Proceedings of the seventh international conference on Functional programming languages and computer architecture
Lambda-splitting: a higher-order approach to cross-module optimizations
ICFP '97 Proceedings of the second ACM SIGPLAN international conference on Functional programming
The measured cost of copying garbage collection mechanisms
ICFP '97 Proceedings of the second ACM SIGPLAN international conference on Functional programming
Memory system behavior of Java programs: methodology and analysis
Proceedings of the 2000 ACM SIGMETRICS international conference on Measurement and modeling of computer systems
Efficient memory management in a merged heap/stack prolog machine
Proceedings of the 2nd ACM SIGPLAN international conference on Principles and practice of declarative programming
Automated data-member layout of heap objects to improve memory-hierarchy performance
ACM Transactions on Programming Languages and Systems (TOPLAS)
Do Object-Oriented Languages Need Special Hardware Support?
ECOOP '95 Proceedings of the 9th European Conference on Object-Oriented Programming
Using Scratchpad to Exploit Object Locality in Java
ICCD '05 Proceedings of the 2005 International Conference on Computer Design
Practical Structure Layout Optimization and Advice
Proceedings of the International Symposium on Code Generation and Optimization
Optimistic stack allocation for java-like languages
Proceedings of the 5th international symposium on Memory management
Whole-program optimization of global variable layout
Proceedings of the 15th international conference on Parallel architectures and compilation techniques
Data layouts for object-oriented programs
Proceedings of the 2007 ACM SIGMETRICS international conference on Measurement and modeling of computer systems
Performance implications of multiple pointer sizes
TCON'95 Proceedings of the USENIX 1995 Technical Conference Proceedings
A cache-pinning strategy for improving generational garbage collection
HiPC'06 Proceedings of the 13th international conference on High Performance Computing
Hi-index | 0.00 |
As processor speeds continue to improve relative to main-memory access times, cache performance is becoming an increasingly important component of program performance. Prior work on the cache performance of garbage-collected programs either argues or assumes that conventional garbage-collection methods will yield poor performance, and has therefore concentrated on new collection algorithms designed specifically to improve cache-level reference locality.This paper argues to the contrary: Many programs written in garbage-collected languages are naturally well-suited to the direct-mapped caches typically found in modern computer systems. Garbage-collected programs written in a mostly-functional style should perform well when simple linear storage allocation and an infrequently-run generational compacting collector are employed; sophisticated collectors intended to improve cache performance are unlikely to be necessary. As locality becomes ever more important to program performance, programs of this kind may turn out to have a significant performance advantage over programs written in traditional languages.