Quantifying Daily Evolution of Mobile Software Based on Memory Allocator Churn

03/08/2022
by   Gunnar Kudrjavets, et al.
0

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 a major iOS application. 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.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
08/17/2022

When malloc() Never Returns NULL – Reliability as an Illusion

For decades, the guidance given to software engineers has been to check ...
research
05/05/2022

The Evolving Landscape of Software Performance Engineering

Satisfactory software performance is essential for the adoption and the ...
research
03/21/2021

Continuous API Evolution in Heterogenous Enterprise Software Systems

The ability to independently deploy parts of a software system is one of...
research
05/29/2023

Quantifying Process Quality: The Role of Effective Organizational Learning in Software Evolution

Real-world software applications must constantly evolve to remain releva...
research
10/05/2020

Performance Analysis of Traditional and Data-Parallel Primitive Implementations of Visualization and Analysis Kernels

Measurements of absolute runtime are useful as a summary of performance ...
research
06/27/2023

Predicting the Impact of Batch Refactoring Code Smells on Application Resource Consumption

Automated batch refactoring has become a de-facto mechanism to restructu...

Please sign up or login with your details

Forgot password? Click here to reset