Show simple item record

dc.contributor.advisorHari Balakrishnan.en_US
dc.contributor.authorGoyal, Ameesh Kumaren_US
dc.contributor.otherMassachusetts Institute of Technology. Department of Electrical Engineering and Computer Science.en_US
dc.date.accessioned2015-12-07T20:09:26Z
dc.date.available2015-12-07T20:09:26Z
dc.date.copyright2015en_US
dc.date.issued2015en_US
dc.identifier.urihttp://hdl.handle.net/1721.1/100162
dc.descriptionThesis: M. Eng., Massachusetts Institute of Technology, Department of Electrical Engineering and Computer Science, 2015.en_US
dc.descriptionThis electronic version was submitted by the student author. The certified thesis is available in the Institute Archives and Special Collections.en_US
dc.descriptionTitle as it appears in MIT Commencement Exercises program, June 5, 2015: Dependency tracking. Cataloged from student-submitted PDF version of thesis.en_US
dc.descriptionIncludes bibliographical references (pages 49-50).en_US
dc.description.abstractIdentifying the performance bottlenecks of Web pages is often the first step in reducing page load times. Existing models of Web pages (dependency graphs) ignore the dynamic interactions of JavaScript objects along these critical paths. Current dependency graphs solely include the dependencies that arise from a Web object triggering a new HTTP request. This thesis presents DepTracker, a tool that captures dynamically generated dependencies between JavaScript objects on a Web page. These JavaScript dependencies give a more accurate picture of the network and computational resources contributing to the critical path. DepTracker works in conjunction with an HTTP record-and-replay framework, Mahimahi [17], to track reads and writes to the JavaScript global namespace during actual page loads. We classify dependencies into three categories: write-read, read-write, and write-write. Preserving each of these dependencies maintains the consistency of JavaScript execution on Web pages. For each dependency tracked, DepTracker provides developers with relevant line numbers in the source code, variable names, and values that are assigned and read. This information is particularly useful to Web developers seeking to speed up accesses to their websites by reordering individual objects. We use DepTracker, along with Mahimahi, to expose dependencies on 10 popular Web pages. We find that each Web page includes dependencies between JavaScript objects that are not captured by existing dependency graphs. For our corpus of test sites, we find that graphs that include JavaScript dependencies tracked by DepTracker include 32% and 73% more edges than default dependency graphs, at the median and 95th percentile, respectively.en_US
dc.description.statementofresponsibilityby Ameesh Kumar Goyal.en_US
dc.format.extent50 pagesen_US
dc.language.isoengen_US
dc.publisherMassachusetts Institute of Technologyen_US
dc.rightsM.I.T. theses are protected by copyright. They may be viewed from this source for any purpose, but reproduction or distribution in any format is prohibited without written permission. See provided URL for inquiries about permission.en_US
dc.rights.urihttp://dspace.mit.edu/handle/1721.1/7582en_US
dc.subjectElectrical Engineering and Computer Science.en_US
dc.titleDepTracker : tracking JavaScript dependencies on the weben_US
dc.title.alternativeDependency trackingen_US
dc.title.alternativeTracking JavaScript dependencies on the weben_US
dc.typeThesisen_US
dc.description.degreeM. Eng.en_US
dc.contributor.departmentMassachusetts Institute of Technology. Department of Electrical Engineering and Computer Science
dc.identifier.oclc928920895en_US


Files in this item

Thumbnail

This item appears in the following Collection(s)

Show simple item record