This paper presents a static analysis and transformation system that enables the deallocation of individual objects in Java programs. Given an input program, the compiler automatically inserts free statements to deallocate individual objects. This transformation is enabled by an inter-procedural, context-sensitive dataflow analysis that tracks the state of one object instance at a time, from the point where it is allocated, and up to the point where the object instance becomes unreachable and can be freed. For the SPECjvm98 benchmarks, free-instrumented programs generated by our compiler and executed in a virtual machine with explicit memory deallocation reclaim, on average, more than 50% of the total memory allocated by the program, and ha...
Abstract. We present a type system for a compile-time analysis of heap-space requirements of Java st...
The memory hierarchy in modern architectures continues to be a major performance bottleneck. Many ex...
Object combining tries to put objects together that have roughly the same life times in order to red...
Abstract. This paper presents a formal design of a tool for statically establishing the upper bound ...
We suggest an escaping analysis for Java programs, to identify stack-allocatable objects. This analy...
The memory hierarchy in modern architectures continues to be a major performance bottleneck. Many ex...
Most Java programmers would agree that Java is a language that promotes a philosophy of “create and ...
Dynamic memory management is a known performance bottleneck of Java applications. The problem arises...
The application field of static analysis techniques for objectoriented programming is getting broade...
The specification language is a critical component of the hardware-software co-design process since ...
AbstractWe present a method to analyze, monitor and control dynamic memory allocation in Java. It fi...
One of the significant issues that hinder the performance of Java program execution is dynamic memor...
Points-to analysis is a static analysis that approximates which memory locations each program expres...
In real-time and embedded systems, it is often necessary to place conservative upper bounds on the m...
We present a method to analyze, monitor and control dynamic memory allocation in Java. It first cons...
Abstract. We present a type system for a compile-time analysis of heap-space requirements of Java st...
The memory hierarchy in modern architectures continues to be a major performance bottleneck. Many ex...
Object combining tries to put objects together that have roughly the same life times in order to red...
Abstract. This paper presents a formal design of a tool for statically establishing the upper bound ...
We suggest an escaping analysis for Java programs, to identify stack-allocatable objects. This analy...
The memory hierarchy in modern architectures continues to be a major performance bottleneck. Many ex...
Most Java programmers would agree that Java is a language that promotes a philosophy of “create and ...
Dynamic memory management is a known performance bottleneck of Java applications. The problem arises...
The application field of static analysis techniques for objectoriented programming is getting broade...
The specification language is a critical component of the hardware-software co-design process since ...
AbstractWe present a method to analyze, monitor and control dynamic memory allocation in Java. It fi...
One of the significant issues that hinder the performance of Java program execution is dynamic memor...
Points-to analysis is a static analysis that approximates which memory locations each program expres...
In real-time and embedded systems, it is often necessary to place conservative upper bounds on the m...
We present a method to analyze, monitor and control dynamic memory allocation in Java. It first cons...
Abstract. We present a type system for a compile-time analysis of heap-space requirements of Java st...
The memory hierarchy in modern architectures continues to be a major performance bottleneck. Many ex...
Object combining tries to put objects together that have roughly the same life times in order to red...