Leakpair: Proactive Repairing of Memory Leaks in Single Page Web Applications
Authors:
- 11 September 2023
- conference paper
- Published by Institute of Electrical and Electronics Engineers (IEEE)
- p. 1175-1187
Abstract
Modern web applications often resort to application development frameworks such as React, Vue.js, and Angular. While the frameworks facilitate the development of web applications with several useful components, they are inevitably vulnerable to unmanaged memory consumption since the frameworks often produce Single Page Applications (SPAs). Web applications can be alive for hours and days with behavior loops, in such cases, even a single memory leak in a SPA app can cause performance degradation on the client side. However, recent debugging techniques for web applications still focus on memory leak detection, which requires manual tasks and produces imprecise results. We propose Leakpair,a technique to repair memory leaks in single page applications. Given the insight that memory leaks are mostly non-functional bugs and fixing them might not change the behavior of an application, the technique is designed to proactively generate patches to fix memory leaks, without leak detection, which is often heavy and tedious. To generate effective patches, Leakpairfollows the idea of pattern-based program repair since the automated repair strategy shows successful results in many recent studies. We evaluate the technique on more than 20 open-source projects without using explicit leak detection. The patches generated by our technique are also submitted to the projects as pull requests. The results show that Leakpaircan generate effective patches to reduce memory consumption that are acceptable to developers. In addition, we execute the test suites given by the projects after applying the patches, and it turns out that the patches do not cause any functionality breakage; this might imply that Leakpaircan generate non-intrusive patches for memory leaks.Keywords
All Related Versions
Funding Information
- National Research Foundation of Korea (NRF)
This publication has 23 references indexed in Scilit:
- Shaping program repair space with existing patches and similar code2018
- Mining stackoverflow for program repair2018
- LeakSpot: detection and diagnosis of memory leaks in JavaScript applicationsSoftware: Practice and Experience, 2016
- MemInsight: platform-independent memory debugging for JavaScript2015
- Vejovis: suggesting fixes for JavaScript faults2014
- Pro Single Page Application Development2014
- Automatic patch generation learned from human-written patches2013
- SemFix: Program repair via semantic analysis2013
- Automatically finding patches using genetic programming2009
- On a Test of Whether one of Two Random Variables is Stochastically Larger than the OtherThe Annals of Mathematical Statistics, 1947