Procrastinator: Pacing Mobile Apps’ Usage of the Network mobisys 2014.

Slides:



Advertisements
Similar presentations
Using T4Eclipse tool to Analyze Eclipse UI For t4eclipse version Ben Xu July 17,2010.
Advertisements

Mobile Agents Mouse House Creative Technologies Mike OBrien.
Student Getting Started Guide *Updated December 2011 to include information on Integrated Digital Book/MindTap Reader.
EFRONT V4 EXTENSIONS ARCHITECTURE. The goal  To offer more flexibility to 3 rd party users to modify eFront functionality  To further extend eFront.
Piccolo: Building fast distributed programs with partitioned tables Russell Power Jinyang Li New York University.
Relaxed Consistency Models. Outline Lazy Release Consistency TreadMarks DSM system.
Pipeline Computer Organization II 1 Hazards Situations that prevent starting the next instruction in the next cycle Structural hazards – A required resource.
SEO Best Practices with Web Content Management Brent Arrington, Services Developer, Hannon Hill Morgan Griffith, Marketing Director, Hannon Hill 2009 Cascade.
Distributed File System: Design Comparisons II Pei Cao Cisco Systems, Inc.
Run-time Environment and Program Organization
1 of 5 This document is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS DOCUMENT. © 2007 Microsoft Corporation.
Does Ajax suck? CS575 Spring 2007 Chanwit Suebsureekul.
Data Forms in Hyperion Planning. Data Forms are used by the business users and planners to enter, update and analyze the data. Actually, data forms.
Chapter 1 Getting Started With Dreamweaver. Explore the Dreamweaver Workspace The Dreamweaver workspace is where you can find all the tools to create.
Create a Web Site with Frames
Group 5 Alain J. Percial Paula A. Ortiz Francis X. Ruiz.
XP Tutorial 5New Perspectives on HTML, XHTML, and DHTML, Comprehensive 1 Designing a Web Site with Frames Using Frames to Display Multiple Web Pages Tutorial.
SET-UP PROCEDURE Below is an outline for deploying new clients. We have an admin for each account. This admin delivers data to the app and allows the account.
Chien-Chung Shen Manifest and Activity Chien-Chung Shen
Lab Assignment 7 | Web Forms and Manipulating Strings Interactive Features Added In this assignment you will continue the design and implementation of.
Gulfstream Salvatore Guarnieri University of Washington Ben Livshits Microsoft Research Staged Static Analysis for Streaming JavaScript Applications.
JavaScript & jQuery the missing manual Chapter 11
2015 Webmaster Training. 1.Site Navigation RWD Structure Sharing content areas 2.Dynamic Content Updates News/Blog Containers Calendars – Priority, Standard.
XP Using Frames in a Web Site Ali Alfayly. XP Tutorial Objectives Create frames for a Web site Control the appearance and placement of frames Control.
Smart Data OnLine Training
Plan Design Analyze Develop Test Implement Maintain Systems Development Life Cycle MCC Designs Meghan Perea Carrie Ver Burg Cory Schroeder.
1 State Records Center Entering New Inventory  Versatile web address:  Look for any new ‘Special Updates’ each.
In addition to Word, Excel, PowerPoint, and Access, Microsoft Office® 2013 includes additional applications, including Outlook, OneNote, and Office Web.
Design Patterns Phil Smith 28 th November Design Patterns There are many ways to produce content via Servlets and JSPs Understanding the good, the.
Networking: Part 2 (Accessing the Internet). The UI Thread When an application is launched, the system creates a “main” UI thread responsible for handling.
Marcel Casado NCAR/RAP WEATHER WARNING TOOL NCAR.
Introduction With TimeCard users can tag SharePoint events with information that converts them into time sheets. This way they can report.
Informed Mobile Prefetching T.J. Giuli † Christopher Peplin † David Watson †‡ Brett Higgins Jason Flinn Brian Noble †‡
Copyright © 2013, SAS Institute Inc. All rights reserved. MEMORY CACHE – PERFORMANCE CONSIDERATIONS CLAIRE CATES DISTINGUISHED DEVELOPER
CSCE 201 Web Browser Security Fall CSCE Farkas2 Web Evolution Web Evolution Past: Human usage – HTTP – Static Web pages (HTML) Current: Human.
AjaxScope & Doloto: Towards Optimizing Client-side Web 2.0 App Performance Ben Livshits Microsoft Research (joint work with Emre.
Week 11 Creating Framed Layouts Objectives Understand the benefits and drawbacks of frames Understand and use frame syntax Customize frame characteristics.
WEB ACCESSIBILITY. WHAT IS IT? Web accessibility means that people with disabilities can use the Web. Web accessibility encompasses all disabilities that.
Embedded Software SKKU 14 1 Sungkyunkwan University Tizen v2.3 Application Profiling & Debugging.
So – You want to learn how to put an article onto the state website. (Note: If you have not done so, you will need to review the web training provided.
Chapter 8 HTML Frames. 2 Principles of Web Design Chapter 8 Objectives Understand the benefits and drawbacks of frames Understand and use frames syntax.
Christopher Kruegel University of California Engin Kirda Institute Eurecom Clemens Kolbitsch Thorsten Holz Secure Systems Lab Vienna University of Technology.
How to Run a Scenario In HP LoadRunner >>>>>>>>>>>>>>>>>>>>>>
AppInsight: Mobile App Performance Monitoring In The Wild Lenin Ravindranath, Jitu Padhye, Sharad Agarwal, Ratul Mahajan, Ian Obermiller, Shahin Shayandeh.
Implementing Subprograms What actions must take place when subprograms are called and when they terminate? –calling a subprogram has several associated.
Graphical Enablement In this presentation… –What is graphical enablement? –Introduction to newlook dialogs and tools used to graphical enable System i.
End-to-End Performance Analytics For Mobile Apps Lenin Ravindranath, Jitu Padhye, Ratul Mahajan Microsoft Research 1.
ARMS Advanced Risk Management System User Documentation.
Assessments. Assessment Tool Assessment Tool bridges the gap between Formative Assessment and Study Center with full Classroom Integration Auto grading.
HW#9 Clues CSCI 571 Fall, HW#9 Prototype
Web Technologies Lecture 7 Synchronous vs. asynchronous.
Mobile web vs apps compared. Pro's of mobile web Accessible through any browser Doesn't require app download Load page by page Good for SEO Will have.
Acknowledgement: These slides are adapted from slides provided in Thißen & Spaniol's course Distributed Systems and Middleware, RWTH Aachen Processes Distributed.
Web Browsing *TAKE NOTES*. Millions of people browse the Web every day for research, shopping, job duties and entertainment. Installing a web browser.
So – You want to learn how to put an article onto the state website. (Note: If you have not done so, you will need to review the web training provided.
Internet Explorer 10 IE9 hardware-accelerated platform CSS 2D Transforms CSS Backgrounds & Borders CSS Color CSS Fonts CSS Media Queries CSS Namespaces.
Understanding JavaScript and Coding Essentials Lesson 8.
Java Programming: Advanced Topics 1 Building Web Applications Chapter 13.
Announcements There is a Quiz today. There were problems with grading assignment 2, but they should be worked out today The web page for correcting the.
LOAD RUNNER. Product Training Load Runner 3 Examples of LoadRunner Performance Monitors Internet/Intranet Database server App servers Web servers Clients.
Safety and health at work is everyone’s concern. It’s good for you. It’s good for business. Improvement of OiRA Presentation of the new features to the.
Agenda Steps of App Building The Runtime Environment Managing App Data Debug and Test an App Validate an App Publish an App to a Store Packaging Apps.
The Ingredients of Android Applications. A simple application in a process In a classical programming environment, the OS would load the program code.
FASTER WEB PERFORMANCE USING VIRTUALIZATION IN THE BROWSER BY MEHRDAD RESHADI.
Google Maps API v3: Built First for Mobile Susannah Raub Google June 24, 2010.
Continuous Testing in Eclipse
UI-Performance Optimization by Identifying its Bottlenecks
Activities and Intents
Affordable iPhone Mobile Apps Development Services Company
APIs and Synchronization
Presentation transcript:

Procrastinator: Pacing Mobile Apps’ Usage of the Network mobisys 2014

Outline Motivation Design and Implementation Evaluation Overhead

Motivation App developers rely heavily on prefetching network content at the launch of an app to hide the network latency of cellular communication.

Motivation For some users, they don’t visit off-screen content. This waste harm three sets of users – 1. users that are always conscious about data because they are on a pay-per-byte plan. – 2.users that start their monthly cellular billing cycle with a large number of bytes, but eventually run low and want the remaining bytes to last them through the end of their cycle. – 3.users that have large data plans at home but are temporarily roaming.

How to save data? 1. It should automatically identify asynchronous network calls that are candidates for procrastination 2. decide whether to procrastinate each candidate call, and when to execute a previously procrastinated call. present Procrastinator – Instrumenter – Procrastinator Runtime

How to prefetch network content? Three programming patterns – Pattern 1: the app developer assigns an image to an image element that is not visible on screen. example: news reader app only top 3 or 4 is visible. – Pattern 2: additional processing is required before displaying the fetched data. The UI elements may not be visible. – Pattern 3: the assignment to the UI element is delayed even further. For example, weather app. At launch, the app fetches data about hurricane warnings, which it stores in a global variable. The data is used only if the user navigates to a specific tab or a “page”.

Design and Implementation

How to look for prefetching patterns? Pattern 1 – the instrumenter looks for any HTTP fetch API calls that are set to a UI element’s source.

How to look for prefetching patterns? Pattern 2 – the developer passes a callback function to the network call. The network call asynchronously fetches data and invoke the callback with the data. The UI elements are then accessed and updated in the callback. static analysis: – find the callback method associated with the call – generate a conservative call graph that is rooted in the callback method. – analyze code in the conservative call graph to discover all UI elements being update – analyze code in the call graph to ensure it has no side effect.

How to look for prefetching patterns? Pattern 3 – two passes of static analysis – In the first pass analyze network callbacks to identify global variables used in store operations.(similar to Pattern 2) – In the second pass analyze the rest of the app code to identify code where the same global variables are accessed in load operations.

Procrastinator Runtime Procrastinator Runtime behavior for pattern 1,2

Procrastinator Runtime Procrastinator Runtime behavior for pattern 3

Define necessary – If we cannot deduce whether the content of web objects is used in the screen, we conservatively assume them to be “necessary” – If a web object is not necessary, then it is either “skipped” or “prefetched” skipped – If Procrastinator correctly deduces that a network is not necessary and doesn’t download it. prefetched – If Procrastinator allows an object to be downloaded that is not necessary. (delayed)

Evaluation Results

Overhead