Title :
Improving Performance and Maintainability of Object Cloning with Lazy Clones: An Empirical Evaluation
Author :
Bruno Cartaxo;Paulo Borba;Sergio Soares;Helio Fugimoto
Author_Institution :
Fed. Univ. of Pernambuco, Recife, Brazil
Abstract :
Object cloning is demanded by the prototype design pattern, copy-on-write strategy, some graph transformations, and many other scenarios. We have been developing a static analysis tool that clones objects frequently. In that context, issues related to performance, memory usage, and code maintainability might arise. Traditional deep cloning with dynamic allocation, reflection, and serialization, have not fulfilled those requirements. Thus, we developed novel implementations of lazy cloning with dynamic proxies and aspect-oriented programming (AOP). We defined benchmarks based on real workload to quantitatively assess the benefits of each implementation. AOP was chosen since it better harmonizes performance, memory usage and code maintainability. It was 88% faster than serialization, consumed 9 times less memory than reflection, and required 25 times less modifications on source code than dynamic allocation. In summary, we believe that the results can be extrapolated to broader contexts helping developers to make evidence-based decisions when object cloning is needed.
Keywords :
"Cloning","Dynamic scheduling","Resource management","Java","Runtime","Concrete","Benchmark testing"
Conference_Titel :
Empirical Software Engineering and Measurement (ESEM), 2015 ACM/IEEE International Symposium on
DOI :
10.1109/ESEM.2015.7321202