mobile measurements: the mobile app / OS perspective
Why understanding mobile app performance is hard
mobile measurements: the mobile app / OS perspective Why - - PowerPoint PPT Presentation
mobile measurements: the mobile app / OS perspective Why understanding mobile app performance is hard cellular performance matters to some apps most demanding apps multiplayer gaming VoIP video chat somewhat demanding web
Why understanding mobile app performance is hard
26.March.2014 sharad.agarwal@microsoft.com 2
26.March.2014 sharad.agarwal@microsoft.com 3
26.March.2014 sharad.agarwal@microsoft.com 4
26.March.2014 sharad.agarwal@microsoft.com 5
26.March.2014 sharad.agarwal@microsoft.com 6
26.March.2014 sharad.agarwal@microsoft.com 7
26.March.2014 sharad.agarwal@microsoft.com 8
Internet
Mitt Romney
26.March.2014 sharad.agarwal@microsoft.com 9
Internet
“Mitt Romney might vote for Obama as well” “We recommend Mitt Romney for president” “I would definitely trust Mitt Romney with my money.” “If I had a nickel for every time Mitt Romney said something stupid I'd be in his tax bracket”
Mitt Romney
Tweets
26.March.2014 sharad.agarwal@microsoft.com 10
Internet
“Mitt Romney might vote for Obama as well” “We recommend Mitt Romney for president” “I would definitely trust Mitt Romney with my money.” “If I had a nickel for every time Mitt Romney said something stupid I'd be in his tax bracket”
Mitt Romney
Tweets
26.March.2014 sharad.agarwal@microsoft.com 11
Internet
“Mitt Romney might vote for Obama as well” “We recommend Mitt Romney for president” “I would definitely trust Mitt Romney with my money.” “If I had a nickel for every time Mitt Romney said something stupid I'd be in his tax bracket”
Mitt Romney
Tweets
26.March.2014 sharad.agarwal@microsoft.com 12
53%
Mitt Rating Mitt Rating
26.March.2014 sharad.agarwal@microsoft.com 13
ClickHandler() { }
53%
Mitt Rating Mitt Rating
26.March.2014 sharad.agarwal@microsoft.com 14
ClickHandler() { tweets = HttpGet(url); }
53%
Mitt Rating Mitt Rating
26.March.2014 sharad.agarwal@microsoft.com 15
ClickHandler() { tweets = HttpGet(url); rating = ProcessTweets(tweets); } ProcessTweets(tweets) { ... }
53%
Mitt Rating Mitt Rating
26.March.2014 sharad.agarwal@microsoft.com 16
ClickHandler() { tweets = HttpGet(url); rating = ProcessTweets(tweets); display.Text = rating; } ProcessTweets(tweets) { ... }
53%
Mitt Rating Mitt Rating
26.March.2014 sharad.agarwal@microsoft.com 17
ClickHandler() { tweets = HttpGet(url); rating = ProcessTweets(tweets); display.Text = rating; } ProcessTweets(tweets) { ... }
Click Handler Start Click Handler End
Thread
53%
Mitt Rating Mitt Rating
26.March.2014 sharad.agarwal@microsoft.com 18
ClickHandler() { tweets = HttpGet(url); rating = ProcessTweets(tweets); display.Text = rating; } ProcessTweets(tweets) { ... }
Click Handler Start Click Handler End
Thread
User Perceived Delay
53%
Mitt Rating Mitt Rating
26.March.2014 sharad.agarwal@microsoft.com 19
Mitt Rating Mitt Rating
53%
26.March.2014 sharad.agarwal@microsoft.com 20
ClickHandler() { AsyncHttpGet(url, DownloadCallback); } DownloadCallback(tweets) { rating = ProcessTweets(tweets); UIDispatch(DisplayRating, rating); } DisplayRating(rating) { display.Text = rating; } ProcessTweets(tweets) { ... }
Mitt Rating Mitt Rating
53%
26.March.2014 sharad.agarwal@microsoft.com 21
ClickHandler() { AsyncHttpGet(url, DownloadCallback); } DownloadCallback(tweets) { rating = ProcessTweets(tweets); UIDispatch(DisplayRating, rating); } DisplayRating(rating) { display.Text = rating; } ProcessTweets(tweets) { ... }
UI Thread
ClickHandler End ClickHandler Start
Mitt Rating Mitt Rating
53%
User Click
26.March.2014 sharad.agarwal@microsoft.com 22
ClickHandler() { AsyncHttpGet(url, DownloadCallback); } DownloadCallback(tweets) { rating = ProcessTweets(tweets); UIDispatch(DisplayRating, rating); } DisplayRating(rating) { display.Text = rating; } ProcessTweets(tweets) { ... }
UI Thread
ClickHandler End ClickHandler Start
Mitt Rating Mitt Rating
Async Get Call
53%
User Click
26.March.2014 sharad.agarwal@microsoft.com 23
ClickHandler() { AsyncHttpGet(url, DownloadCallback); } DownloadCallback(tweets) { rating = ProcessTweets(tweets); UIDispatch(DisplayRating, rating); } DisplayRating(rating) { display.Text = rating; } ProcessTweets(tweets) { ... }
UI Thread Background Thread
ClickHandler End ClickHandler Start
Mitt Rating Mitt Rating
Async Get Call ProcessTweets Download Callback
53%
User Click
26.March.2014 sharad.agarwal@microsoft.com 24
ClickHandler() { AsyncHttpGet(url, DownloadCallback); } DownloadCallback(tweets) { rating = ProcessTweets(tweets); UIDispatch(DisplayRating, rating); } DisplayRating(rating) { display.Text = rating; } ProcessTweets(tweets) { ... }
UI Thread Background Thread
UI Dispatch ClickHandler End ClickHandler Start
Mitt Rating Mitt Rating
Async Get Call ProcessTweets Download Callback
53%
User Click
26.March.2014 sharad.agarwal@microsoft.com 25
ClickHandler() { AsyncHttpGet(url, DownloadCallback); } DownloadCallback(tweets) { rating = ProcessTweets(tweets); UIDispatch(DisplayRating, rating); } DisplayRating(rating) { display.Text = rating; } ProcessTweets(tweets) { ... }
Display Rating
UI Thread Background Thread
UI Dispatch ClickHandler End ClickHandler Start
Mitt Rating Mitt Rating
Async Get Call ProcessTweets Download Callback
53%
User Click
26.March.2014 sharad.agarwal@microsoft.com 26
30 popular apps 167,000 transactions from user study
26.March.2014 sharad.agarwal@microsoft.com 27
30 popular apps 167,000 transactions from user study
26.March.2014 sharad.agarwal@microsoft.com 28
30 popular apps 167,000 transactions from user study
26.March.2014 sharad.agarwal@microsoft.com 29
Mitt Rating Mitt Rating 26.March.2014 sharad.agarwal@microsoft.com 30
Tweets
Mitt Rating Mitt Rating 26.March.2014 sharad.agarwal@microsoft.com 31
Tweets Posts
Mitt Rating Mitt Rating 26.March.2014 sharad.agarwal@microsoft.com 32
Tweets Posts
Mitt Rating Mitt Rating 26.March.2014 sharad.agarwal@microsoft.com 33
Tweets Posts
Mitt Rating Mitt Rating
47%
26.March.2014 sharad.agarwal@microsoft.com 34
UI Thread Background Thread Background Thread Background Thread
Tweets Posts
Mitt Rating Mitt Rating
47%
26.March.2014 sharad.agarwal@microsoft.com 35
UI Thread Background Thread Background Thread Background Thread
Tweets Posts
Mitt Rating Mitt Rating
47%
User Click
26.March.2014 sharad.agarwal@microsoft.com 36
UI Thread Background Thread Background Thread Background Thread
Twitter Thread Blocked
Tweets Posts
Mitt Rating Mitt Rating
47%
User Click
26.March.2014 sharad.agarwal@microsoft.com 37
UI Thread Background Thread Background Thread Background Thread
Twitter Thread Blocked Fire
Callback
Tweets Posts
Twitter Process Tweets Facebook
Mitt Rating Mitt Rating
47%
User Click
26.March.2014 sharad.agarwal@microsoft.com 38
UI Thread Background Thread Background Thread Background Thread
Twitter Thread Blocked Fire Fire
Callback Callback
Tweets Posts
Twitter Facebook Process Posts Process Tweets Facebook
Mitt Rating Mitt Rating
47%
User Click
26.March.2014 sharad.agarwal@microsoft.com 39
UI Thread Background Thread Background Thread Background Thread
Twitter Thread Wakeup Thread Blocked Fire Fire Display
Callback Callback
Tweets Posts
Twitter Facebook Process Posts Process Tweets Facebook
Mitt Rating Mitt Rating
47%
User Click
26.March.2014 sharad.agarwal@microsoft.com 40
UI Thread Background Thread Background Thread Background Thread
User Click Twitter Thread Wakeup Thread Blocked Fire Fire Callback Callback Twitter Facebook Process Posts Process Tweets Facebook
Display
26.March.2014 sharad.agarwal@microsoft.com 41
UI Thread Background Thread Background Thread Background Thread
User Click Twitter Thread Wakeup Thread Blocked Fire Fire Callback Callback Twitter Facebook Process Posts Process Tweets Facebook
Display
26.March.2014 sharad.agarwal@microsoft.com 42
UI Thread Background Thread Background Thread Background Thread
User Click Twitter Thread Wakeup Thread Blocked Fire Fire Callback Callback Twitter Facebook Process Posts Process Tweets Facebook
Display
26.March.2014 sharad.agarwal@microsoft.com 43
UI Thread Background Thread Background Thread Background Thread
User Click Twitter Thread Wakeup Thread Blocked Fire Fire Callback Callback Twitter Facebook Process Posts Process Tweets Facebook
Optimizing the critical path reduces the user perceived delay
Display
26.March.2014 sharad.agarwal@microsoft.com 44
UI Thread Background Thread Background Thread Background Thread
User Click Twitter Thread Wakeup Thread Blocked Fire Fire Callback Callback Twitter Facebook Process Posts Process Tweets Facebook
Optimizing the critical path reduces the user perceived delay
Display
26.March.2014 sharad.agarwal@microsoft.com 45
26.March.2014 sharad.agarwal@microsoft.com 46
26.March.2014 sharad.agarwal@microsoft.com 47
26.March.2014 sharad.agarwal@microsoft.com 48
26.March.2014 sharad.agarwal@microsoft.com 49
26.March.2014 sharad.agarwal@microsoft.com 50
26.March.2014 sharad.agarwal@microsoft.com 51
26.March.2014 sharad.agarwal@microsoft.com 52