Doloto: Code Splitting for AJAX Applications

Slides:



Advertisements
Similar presentations
Hotmails Performance Tuning Best Practices Aladdin A. Nassar Hotmails Performance Champion Microsoft.
Advertisements

Performance Challenges for the Open Web Stanford CS193H 29 September 2008.
Testing Web Applications. Applications Architecture Client Server Architecture.
SDN + Storage.
Data Marshaling for Multi-Core Architectures M. Aater Suleman Onur Mutlu Jose A. Joao Khubaib Yale N. Patt.
 Emre Kıcıman Researcher Microsoft Corporation  Ethan Jackson Post Doc Researcher Microsoft Corporation.
Task Scheduling and Distribution System Saeed Mahameed, Hani Ayoub Electrical Engineering Department, Technion – Israel Institute of Technology
S ECURING WEB 2.0 APPLICATIONS THROUGH REPLICATED EXECUTION Ben Livshits Microsoft Research K. Vikram Cornell University Abhishek Prateek IIT Delhi.
Ben Livshits and Emre Kiciman Microsoft Research Redmond, WA.
A UTOMATICALLY SECURING WEB 2.0 APPLICATIONS THROUGH REPLICATED EXECUTION K. Vikram, Abhishek Prateek, Ben Livshits.
Chapter 11 ASP.NET JavaScript, Third Edition. 2 Objectives Learn about client/server architecture Study server-side scripting Create ASP.NET applications.
7/15/2015ROC/OceanStore Winter Retreat Introspective Replica Management in OceanStore Dennis Geels.
Putting the Network to Work
JSZap: Compressing JavaScript Code Martin Burtscher, UT Austin Ben Livshits & Ben Zorn, Microsoft Research Gaurav Sinha, IIT Kanpur.
Client/Server Architectures
 Energy Results: Memory Assistant Arcade Game  Performance Results:  Response Time ▪ Memory assistant: 17.3 sec -> 1.5 sec ▪ Arcade game: 6 FPS -> 13.
