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...

Full description

Bibliographic Details
Published in:Communications of the ACM Vol. 63; no. 11; pp. 146 - 154
Main Authors: Vilk, John, Berger, Emery D.
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