skip to main content
article

Object equivalence: revisiting object equality profiling (an experience report)

Published:24 October 2017Publication History
Skip Abstract Section

Abstract

Modern object-oriented programming languages greatly alleviate the memory management for programmers. Despite the efficiency of garbage collection and Just-In-Time program analyzes, memory still remains prone to be wasted.

A bloated memory may have severe consequences, including frequent execution lags due to a high pressure on the garbage collector and suboptimal object dependencies.

We found that dynamically monitoring object production sites and the equivalence of the produced objects is key to identify wasted memory consumption caused by redundant objects. We implemented optimizations for reducing the memory consumption of six applications, achieving a reduction over 40% in half of the applications without having any prior knowledge of these applications.

Our results partially replicate the results obtained by Marinov and O'Callahan and explore new ways to identify redundant objects.

References

  1. Alexandre Bergel, Felipe Ba nados, Romain Robbes, and David Röthlisberger. 2011. Spy: A flexible Code Profiling Framework. Journal of Computer Languages, Systems and Structures 38, 1 (Dec. 2011).Google ScholarGoogle Scholar
  2. Adriana E. Chis, Nick Mitchell, Edith Schonberg, Gary Sevitsky, Patrick O’Sullivan, Trevor Parsons, and John Murphy. 2011. Patterns of Memory Inefficiency. In Proceedings of ECOOP ’11. Google ScholarGoogle ScholarCross RefCross Ref
  3. Thomas H Cormen. 2009. Introduction to algorithms. MIT press.Google ScholarGoogle Scholar
  4. Luca Della Toffola, Michael Pradel, and Thomas R. Gross. 2015. Performance Problems You Can Fix: A Dynamic Analysis of Memoization Opportunities. In Proceedings of OOPSLA ’15. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Lu Fang, Liang Dou, and Guoqing (Harry) Xu. 2015. PerfBlower: Quickly Detecting Memory-Related Performance Problems via Amplification. In Proceedings of ECOOP ’15.Google ScholarGoogle Scholar
  6. Lukáš Marek, Alex Villazón, Yudi Zheng, Danilo Ansaloni, Walter Binder, and Zhengwei Qi. 2012. DiSL: A Domain-specific Language for Bytecode Instrumentation. In Proceedings of AOSD ’12. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Darko Marinov and Robert O’Callahan. 2003. Object equality profiling. In Proceedings of OOPSLA ’03. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Khanh Nguyen and Guoqing Xu. 2013. Cachetor: Detecting Cacheable Data to Remove Bloat. In Proceedings of ESEC/FSE ’13. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Girish Maskeri Rama and Raghavan Komondoor. 2014. A Dynamic Analysis to Support Object-sharing Code Refactorings. In Proceedings of ASE ’14. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Michael J. Steindorfer and Jurgen J. Vinju. 2016. Performance Modeling of Maximal Sharing. In Proceedings of ICPE ’16. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Toon Verwaest, Camillo Bruni, Mircea Lungu, and Oscar Nierstrasz. 2011. Flexible object layouts: enabling lightweight language extensions by intercepting slot access. In Proceedings of OOPSLA ’11. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Guoqing Xu. 2012. Finding Reusable Data Structures. In Proceedings of OOPSLA ’12. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Object equivalence: revisiting object equality profiling (an experience report)

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in

      Full Access

      • Published in

        cover image ACM SIGPLAN Notices
        ACM SIGPLAN Notices  Volume 52, Issue 11
        DLS '17
        November 2017
        86 pages
        ISSN:0362-1340
        EISSN:1558-1160
        DOI:10.1145/3170472
        Issue’s Table of Contents
        • cover image ACM Conferences
          DLS 2017: Proceedings of the 13th ACM SIGPLAN International Symposium on on Dynamic Languages
          October 2017
          86 pages
          ISBN:9781450355261
          DOI:10.1145/3133841

        Copyright © 2017 ACM

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 24 October 2017

        Check for updates

        Qualifiers

        • article

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader
      About Cookies On This Site

      We use cookies to ensure that we give you the best experience on our website.

      Learn more

      Got it!