---
description: https://dl.acm.org/doi/10.1145/3458864.3466866
---

# Marauder: Synergized Caching and Prefetching for Low-Risk Mobile App Acceleration

* Apps dominate mobile usage and are projected to continue doing so&#x20;
* App responsiveness is well-studied&#x20;
  * Are apps meeting expectations?&#x20;
* Measuring app performance&#x20;
  * 50 apps across categories (Humanoid)&#x20;
  * Origin servers
  * Record screen and compute IRT (Interaction Response Time)&#x20;
  * Real phones, live networks, live origin servers and realistic interaction traces&#x20;
* App performance today&#x20;
  * 2.9s median on LTE: too slow for users today!
  * Why isn't it better?&#x20;
    * Which is bigger contributor to delay? network or compute?&#x20;
      * Network causes 64% of the delay on LTE&#x20;
      * Improving network performance&#x20;
        * Caching
          * Store previously fetched content to speedup subsequent fetches&#x20;
          * Developer specified TTLs&#x20;
          * Understanding Caching&#x20;
            * 28% of resources in median interaction from cache --> 44% IRT improvement over no-cache&#x20;
            * 2x resources unchanged in cache --> 58% IRT improvement over no-cache&#x20;
          * Cache TTLs are hard to set?
            * Can caching be used optimally?
            * Developers need to set TTLs such that it precisely expires when content changes&#x20;
              * Ideal TTLs for a given resource vary significantly&#x20;
              * High TTL --> good cache performance --> stale content&#x20;
              * Low TTL --> fresh content --> poor cache performance&#x20;
        * Prefetching&#x20;
          * Load content ahead-of-time by predicting users' needs&#x20;
          * Understanding prefetching&#x20;
            * 4 apps use prefetching&#x20;
              * Load content in background periodically&#x20;
              * Avoid network fetches during interaction&#x20;
              * Speedups above 60%, however, up to 4x extra data usage. Difficult to predict user interactions.&#x20;
      * Goal: extract benefits while minimizing drawbacks&#x20;
      * Marauder
        * Not rely on developers&#x20;
        * Work with existing apps and servers&#x20;
      * Insights&#x20;
        * Text files are important&#x20;
        * Text files catalog resources --> prefetching opportunities&#x20;
        * Small size of important text files --> refresh in the background&#x20;
        * Inefficient TTLs --> low cost TTL extensions&#x20;
        * Stability of referenced resources --> prefetching even with uncacheable text files&#x20;
      * ![](https://2097630930-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MVORxAomcgtzVVUqmws%2Fuploads%2FfKg2lJ14f9ahGSjA03Fs%2Fimage.png?alt=media\&token=d2cbf6b1-22be-47ef-841b-3c2b48065bd0)
      * Evaluation&#x20;
        * Speeds up interactions by 27.4%
        * 1.18x median data usage, JIT prefetching is the larger contributor&#x20;
      * ![](https://2097630930-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MVORxAomcgtzVVUqmws%2Fuploads%2F7KeWNidHVLAj9qjwj4I7%2Fimage.png?alt=media\&token=c3767b54-024d-4139-8ad7-ae7f53f5033c)
