1 / 17

Procrastinator: Pacing Mobile Apps’ Usage of the Network

Procrastinator: Pacing Mobile Apps’ Usage of the Network. mobisys 2014. Outline. Motivation Design and Implementation Evaluation Overhead. Motivation.

stacia
Download Presentation

Procrastinator: Pacing Mobile Apps’ Usage of the Network

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Outline • Motivation • Design and Implementation • Evaluation • Overhead

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

  4. 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.

  5. 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

  6. 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”.

  7. Design and Implementation

  8. 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.

  9. How to look for prefetchingpatterns? • 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.

  10. How to look for prefetchingpatterns? • 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.

  11. Procrastinator Runtime • Procrastinator Runtime behavior for pattern 1,2

  12. Procrastinator Runtime • Procrastinator Runtime behavior for pattern 3

  13. 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)

  14. Evaluation Results

  15. Overhead

More Related