For more notes and topics visit:
6/1/2001 Supplementing Aleph Reports Using The Crystal Reports Web Component Server Presented by Bob Gerrity Head.
Gulfstream Salvatore Guarnieri University of Washington Ben Livshits Microsoft Research Staged Static Analysis for Streaming JavaScript Applications.
11/13/2007 A synchronous J avaScript A nd X ML Gloria Law Joshua Mahaz.
Overview of Previous Lesson(s) Over View  ASP.NET Pages  Modular in nature and divided into the core sections  Page directives  Code Section  Page.
Ajax Technology for the Web Nic Shulver, FCET, Staffordshire University Introduction What is it? Pros and Cons Why is it important? Traditional Client-Server.
COMP 410 & Sky.NET May 2 nd, What is COMP 410? Forming an independent company The customer The planning Learning teamwork.
Writing various AJAX forms in Drupal 7 1. Overview of Form API 2. Ctools 2.1 Ctools features 3. Ajax 3.1 Ajax Forms in Drupal 4. Putting it all together.
JavaScript is a client-side scripting language. Programs run in the web browser on the client's computer. (PHP, in contrast, is a server-side scripting.
HTML+JavaScript M2M Applications Viewbiquity Public hybrid cloud platform for automating and visualizing everything.
06/10/2015AJAX 1. 2 Introduction All material from AJAX – what is it? Traditional web pages and operation Examples of AJAX use Creating.
Mobile Consumer Experience: designing for fast response time OSCON 2013 David Elfi Intel.
Ideas to Improve SharePoint Usage 4. What are these 4 Ideas? 1. 7 Steps to check SharePoint Health 2. Avoid common Deployment Mistakes 3. Analyze SharePoint.
1 Approaches for Asynchronous Communication in Web Applications Stefan Potthast and Mike Rowe.
JavaScript – Quiz #9 Lecture Code:
Orbited Scaling Bi-directional web applications A presentation by Michael Carter
Assorted Topics Introduction AJAX What is it? Why is it important? Examples of live applications Cloud Computing What is it? Why.
Procrastinator: Pacing Mobile Apps’ Usage of the Network mobisys 2014.
AjaxScope & Doloto: Towards Optimizing Client-side Web 2.0 App Performance Ben Livshits Microsoft Research (joint work with Emre.
Case Study ProsperaSoft’s global sourcing model gives the maximum benefit to customers in terms of cost savings, improved quality, access to highly talented.
ICINETIC Experts in.NET technologies and architectures.
HTML5 AND THE FUTURE JAVASCRIPT PLATFORM Marcelo Lopez Ruiz Senior Software Design Engineer Microsoft Corporation.
DynaRIA: a Tool for Ajax Web Application Comprehension Dipartimento di Informatica e Sistemistica University of Naples “Federico II”, Italy Domenico Amalfitano.
WHIM Presentation Topic : Comet and Jetty 6 Yu Song April
PERFORMANCE ENHANCEMENT IN ASP.NET By Hassan Tariq Session #1.
The Module Road Map Assignment 1 Road Map We will look at… Internet / World Wide Web Aspects of their operation The role of clients and servers ASPX.
the acronym for Asynchronous JavaScript and XML.
Ajax for Dynamic Web Development Gregory McChesney.
 AJAX – Asynchronous JavaScript and XML  Ajax is used to develop fast dynamic web applications  Allows web pages to be updated asynchronously by transferring.
What is AJAX ? Asynchronous Javascript and XML. Not a stand-alone language or technology. It is a technique that combines a set of known technologies in.
A UTOMATICALLY SECURING WEB 2.0 APPLICATIONS THROUGH REPLICATED EXECUTION Ben Livshits Microsoft Research.
WHAT'S THE DIFFERENCE BETWEEN A WEB APPLICATION STREAMING NETWORK AND A CDN? INSTART LOGIC.
Msdevcon.ru#msdevcon. ИЗ ПЕРВЫХ РУК: КАК СДЕЛАТЬ ВАШ КОД БЫСТРЫМ ПРОФАЙЛИНГ КЛИЕНТСКИХ И СЕРВЕРНЫХ ПРИЛОЖЕНИЙ В VISUAL STUDIO 2012 MAXIM GOLDIN Senior.
MICROSOFT AJAX CDN (CONTENT DELIVERY NETWORK) Make Your ASP.NET site faster to retrieve.
Introduction to Node.js® Jitendra Kumar Patel Saturday, January 31, 2015.
Enhance Your Page Load Speed And Improve Traffic.
BRANDING YOURSELF FINAL DRAFT.
Node.js Modules Header Mastering Node.js, Part 2 Eric W. Greene
Google Web Toolkit Tutorial
Viewbiquity HTML5 Tom Shafron Developer’s Blog CEO, Viewbiquity
Doloto: Code Splitting for Web 2.0 Applications
AJAX.
CSE 154 Lecture 22: AJAX.
jQuery The Easy JavaScript Nikolay Chochev Technical Trainer
Doloto: Code Splitting for Web 2.0 Applications
Rich single page applications with SharePoint
Building Serverless Enterprise Applications
COMPONENTS – WHY? Object-oriented source-level re-use of code requires same source code language. Object-oriented source-level re-use may require understanding.
DR. JOHN ABRAHAM PROFESSOR UTPA
Introduction.
Azure Container Service
Running C# in the browser
Yale Digital Conference 2019
Presentation transcript:

Doloto: Code Splitting for AJAX Applications Ben Livshits and Emre Kiciman Microsoft Research Redmond, WA

A Web 2.0 Application Disected 1+ MB code Talks to 14 backend services (traffic, images, directions, ads, …) 70,000+ lines of JavaScript code downloaded 2,855 Functions Update the map

AJAX Apps Have Lots of Code Up to 90% of a Web 2.0 app is JavaScript code!

Why AJAX? Client-side JavaScript code Catch-22 Reduces latency and improves user experience Avoids constant network round trips Catch-22 Takes a while to transfer code to the client Code can be MBs in size Application execution is blocked until code arrives

Motivation for Doloto Idea behind Doloto Start with a small piece of code on the client Download required code on demand (pull) Send code when bandwidth available (push) Leads to better application responsiveness Interleave code download & execution Faster startup times Rarely executed code is rarely downloaded

Doloto Training Tool [training] Runtime training to collect access profile (AjaxView Fiddler plugin) [rewriting] Function rewriting or “stubbing” for on-demand code loading [prefetch] Background prefetch of clusters as the application is running

Automated Function Splitting var g = 10; function f1(){ var x=g+1; … return …; } var g = 10; var real_f1; function f1() { if(!real_f1){ var code = load(“f1”); real_f1 = eval(code); f1 = real_f1; } return real_f1.apply(this, arguments); [training] Runtime training to collect access profiles [rewriting] Function rewriting or “stubbing” for on-demand code loading [prefetch] Background prefetch of clusters as the application is running eval($exp(“f1”), “”); // 21 chars

Architecture of Doloto [training] Runtime training to collect access profiles [rewriting] Function rewriting or “stubbing” for on-demand code loading [prefetch] Background prefetch of clusters as the application is running

Size Savings with Doloto

Runtime Savings with Doloto

Contact us Ben Livshits (livshits@microsoft.com) Doloto MSR _