원문정보
초록
영어
Multi-threaded Java applications using synchronized or reentrant locks respectively exist performance trade-off. Parallel programmers usually use manual refactoring to test the performance of locks in a particular environment. However, manual refactoring is labor-intensive and error-prone. There is a strong need for automated support to find which one is more suitable to exert the performance of applications. This paper presents a refactoring framework to enable the transformation from synchronized locks to reentrant locks automatically. The framework analyzes global monitors based on Quad intermediate representation and visitor pattern in the Joeq compiler, validates the consistency of analysis results, and performs the transformation. The framework is evaluated on three benchmarks including red-black tree, producer-consumer problem, and SPECjbb2005. The total time is less than 4s for all three benchmarks on common desktop computer, and the successful refactoring results are observed.
목차
1. Introduction
2. Why to Refactoring
3. What to Refactoring
4. Precondition
5. How to Refactoring
5.1. Overview of Refactoring Framework
5.2. Analysis
5.3. Consistency Validation
5.4. Transformation
6. Implementation of the Refactoring Framework
7. Experimentation
7.1. Experimental Setup
7.2. Experimental Results
8. Related Works
9. Conclusions
Acknowledgments
References