Presentation is loading. Please wait.

Presentation is loading. Please wait.

AppInsight: Mobile App Performance Monitoring In The Wild Lenin Ravindranath, Jitu Padhye, Sharad Agarwal, Ratul Mahajan, Ian Obermiller, Shahin Shayandeh.

Similar presentations


Presentation on theme: "AppInsight: Mobile App Performance Monitoring In The Wild Lenin Ravindranath, Jitu Padhye, Sharad Agarwal, Ratul Mahajan, Ian Obermiller, Shahin Shayandeh."— Presentation transcript:

1 AppInsight: Mobile App Performance Monitoring In The Wild Lenin Ravindranath, Jitu Padhye, Sharad Agarwal, Ratul Mahajan, Ian Obermiller, Shahin Shayandeh UI Thread Background Thread User Click Twitter Thread WakeupThread Blocked Fire Callback Twitter Facebook Process Posts Process Tweets Facebook Display Optimizing the critical path reduces the user perceived delay App Instrumenter App Instrumented App Store Downloads Analysis Developer Feedback Developer Feedback Server Traces Developer “… Too slow - killing the usefulness when you really need to go.” But its slow There’s an App for that Compute Network Memory Binary Size Battery <1% 1.2% 2% 4% 0.02%  Diverse environmental conditions - Network Connectivity, GPS Signal quality  Variety of hardware and OS versions  Wide range of user interactions Hard to emulate in the lab In the wild monitoring important Performance problems are inevitable in the wild What is the user-perceived delay? Where is the bottleneck? Significant barrier for most app developers Little platform support Only option is to instrument your app – Manage your own logging infrastructure Options today  Automatic App Instrumentation - Zero Developer Effort - Binary Instrumentation  Readily Deployable - No changes to the OS or runtime  Low overhead AppInsight App Instrumentation is Challenging  Highly Asynchronous Programming Pattern  Instrumentation impacts app performance - They are already slow enough!!!  Limited Resources - Network, Battery, Memory ClickHandler() { AsyncHttpGet(url, DownloadCallback); } DownloadCallback(tweets) { rating = ProcessTweets(tweets); UIDispatch(DisplayRating, rating); } DisplayRating(rating) { display.Text = rating; } User Transaction User Manipulation UI update UI Thread Background Thread Download Callback Process UI Dispatch Download Delay Async Get Call UI Event Handler End UI Event Handler Start User Perceived Delay Critical Path Asynchronous Code Capture  UI Manipulation  Thread Execution  Async Calls and Callbacks  UI Updates  Thread Synchronization Overhead DetourCallback(response) { DownloadCallback(response); } class DetourObject { } MatchId = 3 obj.DetourCallback MatchId = 3 obj = new DetourObject(GetCallback, MatchId++); System App AsyncHttpGet Async Call DownloadCallback(response) { } AsyncHttpGet(url, obj.DetourCallback); Detour Callbacks UI Thread Background Thread Exception at parseXML() DownloadCallback() Stack trace parseXML() … DownloadCallback() AsyncHttpGet(url) ThreadCallback() ClickHandler() ThreadStart() User Manipulation Exception Path  Outliers - Point to corner cases  Highlight common critical paths - Focus development effort  Root causes of Performance Variability - Highlight what really matters in the wild Aggregate Analysis Developer Feedback Case Studies App ProblemBefore AppInsight Action/Notes My app Slow Transaction Unknown - Serial Network Transfers in the Critical Path - Now parallelized with faster response times Popular App Slow Transactions Known but no data Aggregate analysis showed 3G latencies significantly affecting critical paths Quantitative data to back up their decision for caching Business App Slow Transactions Unknown Custom instrumentation in critical path Reason why AppInsight is needed! Crash Known Less Info - Exception path information included http call with URL - Replayed transaction with the same URL - Fixed a bug My app UI hog Unknown - Aggregate analysis showed compute variability - Abnormal latencies only at the start of a session - System loading DLL in the critical path - Fixed by force loading DLLs at the start My app Wasted Computation Unknown Frequently interrupted transaction did not terminate - Wasting compute - Problem fixed My app


Download ppt "AppInsight: Mobile App Performance Monitoring In The Wild Lenin Ravindranath, Jitu Padhye, Sharad Agarwal, Ratul Mahajan, Ian Obermiller, Shahin Shayandeh."

Similar presentations


Ads by Google