Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/3524613.3527803acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
research-article
Open access

Quantifying daily evolution of mobile software based on memory allocator churn

Published: 17 October 2022 Publication History

Abstract

The pace and volume of code churn necessary to evolve modern software systems present challenges for analyzing the performance impact of any set of code changes. Traditional methods used in performance analysis rely on extensive data collection and profiling, which often takes days. For large organizations utilizing Continuous Integration (CI) and Continuous Deployment (CD), these traditional techniques often fail to provide timely and actionable data. A different impact analysis method that allows for more efficient detection of performance regressions is needed. We propose the utilization of user mode memory allocator churn as a novel approach to performance engineering. User mode allocator churn acts as a proxy metric to evaluate the relative change in the cost of specific tasks. We prototyped the memory allocation churn methodology while engaged in performance engineering for an iOS version of application X. We find that calculating and analyzing memory allocator churn (a) results in deterministic measurements, (b) is efficient for determining the presence of both individual performance regressions and general performance-related trends, and (c) is a suitable alternative to measuring the task completion time.

References

[1]
Lowell Jay Arthur. 1988. Software Evolution: The Software Maintenance Challenge. Wiley-Interscience, USA.
[2]
Herbert D. Benington. 1983. Production of Large Computer Programs. Annals of the History of Computing 5, 4 (1983), 350--361.
[3]
Emery D. Berger, Benjamin G. Zorn, and Kathryn S. McKinley. 2001. Composing High-Performance Memory Allocators. In Proceedings of the ACM SIGPLAN 2001 Conference on Programming Language Design and Implementation (Snowbird, Utah, USA) (PLDI '01). Association for Computing Machinery, New York, NY, USA, 114?124.
[4]
Dominik Durner, Viktor Leis, and Thomas Neumann. 2019. On the Impact of Memory Allocation on High-Performance Query Processing. In Proceedings of the 15th International Workshop on Data Management on New Hardware (Amsterdam, Netherlands) (DaMoN'19). Association for Computing Machinery, New York, NY, USA, Article 21, 3 pages.
[5]
Jason Evans. 2011. Scalable Memory Allocation Using jemalloc. Retrieved March 7, 2022 from https://engineering.fb.com/2011/01/03/core-data/scalable-memory-allocation-using-jemalloc/
[6]
Free Software Foundation, Inc. 2021. Hooks for Malloc (The GNU C Library). Retrieved March 7, 2022 from https://www.gnu.org/software/libc/manual/html_node/Hooks-for-Malloc.html
[7]
Brendan Gregg. 2020. Systems Performance: Enterprise and the Cloud (2nd ed.). Addison-Wesley, Boston.
[8]
Max Hort, Maria Kechagia, Federica Sarro, and Mark Harman. 2021. A Survey of Performance Optimization for Mobile Applications. IEEE Transactions on Software Engineering (2021), 1--1.
[9]
IEEE and The Open Group. 2018. The Open Group Base Specifications Issue 7, 2018 edition. Retrieved March 7, 2022 from https://pubs.opengroup.org/onlinepubs/9699919799.2018edition/
[10]
Raj Jain. 1991. The Art of Computer Systems Performance Analysis: Techniques for Experimental Design, Measurement, Simulation, and Modeling. Wiley, New York.
[11]
Tal Kellner. 2018. Mobile@Scale Tel Aviv - Don't Miss the Train: Shipping Apps and Beyond. Retrieved March 7, 2022 from https://atscaleconference.com/videos/mobilescale-tel-aviv-dont-miss-the-train-shipping-apps-and-beyond/
[12]
Tetsuyuki Kobayashi. 2013. Tips of malloc & free. Making Your Own malloc Library for Troubleshooting. San Francisco, CA, USA. Retrieved March 7, 2022 from https://elinux.org/images/b/b5/Elc2013_Kobayashi.pdf
[13]
Jaehwan Lee and Sangoh Park. 2021. Mobile Memory Management System Based on User's Application Usage Patterns. Computers, Materials & Continua 68, 3 (2021), 4031--4050.
[14]
Chuck Lever and David Boreham. 2000. Malloc() Performance in a Multithreaded Linux Environment. In Proceedings of the Annual Conference on USENIX Annual Technical Conference (San Diego, California) (ATEC '00). USENIX Association, USA, 56.
[15]
Jim McCarthy and Michele McCarthy. 2006. Dynamics of Software Development (2nd ed.). Microsoft Press, Redmond, Washington.
[16]
Tom Mens and Serge Demeyer. 2008. Software Evolution (1st ed.). Springer Publishing Company, Incorporated.
[17]
Chuck Rossi, Elisa Shibley, Shi Su, Kent Beck, Tony Savor, and Michael Stumm. 2016. Continuous Deployment of Mobile Software at Facebook (Showcase). In Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering (FSE 2016). Association for Computing Machinery, Seattle, WA, USA, 12--23.
[18]
W. W. Royce. 1987. Managing the Development of Large Software Systems: Concepts and Techniques. In Proceedings of the 9th International Conference on Software Engineering (Monterey, California, USA) (ICSE '87). IEEE Computer Society Press, Washington, DC, USA, 328--338.
[19]
Konstantin Serebryany, Derek Bruening, Alexander Potapenko, and Dmitry Vyukov. 2012. AddressSanitizer: A Fast Address Sanity Checker. In Proceedings of the 2012 USENIX Conference on Annual Technical Conference (Boston, MA) (USENIX ATC'12). USENIX Association, USA, 28.
[20]
Amit Singh. 2016. Mac OS X Internals: a Systems Approach. Addison-Wesley Professional. OCLC: 1005337597.
[21]
Priyadarshi Tripathy and Kshirasagar Naik. 2014. A Practitioner's Approach, Software Evolution and Maintenance. John Wiley & Sons, Inc., USA.
[22]
Natansh Verma. 2015. Optimizing Facebook for iOS Start Time. Retrieved March 7, 2022 from https://engineering.fb.com/2015/11/20/ios/optimizing-facebook-for-ios-start-time/
[23]
Gray Watson. 2021. Dmalloc - Debug Malloc Home Page. Retrieved March 7, 2022 from https://dmalloc.com/
[24]
Titus Winters, Tom Manshreck, and Hyrum Wright. 2020. Software Engineering at Google: Lessons Learned from Programming Over Time (1 ed.). O'Reilly, Beijing Boston Farnham Sebastopol Tokyo.
[25]
Shengqian Yang, Dacong Yan, and Atanas Rountev. 2013. Testing for Poor Responsiveness in Android Applications. In 2013 1st International Workshop on the Engineering of Mobile-Enabled Systems (MOBS). 1--6.
[26]
Agustin Zuniga, Huber Flores, Eemil Lagerspetz, Petteri Nurmi, Sasu Tarkoma, Pan Hui, and Jukka Manner. 2019. Tortoise or Hare? Quantifying the Effects of Performance on Mobile App Retention. In The World Wide Web Conference (San Francisco, CA, USA) (WWW '19). Association for Computing Machinery, New York, NY, USA, 2517--2528.

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
MOBILESoft '22: Proceedings of the 9th IEEE/ACM International Conference on Mobile Software Engineering and Systems
May 2022
154 pages
ISBN:9781450393010
DOI:10.1145/3524613
  • General Chair:
  • Leonardo Mariani,
  • Program Chairs:
  • Gemma Catolino,
  • Mei Nagappan
This work is licensed under a Creative Commons Attribution International 4.0 License.

Sponsors

In-Cooperation

  • IEEE CS

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 17 October 2022

Check for updates

Author Tags

  1. memory
  2. mobile applications
  3. performance
  4. software evolution

Qualifiers

  • Research-article

Conference

MOBILESoft '22
Sponsor:

Upcoming Conference

ICSE 2025

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 129
    Total Downloads
  • Downloads (Last 12 months)70
  • Downloads (Last 6 weeks)11
Reflects downloads up to 08 Feb 2025

Other Metrics

Citations

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media