Back to Search
Start Over
Improving Performance and Maintainability of Object Cloning with Lazy Clones: An Empirical Evaluation
- Source :
- ESEM
- Publication Year :
- 2015
- Publisher :
- IEEE, 2015.
-
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.
Details
- Database :
- OpenAIRE
- Journal :
- 2015 ACM/IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM)
- Accession number :
- edsair.doi...........d46439aeab317aade4f8809d206c42e1
- Full Text :
- https://doi.org/10.1109/esem.2015.7321202