BLeak: Automatically Debugging Memory Leaks in Web Applications.
Memory leaks in web applications are pervasive and difficult to debug. Leaks degrade responsiveness by increasing garbage collection costs and can even lead to browser tab crashes. Previous leak detection approaches designed for conventional applications are ineffective in the browser environment. T...
| Published in: | Communications of the ACM Vol. 63; no. 11; pp. 146 - 154 |
|---|---|
| Main Authors: | , |
| Format: | Article |
| Published: |
Association for Computing Machinery
Nov2020
|
| Subjects: | |
| Online Access: | View this record in EBSCOhost |
| fields | @attributes: recordID: 1 pdfLink: plink: https://search.ebscohost.com/login.aspx?direct=true&db=hlh&AN=146617582&site=ehost-live header: @attributes: shortDbName: hlh uiTerm: 146617582 longDbName: Humanities International Complete uiTag: AN controlInfo: bkinfo: jinfo: jid: 00010782 ACM jtl: Communications of the ACM issn: 00010782 maglogo: N pubinfo: dt: Nov2020 vid: 63 iid: 11 pid: 68 pub: Association for Computing Machinery artinfo: ui: 146617582 10.1145/3422598 ppf: 146 ppct: 8 formats: tig: atl: BLeak: Automatically Debugging Memory Leaks in Web Applications. aug: au: Vilk, John Berger, Emery D. affil: College of Information and Computer Sciences, University of Massachusetts Amherst. su: Debugging Web browsers Web-based user interfaces Internet software Mozilla Firefox (Computer software) Algorithms sug: subj: Debugging Web browsers Web-based user interfaces Internet software Mozilla Firefox (Computer software) Algorithms ab: Memory leaks in web applications are pervasive and difficult to debug. Leaks degrade responsiveness by increasing garbage collection costs and can even lead to browser tab crashes. Previous leak detection approaches designed for conventional applications are ineffective in the browser environment. Tracking down leaks currently requires intensive manual effort by web developers, which is often unsuccessful. This paper introduces BLeak (Browser Leak debugger), the first system for automatically debugging memory leaks in web applications. BLeak’s algorithms leverage the observation that in modern web applications, users often repeatedly return to the same (approximate) visual state (e.g., the inbox view in Gmail). Sustained growth between round trips is a strong indicator of a memory leak. To use BLeak, a developer writes a short script (17–73 LOC on our benchmarks) to drive a web application in round trips to the same visual state. BLeak then automatically generates a list of leaks found along with their root causes, ranked by return on investment. Guided by BLeak, we identify and fix over 50 memory leaks in popular libraries and apps including Airbnb, AngularJS, Google Analytics, Google Maps SDK, and jQuery. BLeak’s median precision is 100%; fixing the leaks it identifies reduces heap growth by an average of 94%, saving from 0.5MB to 8MB per round trip. pubtype: Periodical doctype: Article src: R language: English refInfo: copyright: @attributes: flag: Y dt: @attributes: year: 2020 holdings: @attributes: islocal: N |
|---|