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.
- 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 Scholar
- 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 Scholar
Cross Ref
- Thomas H Cormen. 2009. Introduction to algorithms. MIT press.Google Scholar
- 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 Scholar
Digital Library
- Lu Fang, Liang Dou, and Guoqing (Harry) Xu. 2015. PerfBlower: Quickly Detecting Memory-Related Performance Problems via Amplification. In Proceedings of ECOOP ’15.Google Scholar
- 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 Scholar
Digital Library
- Darko Marinov and Robert O’Callahan. 2003. Object equality profiling. In Proceedings of OOPSLA ’03. Google Scholar
Digital Library
- Khanh Nguyen and Guoqing Xu. 2013. Cachetor: Detecting Cacheable Data to Remove Bloat. In Proceedings of ESEC/FSE ’13. Google Scholar
Digital Library
- Girish Maskeri Rama and Raghavan Komondoor. 2014. A Dynamic Analysis to Support Object-sharing Code Refactorings. In Proceedings of ASE ’14. Google Scholar
Digital Library
- Michael J. Steindorfer and Jurgen J. Vinju. 2016. Performance Modeling of Maximal Sharing. In Proceedings of ICPE ’16. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- Guoqing Xu. 2012. Finding Reusable Data Structures. In Proceedings of OOPSLA ’12. Google Scholar
Digital Library
Index Terms
Object equivalence: revisiting object equality profiling (an experience report)
Recommendations
Object equivalence: revisiting object equality profiling (an experience report)
DLS 2017: Proceedings of the 13th ACM SIGPLAN International Symposium on on Dynamic LanguagesModern 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 ...
Object equality profiling
OOPSLA '03: Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applicationsWe present Object Equality Profiling (OEP), a new technique for helping programmers discover optimization opportunities in programs. OEP discovers opportunities for replacing a set of equivalent object instances with a single representative object. Such ...
Object equality profiling
Special Issue: Proceedings of the OOPSLA '03 conferenceWe present Object Equality Profiling (OEP), a new technique for helping programmers discover optimization opportunities in programs. OEP discovers opportunities for replacing a set of equivalent object instances with a single representative object. Such ...







Comments