mPulse Boomerang Overhead

Document created by Dave Murphy Employee on Jul 20, 2017
Version 1Show Document
  • View in full screen mode

mPulse conserves the limited parallel connections available to a mobile (or any other type of) client and has a far–future header that spreads out its necessary requests over time. Our Boomerang implementation is designed with the smallest possible footprint, whether Boomerang is loaded into a mobile browser or into some other browser type.

The mPulse Team has ensured by design that your client's performance comes first, and that measuring performance is not adversely affected by the measurement tool in use. Whether at the back–end or the mobile client-your client performance is not hindered and Amakai's JavaScript calls will not block your critical client requests.

Your Parallel Connections Are Preserved

The Akamai JavaScript loads from Akamai's CDN domain in parallel with the host page. Limited parallel connections are preserved. The extra overhead added to your host page is minimal, mainly consisting of the 878 bytes of extra JavaScript source downloaded as part of the host page.

In a mobile browser, that limit ranges from 9 parallel connections to 60 parallel connections across hosts. However, since the Boomerang JavaScript has a far–future expires header that is cached for 7 days in clients, parallel requests happen only infrequently. Over 66% of Boomerang requests are served from cache.

Through many cycles of internal testing, Boomerang loading has always completed before the other page resources have completed loaded. The mPulse Boomerang captures the amount of time it takes to load up before it is usable—and its median load time is approximately 150 milliseconds (ms)—measured across millions of requests.

Our iframe Won't Impact Your Host Page

The mPulse Boomerang JavaScript creates an invisible iframe that ensures that the rest of the JavaScript loads up outside the critical path of your page. Latency within the script has no impact on the host page.

Our tests have shown that the iframe does not impact performance, and it is invisible (e.g. it is set to display:none), so does not affect frame rate or repaints. There are no visual elements in our JavaScript, and the DOM nodes added are no different than those Google Analytics adds, for example. Our tests have shown that this offers the best performance possible.

Note: In the event that mPulse servers are not reachable, the host page is not impacted in any way, since the JavaScript lies outside the critical path of any page.

Additional Details

Our data about concurrent connections comes from browserscope.org and is considered across all host names. The JavaScript request for boomerang will go to the c.go-mpulse.net domain, which is different from a customer's host, and the beacon (fired after onload) goes to <something>.mpstat.us.  

mPulse will also never make more than 1 concurrent connection out of Boomerang (combined), and will never make more than 1 connection in total before a page completes loading (there will be at most 2 requests sent sequentially over this single TCP connection since we have our keep-alive set accordingly).

Attachments

    Outcomes