Show simple item record

dc.contributor.authorBalakrishnan, Hari
dc.contributor.authorGoyal, Ameesh
dc.contributor.authorNetravali, Ravi
dc.date.accessioned2021-11-04T18:37:04Z
dc.date.available2021-11-04T18:37:04Z
dc.date.issued2016
dc.identifier.urihttps://hdl.handle.net/1721.1/137389
dc.description.abstractTo load a web page, a browser must fetch and evaluate objects like HTML files and JavaScript source code. Evaluating an object can result in additional objects being fetched and evaluated. Thus, loading a web page requires a browser to resolve a dependency graph; this partial ordering constrains the sequence in which a browser can process individual objects. Unfortunately, many edges in a page’s dependency graph are unobservable by today’s browsers. To avoid violating these hidden dependencies, browsers make conservative assumptions about which objects to process next, leaving the network and CPU underutilized. We provide two contributions. First, using a new measurement platform called Scout that tracks fine-grained data flows across the JavaScript heap and the DOM, we show that prior, coarse-grained dependency analyzers miss crucial edges: across a test corpus of 200 pages, prior approaches miss 30% of edges at the median, and 118% at the 95th percentile. Second, we quantify the benefits of exposing these new edges to web browsers. We introduce Polaris, a dynamic client-side scheduler that is written in JavaScript and runs on unmodified browsers; using a fully automatic compiler, servers can translate normal pages into ones that load themselves with Polaris. Polaris uses fine-grained dependency graphs to dynamically determine which objects to load, and when. Since Polaris’ graphs have no missing edges, Polaris can aggressively fetch objects in a way that minimizes network round trips. Experiments in a variety of network conditions show that Polaris decreases page load times by 34% at the median, and 59% at the 95th percentile.en_US
dc.language.isoen
dc.relation.isversionofhttps://www.usenix.org/system/files/conference/nsdi16/nsdi16-paper-netravali.pdfen_US
dc.rightsCreative Commons Attribution-Noncommercial-Share Alikeen_US
dc.rights.urihttp://creativecommons.org/licenses/by-nc-sa/4.0/en_US
dc.sourceMIT web domainen_US
dc.titlePolaris: Faster Page Loads Using Fine-grained Dependency Trackingen_US
dc.typeArticleen_US
dc.identifier.citationBalakrishnan, Hari, Goyal, Ameesh and Netravali, Ravi. 2016. "Polaris: Faster Page Loads Using Fine-grained Dependency Tracking."
dc.contributor.departmentMassachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory
dc.eprint.versionAuthor's final manuscripten_US
dc.type.urihttp://purl.org/eprint/type/ConferencePaperen_US
eprint.statushttp://purl.org/eprint/status/NonPeerRevieweden_US
dc.date.updated2019-05-02T17:51:42Z
dspace.date.submission2019-05-02T17:51:43Z
mit.licenseOPEN_ACCESS_POLICY
mit.metadata.statusAuthority Work and Publication Information Neededen_US


Files in this item

Thumbnail

This item appears in the following Collection(s)

Show simple item record