作者: Ravi Netravali , Hari Balakrishnan , James Mickens , Ameesh Goyal
DOI:
关键词:
摘要: To load a web page, browser must fetch and evaluate objects like HTML files JavaScript source code. Evaluating an object can result in additional being fetched evaluated. Thus, loading page requires to resolve dependency graph; this partial ordering constrains the sequence which process individual objects. Unfortunately, many edges page's graph are unobservable by today's browsers. avoid violating these hidden dependencies, browsers make conservative assumptions about next, leaving network CPU underutilized. We provide two contributions. First, using new measurement platform called Scout that tracks fine-grained data flows across heap DOM, we show prior, coarse-grained analyzers miss crucial edges: test corpus of 200 pages, prior approaches 30% at median, 118% 95th percentile. Second, quantify benefits exposing We introduce Polaris, dynamic client-side scheduler is written runs on unmodified browsers; fully automatic compiler, servers translate normal pages into ones themselves with Polaris. Polaris uses graphs dynamically determine load, when. Since Polaris' have no missing edges, aggressively way minimizes round trips. Experiments variety conditions decreases times 34% 59%