@conference {373616,
	title = {Polaris: Faster Page Loads Using Fine-grained Dependency Tracking},
	booktitle = {NSDI},
	year = {2016},
	address = {Santa Clara, CA},
	abstract = {To load a web page, a browser must fetch and evaluate\&nbsp;objects like HTML files and JavaScript source\&nbsp;code. Evaluating an object can result in additional objects\&nbsp;being fetched and evaluated. Thus, loading a web\&nbsp;page requires a browser to resolve a dependency graph;\&nbsp;this partial ordering constrains the sequence in which a\&nbsp;browser can process individual objects. Unfortunately,\&nbsp;many edges in a page{\textquoteright}s dependency graph are unobservable\&nbsp;by today{\textquoteright}s browsers. To avoid violating these hidden\&nbsp;dependencies, browsers make conservative assumptions\&nbsp;about which objects to process next, leaving the network\&nbsp;and CPU underutilized.
We provide two contributions. First, using a new measurement\&nbsp;platform called Scout that tracks fine-grained\&nbsp;data flows across the JavaScript heap and the DOM,\&nbsp;we show that prior, coarse-grained dependency analyzers\&nbsp;miss crucial edges: across a test corpus of 200\&nbsp;pages, prior approaches miss 30\% of edges at the median,\&nbsp;and 118\% at the 95th percentile. Second, we quantify\&nbsp;the benefits of exposing these new edges to web\&nbsp;browsers. We introduce Polaris, a dynamic client-side\&nbsp;scheduler that is written in JavaScript and runs on unmodified\&nbsp;browsers; using a fully automatic compiler,\&nbsp;servers can translate normal pages into ones that load\&nbsp;themselves with Polaris. Polaris uses fine-grained dependency\&nbsp;graphs to dynamically determine which objects to\&nbsp;load, and when. Since Polaris{\textquoteright} graphs have no missing\&nbsp;edges, Polaris can aggressively fetch objects in a way that\&nbsp;minimizes network round trips. Experiments in a variety\&nbsp;of network conditions show that Polaris decreases page\&nbsp;load times by 34\% at the median, and 59\% at the 95th\&nbsp;percentile.},
	url = {http://mickens.seas.harvard.edu/files/mickens/files/polaris.pdf},
	author = {R. Netravali and A. Goyal and J. Mickens and H. Balakrishnan}
}
