PLDI '92 Proceedings of the ACM SIGPLAN 1992 conference on Programming language design and implementation
Region-based memory management
Information and Computation
Escape analysis for object-oriented languages: application to Java
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Proceedings of the 27th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Communications of the ACM
Automatic Accurate Live Memory Analysis for Garbage-Collected Languages
OM '01 Proceedings of the 2001 ACM SIGPLAN workshop on Optimization of middleware and distributed systems
Automatic discovery of linear restraints among variables of a program
POPL '78 Proceedings of the 5th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Java Virtual Machine Specification
Java Virtual Machine Specification
Static prediction of heap space usage for first-order functional programs
POPL '03 Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Optimized Live Heap Bound Analysis
VMCAI 2003 Proceedings of the 4th International Conference on Verification, Model Checking, and Abstract Interpretation
Soot - a Java bytecode optimization framework
CASCON '99 Proceedings of the 1999 conference of the Centre for Advanced Studies on Collaborative research
Cloning-based context-sensitive pointer alias analysis using binary decision diagrams
Proceedings of the ACM SIGPLAN 2004 conference on Programming language design and implementation
Region analysis and transformation for Java programs
Proceedings of the 4th international symposium on Memory management
Formal Translation of Bytecode into BoogiePL
Electronic Notes in Theoretical Computer Science (ENTCS)
Heap space analysis for java bytecode
Proceedings of the 6th international symposium on Memory management
The worst-case execution-time problem—overview of methods and survey of tools
ACM Transactions on Embedded Computing Systems (TECS)
Parametric prediction of heap memory requirements
Proceedings of the 7th international symposium on Memory management
Analysing memory resource bounds for low-level programs
Proceedings of the 7th international symposium on Memory management
Cost analysis of java bytecode
ESOP'07 Proceedings of the 16th European conference on Programming
Memory usage verification for OO programs
SAS'05 Proceedings of the 12th international conference on Static Analysis
Parametric heap usage analysis for functional programs
Proceedings of the 2009 international symposium on Memory management
On transforming Java-like programs into memory-predictable code
Proceedings of the 7th International Workshop on Java Technologies for Real-Time and Embedded Systems
Termination and Cost Analysis with COSTA and its User Interfaces
Electronic Notes in Theoretical Computer Science (ENTCS)
"Carbon Credits" for Resource-Bounded Computations Using Amortised Analysis
FM '09 Proceedings of the 2nd World Congress on Formal Methods
Asymptotic Resource Usage Bounds
APLAS '09 Proceedings of the 7th Asian Symposium on Programming Languages and Systems
Static determination of quantitative resource usage for higher-order programs
Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Parametric inference of memory requirements for garbage collected languages
Proceedings of the 2010 international symposium on Memory management
Exploiting memory usage patterns to improve garbage collections in Java
Proceedings of the 8th International Conference on the Principles and Practice of Programming in Java
A space consumption analysis by abstract interpretation
FOPARA'09 Proceedings of the First international conference on Foundational and practical aspects of resource analysis
Closed-Form Upper Bounds in Static Cost Analysis
Journal of Automated Reasoning
Worst-case analysis of heap allocations
ISoLA'10 Proceedings of the 4th international conference on Leveraging applications of formal methods, verification, and validation - Volume Part II
Live heap space bounds for real-time systems
APLAS'10 Proceedings of the 8th Asian conference on Programming languages and systems
Making the common case the only case with anticipatory memory allocation
FAST'11 Proceedings of the 9th USENIX conference on File and stroage technologies
Making the common case the only case with anticipatory memory allocation
ACM Transactions on Storage (TOS)
Space overhead bounds for dynamic memory management with partial compaction
ACM Transactions on Programming Languages and Systems (TOPLAS)
Automatic amortised analysis of dynamic memory allocation for lazy functional programs
Proceedings of the 17th ACM SIGPLAN international conference on Functional programming
Science of Computer Programming
Hi-index | 0.00 |
The peak heap consumption of a program is the maximum size of the live data on the heap during the execution of the program, i.e., the minimum amount of heap space needed to run the program without exhausting the memory. It is well-known that garbage collection (GC) makes the problem of predicting the memory required to run a program difficult. This paper presents, the best of our knowledge, the first live heap space analysis for garbage-collected languages which infers accurate upper bounds on the peak heap usage of a program's execution that are not restricted to any complexity class, i.e., we can infer exponential, logarithmic, polynomial, etc., bounds. Our analysis is developed for an (sequential) object-oriented bytecode language with a scoped-memory manager that reclaims unreachable memory when methods return. We also show how our analysis can accommodate other GC schemes which are closer to the ideal GC which collects objects as soon as they become unreachable. The practicality of our approach is experimentally evaluated on a prototype implementation. We demonstrate that it is fully automatic, reasonably accurate and efficient by inferring live heap space bounds for a standardized set of benchmarks, the JOlden suite.