• DocumentCode
    3686473
  • 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
  • fYear
    2015
  • Firstpage
    1
  • Lastpage
    8
  • 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"
  • Publisher
    ieee
  • Conference_Titel
    Empirical Software Engineering and Measurement (ESEM), 2015 ACM/IEEE International Symposium on
  • Type

    conf

  • DOI
    10.1109/ESEM.2015.7321202
  • Filename
    7321202