Improving locality of reference in a garbage-collecting memory management system
Communications of the ACM
Program optimization for instruction caches
ASPLOS III Proceedings of the third international conference on Architectural support for programming languages and operating systems
Caching considerations for generational garbage collection
LFP '92 Proceedings of the 1992 ACM conference on LISP and functional programming
Improving the cache locality of memory allocation
PLDI '93 Proceedings of the ACM SIGPLAN 1993 conference on Programming language design and implementation
Using lifetime predictors to improve memory allocation performance
PLDI '93 Proceedings of the ACM SIGPLAN 1993 conference on Programming language design and implementation
Memory subsystem performance of programs using copying garbage collection
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Accurate static estimators for program optimization
PLDI '94 Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation
ATOM: a system for building customized program analysis tools
PLDI '94 Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation
Memory allocation costs in large C and C++ programs
Software—Practice & Experience
Profile-guided receiver class prediction
Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications
Proceedings of the 29th annual ACM/IEEE international symposium on Microarchitecture
The Java Language Specification
The Java Language Specification
Garbage collection in a large LISP system
LFP '84 Proceedings of the 1984 ACM Symposium on LISP and functional programming
New methods for dynamic storage allocation (Fast Fits)
SOSP '83 Proceedings of the ninth ACM symposium on Operating systems principles
Comparative Performance Evaluation of
Comparative Performance Evaluation of
Aspects of cache memory and instruction buffer performance
Aspects of cache memory and instruction buffer performance
Effective jump-pointer prefetching for linked data structures
ISCA '99 Proceedings of the 26th annual international symposium on Computer architecture
Cache-conscious structure layout
Proceedings of the ACM SIGPLAN 1999 conference on Programming language design and implementation
Cache-conscious structure definition
Proceedings of the ACM SIGPLAN 1999 conference on Programming language design and implementation
Proceedings of the ACM SIGPLAN 1999 conference on Programming language design and implementation
Profile-driven pretenuring for Java (poster session)
OOPSLA '00 Addendum to the 2000 proceedings of the conference on Object-oriented programming, systems, languages, and applications (Addendum)
Composing high-performance memory allocators
Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
Efficient representations and abstractions for quantifying and exploiting data reference locality
Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
An efficient profile-analysis framework for data-layout optimizations
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Exploiting prolific types for memory management and optimizations
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Understanding the connectivity of heap objects
Proceedings of the 3rd international symposium on Memory management
Avoiding initialization misses to the heap
ISCA '02 Proceedings of the 29th annual international symposium on Computer architecture
Creating and preserving locality of java applications at allocation and garbage collection times
OOPSLA '02 Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
A Study of the Allocation Behavior of the SPECjvm98 Java Benchmark
ECOOP '99 Proceedings of the 13th European Conference on Object-Oriented Programming
Automatic pool allocation for disjoint data structures
Proceedings of the 2002 workshop on Memory system performance
Connectivity-based garbage collection
OOPSLA '03 Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications
Array regrouping and structure splitting using whole-program reference affinity
Proceedings of the ACM SIGPLAN 2004 conference on Programming language design and implementation
Dynamic object sampling for pretenuring
Proceedings of the 4th international symposium on Memory management
Automatic pool allocation: improving performance by controlling data structure layout in the heap
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
A locality-improving dynamic memory allocator
Proceedings of the 2005 workshop on Memory system performance
Scalable locality-conscious multithreaded memory allocation
Proceedings of the 5th international symposium on Memory management
Decomposing memory performance: data structures and phases
Proceedings of the 5th international symposium on Memory management
Cache-conscious coallocation of hot data streams
Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation
On the Prediction of Java Object Lifetimes
IEEE Transactions on Computers
Reliability-aware data placement for partial memory protection in embedded processors
Proceedings of the 2006 workshop on Memory system performance and correctness
ACM Transactions on Programming Languages and Systems (TOPLAS)
Towards intelligent analysis techniques for object pretenuring
Proceedings of the 5th international symposium on Principles and practice of programming in Java
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Exploiting selective placement for low-cost memory protection
ACM Transactions on Architecture and Code Optimization (TACO)
Abstracting access patterns of dynamic memory using regular expressions
ACM Transactions on Architecture and Code Optimization (TACO)
Dynamic prediction of collection yield for managed runtimes
Proceedings of the 14th international conference on Architectural support for programming languages and operating systems
A component model of spatial locality
Proceedings of the 2009 international symposium on Memory management
Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation
A study of memory management for web-based applications on multicore processors
Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation
Efficiently and precisely locating memory leaks and bloat
Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation
Program locality analysis using reuse distance
ACM Transactions on Programming Languages and Systems (TOPLAS)
How a Java VM can get more from a hardware performance monitor
Proceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications
Efficient runtime tracking of allocation sites in Java
Proceedings of the 6th ACM SIGPLAN/SIGOPS international conference on Virtual execution environments
Custom memory allocation for free
LCPC'06 Proceedings of the 19th international conference on Languages and compilers for parallel computing
Layout transformations for heap objects using static access patterns
CC'07 Proceedings of the 16th international conference on Compiler construction
On improving heap memory layout by dynamic pool allocation
Proceedings of the 8th annual IEEE/ACM international symposium on Code generation and optimization
A dynamic evaluation of the precision of static heap abstractions
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Compartmental memory management in a modern web browser
Proceedings of the international symposium on Memory management
Improving shared cache behavior of multithreaded object-oriented applications in multicores
Proceedings of the International Conference on Computer-Aided Design
A comparative analysis of performance improvement schemes for cache memories
Computers and Electrical Engineering
Identifying the sources of cache misses in Java programs without relying on hardware counters
Proceedings of the 2012 international symposium on Memory Management
Memory leak detection with context awareness
Proceedings of the 2012 ACM Research in Applied Computation Symposium
Hi-index | 0.00 |
Dynamic storage allocation has become increasingly important in many applications, in part due to the use of the object-oriented paradigm. At the same time, processor speeds are increasing faster than memory speeds and programs are increasing in size faster than memories. In this paper, we investigate efforts to predict heap object reference and lifetime behavior at the time objects are allocated. Our approach uses profile-based optimization, and considers a variety of different information sources present at the time of object allocation to predict the object's reference frequency and lifetime. Our results, based on measurements of six allocation intensive programs, show that program references to heap objects are highly predictable and that our prediction methods can successfully predict the behavior of these heap objects. We show that our methods can decrease the page fault rate of the programs measured, sometimes dramatically, in cases where the physical memory available to the program is constrained.