Publication | Closed Access
Compile-time deallocation of individual objects
43
Citations
18
References
2006
Year
Unknown Venue
Mathematical ProgrammingEngineeringCompiler TechnologyComputer ArchitectureSoftware EngineeringSoftware AnalysisJava ProgramsStatic CheckingParallel ComputingCombinatorial OptimizationCompilersMemory ManagementDynamic CompilationCompiler SupportStatic AnalysisComputer EngineeringCompile-time DeallocationComputer ScienceOptimizing CompilerStatic Program AnalysisProgram AnalysisSoftware TestingFormal MethodsTransformation SystemParallel ProgrammingGarbage CollectionSystem Software
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 have a low run-time overhead of 1%. For several benchmarks, the analysis can free more than 85% of the total memory.
| Year | Citations | |
|---|---|---|
Page 1
Page 1