Garbage collection in an uncooperative environment
Software—Practice & Experience
Simple generational garbage collection and fast allocation
Software—Practice & Experience
An advisor for flexible working sets
SIGMETRICS '90 Proceedings of the 1990 ACM SIGMETRICS conference on Measurement and modeling of computer systems
LFP '92 Proceedings of the 1992 ACM conference on LISP and functional programming
Trace reduction for virtual memory simulations
SIGMETRICS '99 Proceedings of the 1999 ACM SIGMETRICS international conference on Measurement and modeling of computer systems
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Memory system behavior of Java programs: methodology and analysis
Proceedings of the 2000 ACM SIGMETRICS international conference on Measurement and modeling of computer systems
Controlling garbage collection and heap growth to reduce the execution time of Java applications
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Flexible reference trace reduction for VM simulations
ACM Transactions on Modeling and Computer Simulation (TOMACS)
Garbage collection in a large LISP system
LFP '84 Proceedings of the 1984 ACM Symposium on LISP and functional programming
Garbage collection versus swapping
ACM SIGOPS Operating Systems Review
The EELRU adaptive replacement algorithm
Performance Evaluation
Oil and Water? High Performance Garbage Collection in Java with MMTk
Proceedings of the 26th International Conference on Software Engineering
IBM Systems Journal
The case for compressed caching in virtual memory systems
ATEC '99 Proceedings of the annual conference on USENIX Annual Technical Conference
Garbage collection without paging
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
Quantifying the performance of garbage collection vs. explicit memory management
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
A locality-improving dynamic memory allocator
Proceedings of the 2005 workshop on Memory system performance
Program-level adaptive memory management
Proceedings of the 5th international symposium on Memory management
PPPJ '06 Proceedings of the 4th international symposium on Principles and practice of programming in Java
Protected heap sharing for memory-constrained java environments
CASES '06 Proceedings of the 2006 international conference on Compilers, architecture and synthesis for embedded systems
ACM Transactions on Programming Languages and Systems (TOPLAS)
Application-specific garbage collection
Journal of Systems and Software
Isla Vista Heap Sizing: Using Feedback to Avoid Paging
Proceedings of the International Symposium on Code Generation and Optimization
The causes of bloat, the limits of health
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
CRAMM: virtual memory support for garbage-collected applications
OSDI '06 Proceedings of the 7th symposium on Operating systems design and implementation
Object co-location and memory reuse for Java programs
ACM Transactions on Architecture and Code Optimization (TACO)
Shared heap management for memory-limited java virtual machines
ACM Transactions on Embedded Computing Systems (TECS)
Garbage collection: Java application servers' Achilles heel
Science of Computer Programming
The mapping collector: virtual memory support for generational, parallel, and concurrent compaction
Proceedings of the 13th international conference on Architectural support for programming languages and operating systems
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
Java performance evaluation through rigorous replay compilation
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
Dynamic prediction of collection yield for managed runtimes
Proceedings of the 14th international conference on Architectural support for programming languages and operating systems
Dynamic memory balancing for virtual machines
Proceedings of the 2009 ACM SIGPLAN/SIGOPS international conference on Virtual execution environments
A page fault equation for dynamic heap sizing
Proceedings of the first joint WOSP/SIPEW international conference on Performance engineering
The economics of garbage collection
Proceedings of the 2010 international symposium on Memory management
Waste not, want not: resource-based garbage collection in a shared environment
Proceedings of the international symposium on Memory management
AS-GC: an efficient generational garbage collector for java application servers
ECOOP'07 Proceedings of the 21st European conference on Object-Oriented Programming
Control theory for principled heap sizing
Proceedings of the 2013 international symposium on memory management
An equation-based Heap Sizing Rule
Performance Evaluation
Proceedings of the 5th ACM/SPEC international conference on Performance engineering
Hi-index | 0.02 |
Heap size has a huge impact on the performance of garbage collected applications. A heap that barely meets the application's needs causes excessive GC overhead, while a heap that exceeds physical memory induces paging. Choosing the best heap size a priori is impossible in multiprogrammed environments, where physical memory allocations to processes change constantly. We present an automatic heap-sizing algorithm applicable to different garbage collectors with only modest changes. It relies on an analytical model and on detailed information from the virtual memory manager. The model characterizes the relation between collection algorithm, heap size, and footprint. The virtual memory manager tracks recent reference behavior, reporting the current footprint and allocation to the collector. The collector uses those values as inputs to its model to compute a heap size that maximizes throughput while minimizing paging. We show that our adaptive heap sizing algorithm can substantially reduce running time over fixed-sized heaps.