SlideShare a Scribd company logo
1 of 97
Download to read offline
Taming the
Mobile Beast
Patrick Meenan   Matt Welsh
@patmeenan       @mdwelsh




                                http://www.flickr.com/photos/nao-cha/2660459899/
Google, Inc.     Google, Inc.
Mobile is huge!




2.25B Global Internet Users

    1.1B Mobile Users




                              Source: UN/ITU internetworldstats.com
For many, a mobile device is the
                                                        only way to access the Internet
                                                                            Mobile-Only
                                                             Country       Internet Users
                                                              Egypt             70%

                                                               India            59%

                                                           South Africa         57%

                                                            Indonesia           44%

                                                           United States        25%


                                                                               Source: OnDevice Research
http://www.flickr.com/photos/43560604@N03/6845754798/
... and growing with respect to desktop
Desktop Web Performance Optimization
Mobile Web Performance Optimization
What we'll cover today:
 Getting a handle on mobile web performance

 How to collect measurements on mobile devices

 Deep dive into mobile web performance issues and common gotchas

 Using Chrome for Android's remote debugger

 Mobile bookmarklets and other tools
Measurement Tools
Mobitest - www.blaze.io/mobile/
WebPageTest - www.webpagetest.org




 Web Page Test now
supports Android and
        iOS!
Waterfall Basics
Waterfall Components
Waterfalls as seen by HARViewer




              DNS TCP       Waiting       Receiving
              Lookup Connect for response response
Studying Mobile Waterfalls
Visualizing a mobile website load (brown.edu)




                                                75 seconds!
brown.edu's mobile home page

124 KB, 1800x800
background image
 that is completely
          obscured
The web was not designed for mobile
 Huge disparity between modern web design and mobile devices...

  ●   Increasingly rich content
  ●   Highly dynamic pages
  ●   Large amount of JavaScript to manipulate the page, perform asynchronous
      work, fetch new content
  ●   3D acceleration, animations, complex graphics

 ... all sent using a crufty, somewhat broken protocol (HTTP)

 The web is not just
  <b>plain</b> <i>old</i> <blink>HTML</blink>
 anymore - it is a complete application platform.
Here Be Dragons

● Making a mobile connection: Radio Resource Control

● Browser connection limits

● HTTP Pipelining

● Caching: Browsers vs. embedded HTTP libraries

● Carrier network proxying

● JavaScript execution time differences
Making a Mobile Connection
Typical Mobile Network Performance
   Country         Average RTT   Average Downlink   Average Uplink Throughput
                                 Throughput

   South Korea     278 ms        1.8 Mbps           723 Kbps

   Vietnam         305 ms        1.9 Mbps           543 Kbps

   US              344 ms        1.6 Mbps           658 Kbps

   UK              372 ms        1.4 Mbps           782 Kbps

   Russia          518 ms        1.1 Mbps           439 Kbps

   India           654 ms        1.2 Mbps           633 Kbps

   Nigeria         892 ms        541 Kbps           298 Kbps




      Compare to typical desktop and WiFi performance:
        < 50 ms RTT, 5 Mbps throughput in the US

                                                           Source: Ookla/Speedtest.net
Typical Mobile Network Performance
   Country        Average RTT   Average Downlink   Average Uplink Throughput
                                Throughput

   South Korea    278 ms        1.8 Mbps           723 Kbps

   Vietnam        305 ms        1.9 Mbps           543 Kbps

   US             344 ms        1.6 Mbps           658 Kbps

   UK             372 ms        1.4 Mbps           782 Kbps

   Russia         518 ms        1.1 Mbps           439 Kbps

   India          654 ms        1.2 Mbps           633 Kbps

   Nigeria        892 ms        541 Kbps           298 Kbps




      Things are changing fast!
           LTE promises < 100 ms RTT, 50+ Mbps downlink

                                                          Source: Ookla/Speedtest.net
Bandwidth Impact

         3G




                       LTE




                   20 Top sites measured in October, 2011
Latency Impact



                                     3G




                  LTE




          DSL/
                        Dial   20 Top sites measured in October, 2011
          Cable
Making a Radio Connection

Before a cellular device can transmit or receive data, it has to
establish a radio channel with the network.

                 This can take several seconds!

Also, if no data is transmitted or received after a timeout,
the channel goes idle, requiring a new channel to be established.

This behavior can wreak havoc on web page load times.
Probing the Radio State Machine

Try this sometime:
Build a webpage that loads a small (1KB) image at increasing
intervals. Watch how long it takes to load.
Probing the Radio State Machine

Try this sometime:
Build a webpage that loads a small (1KB) image at increasing
intervals. Watch how long it takes to load.

Here's what it looks like on WiFi:
                                           Every image loads in
                                           ~120 ms
The same thing on T-Mobile:


                              1 sec delay



                                  2 sec delay



                                                      3 sec delay



                                                                    4 sec delay



                                                5 sec delay
The same thing on T-Mobile:

                              Between 2 and 3 sec,
                              huge increase in load time
Example 3G Radio Resource Control State Machine
  No radio
  connection                       Idle for 12 sec

                                                      CELL_
                IDLE
                                                      FACH
                                      Buffer size >
                                      threshold                            Shared
                                                                           radio channel
      Transmit data
      Delay: 1-2 sec
                                                          Idle for 5 sec
                                       CELL_
                                        DCH
                                                      The exact delays and idle timeouts depend on the
                                                      carrier, which equipment they have installed, and
                              Dedicated               how it is configured.
                              radio channel
                                                      This depends on the network, not the device.
Run your own test now! http://goo.gl/F5sKV
                                                      Data from: http://www.eecs.umich.edu/~fengqian/paper/aro_mobisys11.pdf
Browser Connection Limits
Browser Connection Limits

The number of parallel connections varies tremendously across
mobile browsers.
brown.edu on Android 2.3.5 Gingerbread:




                                          Total of 4 parallel
                                          connections
Browser Connection Limits

The number of parallel connections varies tremendously across
mobile browsers.
brown.edu on Android 4.0.4 Ice Cream Sandwich:




                                        Looks like 6
                                        connections per
                                        domain
Browser Connection Limits

The number of parallel connections varies tremendously across
mobile browsers.
brown.edu on iOS 5:




                          Looks like a lot of
                          parallelism
Browser Connection Limits

The number of parallel connections varies tremendously across
mobile browsers.
brown.edu on Chrome for Android:




                                         Also 6 connections
                                         per domain
Browser Connection Limits - Summary

         Browser                  Connections Per Domain   Total Connections

         Android pre-Honeycomb    4                        4

         Android post-Honeycomb   6                        256

         iOS 4                    4                        30

         iOS 5                    6                        52

         Chrome for Android       6                        256




Caveats: It takes a lot of experimentation and probing to get some
of these numbers. iOS results, in particular, should be taken with a
grain of salt.
Are more connections always better?

Parallel TCP connections are typically used for two purposes:
  1) Saturate the network
  2) Avoid head-of-line blocking

On 3G, more connections are not always a good idea:
  - Each connection pays the cost of the TCP handshake
     (200+ ms on typical 3G links)
  - Parallel connections can adversely compete for the channel
HTTP Pipelining
HTTP Pipelining
  Been in the spec since HTTP/1.1, but largely ignored by desktop browser vendors

  Originally thought it would break the Internet
Android 2.3.4 (Gingerbread)




Android Browser has been using pipelining for a long time!
                                                             Several requests with
Mobile Safari on iOS 5 is using it now, too.                 identical start times,
                                                             staggered completion times
Android ICS and Chrome do not use pipelining, however.
Carrier Network Proxies
Carrier network proxies
Most large carriers do transparent web proxying

Simple page with a 1MB JavaScript file, loaded over WiFi:




                                     976KB, as expected
Carrier network proxies
Most large carriers do transparent web proxying

Simple page with a 1MB JavaScript file, loaded over WiFi:




                                     976KB, as expected

The same page, loaded on T-Mobile UMTS:



                              7.6KB !?!?!?!!
                                                       T-Mobile's proxy
                                                       uses gzip!
JavaScript Execution Time
JavaScript Execution Time

JavaScript is typically a lot slower on mobile devices.
       SunSpider benchmark results:
Dual Core Mac Pro:                    266.1 ms

Galaxy Nexus (stock browser): 1899 ms
Galaxy Nexus (Chrome):        1574 ms

iPhone 3GS (iOS 5):                 4737 ms
iPhone 4S (iOS 5):                  2200 ms
iPad 2 (iOS 5):                     2097 ms
Browser Caching Behavior
Not all caches are created equal

Mobile browsers have small caches:

Android 2.3:        8 MB
iOS 5:              100 MB, but not persistent!
Android Chrome:     250 MB

Compare to typical size of 512 MB or more for desktop browsers.
Browsers != Embedded HTTP Libraries

Common embedded HTTP libraries often have broken cache
behavior!
java.net.URLConnection
java.net.HttpURLConnection
org.apache.http.client.HttpClient
   None of these do any caching at all.

android.webkit.WebView
   Does caching, but does not support redirection.

NSURLRequest - iOS5
   Does caching, but total cache size is 1 MB for small objects, 40 MB for large
   objects, no caching for objects > 2MB.
      Web Caching on Smartphones: Ideal vs. Reality by Feng Qian, Kee Shen Quah, Junxian Huang, Jeffrey Erman, Alexandre Gerber, Z. Morley Mao, Subhabrata
      Sen, and Oliver Spatscheck, Proceedings of ACM Mobisys 2012.
Summary

Mobile networks have high round-trip-times: hundreds of ms.

Mobile connections can take several seconds to get established.

HTTP pipelining: Coming to iOS, going away in Android.

Beware carrier network proxies.

JavaScript: Ain't so fast.

Not all mobile caches are created equal.
Roadmap
 Getting a handle on mobile web performance

 How to collect measurements on mobile devices

 Deep dive into mobile web performance issues and common gotchas

 Using Chrome for Android's remote debugger

 Mobile bookmarklets and other tools
Remote Debugging
Chrome on Android
Remote Debugging Chrome on Android

Chrome on Android has full support for Chrome Developer Tools
                                        Desktop Chrome




                    USB tethering
Getting Started

1) Fire up Chrome on your device

2) Settings > Developer Tools > Enable USB Web debugging
Getting Started

3) On desktop, run:

   adb forward tcp:9222 localabstract:chrome_devtools_remote


4) On desktop, visit:

   http://localhost:9222
Getting Started
5) Pick the tab you want to debug:
Getting Started
6) You'll initially see a blank window:
Getting Started
7) Hit reload on the phone to get a timeline:
So what can you do with this?
Anything you can do with Chrome Dev Tools on desktop!

 ●   Network events timeline

 ●   Inspect and manipulate the DOM

 ●   Profile CPU and memory usage

 ●   Performance audit
Network events timeline

Each resource is
   one line



                                                        Timeline




                   Size, type, time




                                      DOMContent
                                                   onload event
                                        event
Exploring a single request / response




                                         Request Headers




                              Response
                               headers
Exploring the DOM




 Mouse over a
 DOM element


                      Element is
                    highlighted on
                       device!
CPU and memory profiling
CPU and memory profiling




                           CPU profile of each
                              JS function
CPU and memory profiling



                           Timeline of page
                            memory usage




                           Timeline of page
                               events




                            Size of DOM,
                           #event listeners
Summary
Chrome for Android gives you tremendous visibility and control
through its remote debugging interface.

Inspect and control the DOM, get timeline information, CPU and
memory profiling, and more.

iOS6 is introducing Remote Debugging for Mobile Safari!
  http://bit.ly/L1zXTX
  Very similar interface and functionality.
Mobile Bookmarklets
Meta Bookmarklet




               http://stevesouders.com/mobileperf/mobileperfbkm.php
Firebug Lite




               http://getfirebug.com/firebuglite#Stable
YSlow Mobile




               http://yslow.org/mobile/
Page Resources




                 http://stevesouders.com/mobileperf/pageresources.php
Jdrop




        http://jdrop.org
Page Resources - Jdrop
DOMMonster




             http://mir.aculo.us/dom-monster/
Docsource




            http://stevesouders.com/mobileperf/docsource.php
cssess




         https://github.com/driverdan/cssess
Snoopy




         http://snoopy.allmarkedup.com/
SpriteMe




           http://spriteme.org/
Navigation timing bookmarklets




       https://github.com/Yottaa/NavigationTimingBookmarklet
       http://code.google.com/p/navlet/
       https://github.com/kaaes/timing
webkit Resource Timing




                    Watch this space:
      https://bugs.webkit.org/show_bug.cgi?id=61138
Other Tools
PageSpeed Insights




               https://developers.google.com/speed/pagespeed/insights
PCAP Web Performance Analyzer

                                     Web




            tcpdump/packet capture




                                http://pcapperf.appspot.com/
icy




      http://calendar.perfplanet.com/2011/i-see-http/
iWebInspector




                http://www.iwebinspector.com/
winre




        http://people.apache.org/~pmuellr/weinre/docs/latest/
User Agent Switcher Extensions




            https://chrome.google.com/webstore/detail/djflhoibgkdhkhhcedjiklpkjnoahfmg
WebPagetest User-Agent Spoofing
setUserAgent ...
setViewportSize <width> <height>
navigate www.cnn.com




                      https://sites.google.com/a/webpagetest.org/docs/using-webpagetest/scripting#TOC-setUserAgent
Monitoring
Measuring mobile web behavior is hard!
 Most mobile browsers have no instrumentation interface.

 But, things are improving:
    Chrome for Android and Mobile Safari in iOS6 have a rich debug interface
    (more later!)

 Web Page Test and Blaze.io mobile agents use clever tricks:
   - Use embedded WebView components, not real browsers
   - On Android: run tcpdump to capture network packets
   - On iOS: Instrument pages using JavaScript

 Caveat:
   - Not all events available on iOS (e.g., no DNS lookup or TCP connect times)
Know WHAT and HOW you are measuring
Know thy Browser
● Real Device
  ○ Native Browser
  ○ App with embedded UIWebView
● Simulator
● Changed User-Agent String in Desktop Browser


Groketh thy Connectivity
● Carrier Network
  ○ Which Carrier
  ○ Carrier Rewriting Proxies
● WiFi
  ○ Connected to....?
Latency Impact
Real-User Measurement




                        dvcs.w3.org/hg/webperf/raw-file/tip/specs/NavigationTiming/Overview.html
Google Analytics
Takeaways

Decide what and how you want to measure


Mobile performance deeply impacted by network and browser architecture


Mobile measurement tools have their limits, but are maturing rapidly


This stuff is hard, but it's an exciting time to be alive!
Google Booth - Talks

Tuesday, June 26 - Morning Break
       10:15 – 10:30 : Site Speed Reports in Google Analytics: Measuring your website’s performance
    Afternoon Break
         3:10 – 3:25 : Measuring user perceived latency with Google Analytics Site Speed reports:
                         hands-on demo and insights
         3:30 – 3:45 : Async Scripts and why you care, particularly for third-party content

Wednesday, June 27th - Morning Break
        10:00 – 10:15 : PageSpeed Automatic Optimizations
        10:15 – 10:30 : PageSpeed Insights for Chrome with mobile support – Demo
   Afternoon Break
        3:10pm – 3:25pm : Measuring Web Performance
        3:30pm – 3:45pm : HTTP Streaming – discuss the true latency bottleneck with
                             bi-directional HTTP streaming and “full-duplex HTTP”
Google Booth - Office Hours

Tuesday, June 25 - Morning Break
    10:30 - 10:30 : Q&A: Mobile Web Measurement with Matt and Pat

Tuesday, June 26 - Afternoon Break
    3:10 – 3:50 : Q&A: Your Chrome Wishlist, Suggestions and Questions

Wednesday, June 27 - Morning Break
   10:00 – 10:30 : Q&A: Performance monitoring with Google Analytics
Thank You!


PatMeenan@gmail.com   @PatMeenan
mdw@mdw.la            @mdwelsh

More Related Content

What's hot

Mot cph when its just too slow
Mot cph when its just too slowMot cph when its just too slow
Mot cph when its just too slowDoug Sillars
 
Mobile Web Best Practices
Mobile Web Best PracticesMobile Web Best Practices
Mobile Web Best PracticesJames D Bloom
 
Edi ux fastandbeautiful
Edi ux fastandbeautifulEdi ux fastandbeautiful
Edi ux fastandbeautifulDoug Sillars
 
Jon Arne Sæterås - Give Responsive Design a mobile performance boost
Jon Arne Sæterås - Give Responsive Design a mobile performance boost Jon Arne Sæterås - Give Responsive Design a mobile performance boost
Jon Arne Sæterås - Give Responsive Design a mobile performance boost DevConFu
 
Responsive Images and Performance
Responsive Images and PerformanceResponsive Images and Performance
Responsive Images and PerformanceMaximiliano Firtman
 
Performance as UX with Justin Howlett
Performance as UX with Justin HowlettPerformance as UX with Justin Howlett
Performance as UX with Justin HowlettFITC
 
Why Load Testing from the Cloud Doesn't Work
Why Load Testing from the Cloud Doesn't WorkWhy Load Testing from the Cloud Doesn't Work
Why Load Testing from the Cloud Doesn't WorkCompuware APM
 
High Performance Web - Full Stack Toronto
High Performance Web - Full Stack TorontoHigh Performance Web - Full Stack Toronto
High Performance Web - Full Stack TorontoMaximiliano Firtman
 
The Physical World meets the Web
The Physical World meets the WebThe Physical World meets the Web
The Physical World meets the WebMaximiliano Firtman
 
Qa fest kiev_when its just too slow
Qa fest kiev_when its just too slowQa fest kiev_when its just too slow
Qa fest kiev_when its just too slowDoug Sillars
 
Belgrade when its just too slow
Belgrade when its just too slowBelgrade when its just too slow
Belgrade when its just too slowDoug Sillars
 
Its timetostopstalling pentabar
Its timetostopstalling pentabarIts timetostopstalling pentabar
Its timetostopstalling pentabarDoug Sillars
 
Extreme Web Performance for Mobile Devices
Extreme Web Performance for Mobile Devices Extreme Web Performance for Mobile Devices
Extreme Web Performance for Mobile Devices Maximiliano Firtman
 
Extreme Web Performance for Mobile Device Fluent 2015
Extreme Web Performance for Mobile Device Fluent 2015Extreme Web Performance for Mobile Device Fluent 2015
Extreme Web Performance for Mobile Device Fluent 2015Maximiliano Firtman
 
Happy Browser, Happy User! NY Web Performance Meetup 9/20/19
Happy Browser, Happy User! NY Web Performance Meetup 9/20/19Happy Browser, Happy User! NY Web Performance Meetup 9/20/19
Happy Browser, Happy User! NY Web Performance Meetup 9/20/19Katie Sylor-Miller
 
Extreme Web Performance for Mobile Devices - Velocity Barcelona 2014
Extreme Web Performance for Mobile Devices - Velocity Barcelona 2014Extreme Web Performance for Mobile Devices - Velocity Barcelona 2014
Extreme Web Performance for Mobile Devices - Velocity Barcelona 2014Maximiliano Firtman
 
Apache httpd 2.4 overview
Apache httpd 2.4 overviewApache httpd 2.4 overview
Apache httpd 2.4 overviewJim Jagielski
 
Android Network Performance
Android Network PerformanceAndroid Network Performance
Android Network PerformanceDoug Sillars
 

What's hot (20)

Mot cph when its just too slow
Mot cph when its just too slowMot cph when its just too slow
Mot cph when its just too slow
 
Mobile Web Best Practices
Mobile Web Best PracticesMobile Web Best Practices
Mobile Web Best Practices
 
Edi ux fastandbeautiful
Edi ux fastandbeautifulEdi ux fastandbeautiful
Edi ux fastandbeautiful
 
Jon Arne Sæterås - Give Responsive Design a mobile performance boost
Jon Arne Sæterås - Give Responsive Design a mobile performance boost Jon Arne Sæterås - Give Responsive Design a mobile performance boost
Jon Arne Sæterås - Give Responsive Design a mobile performance boost
 
Responsive Images and Performance
Responsive Images and PerformanceResponsive Images and Performance
Responsive Images and Performance
 
Performance as UX with Justin Howlett
Performance as UX with Justin HowlettPerformance as UX with Justin Howlett
Performance as UX with Justin Howlett
 
Why Load Testing from the Cloud Doesn't Work
Why Load Testing from the Cloud Doesn't WorkWhy Load Testing from the Cloud Doesn't Work
Why Load Testing from the Cloud Doesn't Work
 
Gadgets gizmos and apps
Gadgets gizmos and appsGadgets gizmos and apps
Gadgets gizmos and apps
 
High Performance Web - Full Stack Toronto
High Performance Web - Full Stack TorontoHigh Performance Web - Full Stack Toronto
High Performance Web - Full Stack Toronto
 
The Physical World meets the Web
The Physical World meets the WebThe Physical World meets the Web
The Physical World meets the Web
 
Qa fest kiev_when its just too slow
Qa fest kiev_when its just too slowQa fest kiev_when its just too slow
Qa fest kiev_when its just too slow
 
Belgrade when its just too slow
Belgrade when its just too slowBelgrade when its just too slow
Belgrade when its just too slow
 
Its timetostopstalling pentabar
Its timetostopstalling pentabarIts timetostopstalling pentabar
Its timetostopstalling pentabar
 
Extreme Web Performance for Mobile Devices
Extreme Web Performance for Mobile Devices Extreme Web Performance for Mobile Devices
Extreme Web Performance for Mobile Devices
 
Extreme Web Performance for Mobile Device Fluent 2015
Extreme Web Performance for Mobile Device Fluent 2015Extreme Web Performance for Mobile Device Fluent 2015
Extreme Web Performance for Mobile Device Fluent 2015
 
Happy Browser, Happy User! NY Web Performance Meetup 9/20/19
Happy Browser, Happy User! NY Web Performance Meetup 9/20/19Happy Browser, Happy User! NY Web Performance Meetup 9/20/19
Happy Browser, Happy User! NY Web Performance Meetup 9/20/19
 
Tech Essentials Best Project Dec 2008
Tech Essentials   Best Project   Dec 2008Tech Essentials   Best Project   Dec 2008
Tech Essentials Best Project Dec 2008
 
Extreme Web Performance for Mobile Devices - Velocity Barcelona 2014
Extreme Web Performance for Mobile Devices - Velocity Barcelona 2014Extreme Web Performance for Mobile Devices - Velocity Barcelona 2014
Extreme Web Performance for Mobile Devices - Velocity Barcelona 2014
 
Apache httpd 2.4 overview
Apache httpd 2.4 overviewApache httpd 2.4 overview
Apache httpd 2.4 overview
 
Android Network Performance
Android Network PerformanceAndroid Network Performance
Android Network Performance
 

Viewers also liked

RIW2016 - UX RESEARCH НА РАЗЛИЧНЫХ ЭТАПАХ РАЗРАБОТКИ DIGITAL-ПРОДУКТОВ
RIW2016 - UX RESEARCH НА РАЗЛИЧНЫХ ЭТАПАХ РАЗРАБОТКИ DIGITAL-ПРОДУКТОВRIW2016 - UX RESEARCH НА РАЗЛИЧНЫХ ЭТАПАХ РАЗРАБОТКИ DIGITAL-ПРОДУКТОВ
RIW2016 - UX RESEARCH НА РАЗЛИЧНЫХ ЭТАПАХ РАЗРАБОТКИ DIGITAL-ПРОДУКТОВKsenia Sternina
 
HUGE and Digital Strategy
HUGE and Digital StrategyHUGE and Digital Strategy
HUGE and Digital StrategyLeanne Tremblay
 
Huge Inc Intro to UX/UI lecture at Campus London
Huge Inc Intro to UX/UI lecture at Campus LondonHuge Inc Intro to UX/UI lecture at Campus London
Huge Inc Intro to UX/UI lecture at Campus Londonnikkiguna
 
Mobile forms - 10 DOs and DONTs
Mobile forms - 10 DOs and DONTsMobile forms - 10 DOs and DONTs
Mobile forms - 10 DOs and DONTsTomer Rosenthal
 
The web you were used to is gone. Architecture and strategy for your content.
The web you were used to is gone. Architecture and strategy for your content.The web you were used to is gone. Architecture and strategy for your content.
The web you were used to is gone. Architecture and strategy for your content.Alberta Soranzo
 
Spéciale Paiement La French Mobile Juin 2012
Spéciale Paiement La French Mobile Juin 2012Spéciale Paiement La French Mobile Juin 2012
Spéciale Paiement La French Mobile Juin 2012servicesmobiles.fr
 
[refreshaustin] Adaptive Images in Responsive Web Design
[refreshaustin] Adaptive Images in Responsive Web Design[refreshaustin] Adaptive Images in Responsive Web Design
[refreshaustin] Adaptive Images in Responsive Web DesignChristopher Schmitt
 
Awesome android apps
Awesome android appsAwesome android apps
Awesome android appsRichard Byrne
 
Mobile is not mobile - 7 phénomènes disruptifs* à prévoir dans l’entreprise
Mobile is not mobile - 7 phénomènes disruptifs* à prévoir dans l’entrepriseMobile is not mobile - 7 phénomènes disruptifs* à prévoir dans l’entreprise
Mobile is not mobile - 7 phénomènes disruptifs* à prévoir dans l’entrepriseservicesmobiles.fr
 
Baromètre mobile marketing association France mai 2013
Baromètre mobile marketing association France mai 2013Baromètre mobile marketing association France mai 2013
Baromètre mobile marketing association France mai 2013Thierry Pires
 
Mobile Marketing Attitude 2013 - SNCD
Mobile Marketing Attitude 2013 - SNCDMobile Marketing Attitude 2013 - SNCD
Mobile Marketing Attitude 2013 - SNCDRomain Fonnier
 
Content marketing world_mobile and tablet content distribution_8_17_2012
Content marketing world_mobile and tablet content distribution_8_17_2012Content marketing world_mobile and tablet content distribution_8_17_2012
Content marketing world_mobile and tablet content distribution_8_17_2012interlinkONE
 
Prototyping for responsive web design
Prototyping for responsive web design Prototyping for responsive web design
Prototyping for responsive web design mrscammels
 
Mobile Marketing for Nonprofits with Mobile Apps
Mobile Marketing for Nonprofits with Mobile AppsMobile Marketing for Nonprofits with Mobile Apps
Mobile Marketing for Nonprofits with Mobile AppsSweb Development
 
What's So Special About Mobile?
What's So Special About Mobile?What's So Special About Mobile?
What's So Special About Mobile?Sara Quinn
 
Unlock the Magic: How to set up and use your new ipad
Unlock the Magic: How to set up and use your new ipadUnlock the Magic: How to set up and use your new ipad
Unlock the Magic: How to set up and use your new ipadGina Schreck
 
Mobile Marketing Association - Mobile et tablettes 2nd écran de la TV
Mobile Marketing Association - Mobile et tablettes 2nd écran de la TVMobile Marketing Association - Mobile et tablettes 2nd écran de la TV
Mobile Marketing Association - Mobile et tablettes 2nd écran de la TVPascal Dasseux
 
On your mark, get set, mobile
On your mark, get set, mobileOn your mark, get set, mobile
On your mark, get set, mobileTiffany Beker
 

Viewers also liked (20)

RIW2016 - UX RESEARCH НА РАЗЛИЧНЫХ ЭТАПАХ РАЗРАБОТКИ DIGITAL-ПРОДУКТОВ
RIW2016 - UX RESEARCH НА РАЗЛИЧНЫХ ЭТАПАХ РАЗРАБОТКИ DIGITAL-ПРОДУКТОВRIW2016 - UX RESEARCH НА РАЗЛИЧНЫХ ЭТАПАХ РАЗРАБОТКИ DIGITAL-ПРОДУКТОВ
RIW2016 - UX RESEARCH НА РАЗЛИЧНЫХ ЭТАПАХ РАЗРАБОТКИ DIGITAL-ПРОДУКТОВ
 
Huge Inc.
Huge Inc.Huge Inc.
Huge Inc.
 
HUGE and Digital Strategy
HUGE and Digital StrategyHUGE and Digital Strategy
HUGE and Digital Strategy
 
Huge Inc Intro to UX/UI lecture at Campus London
Huge Inc Intro to UX/UI lecture at Campus LondonHuge Inc Intro to UX/UI lecture at Campus London
Huge Inc Intro to UX/UI lecture at Campus London
 
Mobile forms - 10 DOs and DONTs
Mobile forms - 10 DOs and DONTsMobile forms - 10 DOs and DONTs
Mobile forms - 10 DOs and DONTs
 
The web you were used to is gone. Architecture and strategy for your content.
The web you were used to is gone. Architecture and strategy for your content.The web you were used to is gone. Architecture and strategy for your content.
The web you were used to is gone. Architecture and strategy for your content.
 
Spéciale Paiement La French Mobile Juin 2012
Spéciale Paiement La French Mobile Juin 2012Spéciale Paiement La French Mobile Juin 2012
Spéciale Paiement La French Mobile Juin 2012
 
[refreshaustin] Adaptive Images in Responsive Web Design
[refreshaustin] Adaptive Images in Responsive Web Design[refreshaustin] Adaptive Images in Responsive Web Design
[refreshaustin] Adaptive Images in Responsive Web Design
 
Metro + Metro Like
Metro + Metro LikeMetro + Metro Like
Metro + Metro Like
 
Awesome android apps
Awesome android appsAwesome android apps
Awesome android apps
 
Mobile is not mobile - 7 phénomènes disruptifs* à prévoir dans l’entreprise
Mobile is not mobile - 7 phénomènes disruptifs* à prévoir dans l’entrepriseMobile is not mobile - 7 phénomènes disruptifs* à prévoir dans l’entreprise
Mobile is not mobile - 7 phénomènes disruptifs* à prévoir dans l’entreprise
 
Baromètre mobile marketing association France mai 2013
Baromètre mobile marketing association France mai 2013Baromètre mobile marketing association France mai 2013
Baromètre mobile marketing association France mai 2013
 
Mobile Marketing Attitude 2013 - SNCD
Mobile Marketing Attitude 2013 - SNCDMobile Marketing Attitude 2013 - SNCD
Mobile Marketing Attitude 2013 - SNCD
 
Content marketing world_mobile and tablet content distribution_8_17_2012
Content marketing world_mobile and tablet content distribution_8_17_2012Content marketing world_mobile and tablet content distribution_8_17_2012
Content marketing world_mobile and tablet content distribution_8_17_2012
 
Prototyping for responsive web design
Prototyping for responsive web design Prototyping for responsive web design
Prototyping for responsive web design
 
Mobile Marketing for Nonprofits with Mobile Apps
Mobile Marketing for Nonprofits with Mobile AppsMobile Marketing for Nonprofits with Mobile Apps
Mobile Marketing for Nonprofits with Mobile Apps
 
What's So Special About Mobile?
What's So Special About Mobile?What's So Special About Mobile?
What's So Special About Mobile?
 
Unlock the Magic: How to set up and use your new ipad
Unlock the Magic: How to set up and use your new ipadUnlock the Magic: How to set up and use your new ipad
Unlock the Magic: How to set up and use your new ipad
 
Mobile Marketing Association - Mobile et tablettes 2nd écran de la TV
Mobile Marketing Association - Mobile et tablettes 2nd écran de la TVMobile Marketing Association - Mobile et tablettes 2nd écran de la TV
Mobile Marketing Association - Mobile et tablettes 2nd écran de la TV
 
On your mark, get set, mobile
On your mark, get set, mobileOn your mark, get set, mobile
On your mark, get set, mobile
 

Similar to Velocity 2012 - Taming the Mobile Beast

Mobile Network Performance Testing
Mobile Network Performance TestingMobile Network Performance Testing
Mobile Network Performance TestingXBOSoft
 
Current Trends in Networking (Assignment)
Current Trends in Networking (Assignment)Current Trends in Networking (Assignment)
Current Trends in Networking (Assignment)Gochi Ugo
 
Equinix webinar (cotendo) final dec 8
Equinix webinar (cotendo) final dec 8Equinix webinar (cotendo) final dec 8
Equinix webinar (cotendo) final dec 8gyanendra1
 
Doug Sillars on App Optimization
Doug Sillars on App OptimizationDoug Sillars on App Optimization
Doug Sillars on App Optimizationwipjam
 
What is 5G Technology.pptx
What is 5G Technology.pptxWhat is 5G Technology.pptx
What is 5G Technology.pptxashish1236
 
SW2-homework10
SW2-homework10SW2-homework10
SW2-homework10RyoObata
 
5g Cellular Wireless Network.pptx
5g Cellular Wireless Network.pptx5g Cellular Wireless Network.pptx
5g Cellular Wireless Network.pptxVivekRajawat9
 
How to Lower Android Power Consumption Without Affecting Performance
How to Lower Android Power Consumption Without Affecting PerformanceHow to Lower Android Power Consumption Without Affecting Performance
How to Lower Android Power Consumption Without Affecting Performancerickschwar
 
5G Technology.pptx
5G Technology.pptx5G Technology.pptx
5G Technology.pptxMoizzarar1
 
5G wireless technology ppt
5G wireless technology ppt5G wireless technology ppt
5G wireless technology pptHanamanta N B
 
Michael Zirngibl's Presentation at Emerging Communication Conference & Awards...
Michael Zirngibl's Presentation at Emerging Communication Conference & Awards...Michael Zirngibl's Presentation at Emerging Communication Conference & Awards...
Michael Zirngibl's Presentation at Emerging Communication Conference & Awards...eCommConf
 
State Of Mobile Web Performance
State Of Mobile Web PerformanceState Of Mobile Web Performance
State Of Mobile Web PerformanceGuy Podjarny
 
new emerging technologies - 5g technology
new emerging technologies - 5g technologynew emerging technologies - 5g technology
new emerging technologies - 5g technologyAtharvaSolanki2
 
5g-201008044825.pptx
5g-201008044825.pptx5g-201008044825.pptx
5g-201008044825.pptximau6
 
Can a browser become an IoT Gateway?
Can a browser become an IoT Gateway?Can a browser become an IoT Gateway?
Can a browser become an IoT Gateway?Sooraj Sanker
 

Similar to Velocity 2012 - Taming the Mobile Beast (20)

Sw2-hw10
Sw2-hw10Sw2-hw10
Sw2-hw10
 
Mobile Network Performance Testing
Mobile Network Performance TestingMobile Network Performance Testing
Mobile Network Performance Testing
 
Current Trends in Networking (Assignment)
Current Trends in Networking (Assignment)Current Trends in Networking (Assignment)
Current Trends in Networking (Assignment)
 
Equinix webinar (cotendo) final dec 8
Equinix webinar (cotendo) final dec 8Equinix webinar (cotendo) final dec 8
Equinix webinar (cotendo) final dec 8
 
Doug Sillars on App Optimization
Doug Sillars on App OptimizationDoug Sillars on App Optimization
Doug Sillars on App Optimization
 
What is 5G Technology.pptx
What is 5G Technology.pptxWhat is 5G Technology.pptx
What is 5G Technology.pptx
 
3g and 4g
3g and 4g3g and 4g
3g and 4g
 
SW2-homework10
SW2-homework10SW2-homework10
SW2-homework10
 
5g Cellular Wireless Network.pptx
5g Cellular Wireless Network.pptx5g Cellular Wireless Network.pptx
5g Cellular Wireless Network.pptx
 
Network
NetworkNetwork
Network
 
How to Lower Android Power Consumption Without Affecting Performance
How to Lower Android Power Consumption Without Affecting PerformanceHow to Lower Android Power Consumption Without Affecting Performance
How to Lower Android Power Consumption Without Affecting Performance
 
network problem.pptx
network problem.pptxnetwork problem.pptx
network problem.pptx
 
E-commerce
E-commerceE-commerce
E-commerce
 
5G Technology.pptx
5G Technology.pptx5G Technology.pptx
5G Technology.pptx
 
5G wireless technology ppt
5G wireless technology ppt5G wireless technology ppt
5G wireless technology ppt
 
Michael Zirngibl's Presentation at Emerging Communication Conference & Awards...
Michael Zirngibl's Presentation at Emerging Communication Conference & Awards...Michael Zirngibl's Presentation at Emerging Communication Conference & Awards...
Michael Zirngibl's Presentation at Emerging Communication Conference & Awards...
 
State Of Mobile Web Performance
State Of Mobile Web PerformanceState Of Mobile Web Performance
State Of Mobile Web Performance
 
new emerging technologies - 5g technology
new emerging technologies - 5g technologynew emerging technologies - 5g technology
new emerging technologies - 5g technology
 
5g-201008044825.pptx
5g-201008044825.pptx5g-201008044825.pptx
5g-201008044825.pptx
 
Can a browser become an IoT Gateway?
Can a browser become an IoT Gateway?Can a browser become an IoT Gateway?
Can a browser become an IoT Gateway?
 

More from Patrick Meenan

Resource Prioritization
Resource PrioritizationResource Prioritization
Resource PrioritizationPatrick Meenan
 
Getting the most out of WebPageTest
Getting the most out of WebPageTestGetting the most out of WebPageTest
Getting the most out of WebPageTestPatrick Meenan
 
Resource loading, prioritization, HTTP/2 - oh my!
Resource loading, prioritization, HTTP/2 - oh my!Resource loading, prioritization, HTTP/2 - oh my!
Resource loading, prioritization, HTTP/2 - oh my!Patrick Meenan
 
Scaling Front-End Performance - Velocity 2016
Scaling Front-End Performance - Velocity 2016Scaling Front-End Performance - Velocity 2016
Scaling Front-End Performance - Velocity 2016Patrick Meenan
 
Machine Learning RUM - Velocity 2016
Machine Learning RUM - Velocity 2016Machine Learning RUM - Velocity 2016
Machine Learning RUM - Velocity 2016Patrick Meenan
 
TLS - 2016 Velocity Training
TLS - 2016 Velocity TrainingTLS - 2016 Velocity Training
TLS - 2016 Velocity TrainingPatrick Meenan
 
Service workers - Velocity 2016 Training
Service workers - Velocity 2016 TrainingService workers - Velocity 2016 Training
Service workers - Velocity 2016 TrainingPatrick Meenan
 
Front-End Single Point of Failure - Velocity 2016 Training
Front-End Single Point of Failure - Velocity 2016 TrainingFront-End Single Point of Failure - Velocity 2016 Training
Front-End Single Point of Failure - Velocity 2016 TrainingPatrick Meenan
 
Measuring performance - Velocity 2016 Training
Measuring performance - Velocity 2016 TrainingMeasuring performance - Velocity 2016 Training
Measuring performance - Velocity 2016 TrainingPatrick Meenan
 
Service Workers for Performance
Service Workers for PerformanceService Workers for Performance
Service Workers for PerformancePatrick Meenan
 
Velocity 2014 nyc WebPagetest private instances
Velocity 2014 nyc   WebPagetest private instancesVelocity 2014 nyc   WebPagetest private instances
Velocity 2014 nyc WebPagetest private instancesPatrick Meenan
 
WebPagetest Power Users - Velocity 2014
WebPagetest Power Users - Velocity 2014WebPagetest Power Users - Velocity 2014
WebPagetest Power Users - Velocity 2014Patrick Meenan
 
Mobile web performance - MoDev East
Mobile web performance - MoDev EastMobile web performance - MoDev East
Mobile web performance - MoDev EastPatrick Meenan
 
Tracking Performance - Velocity NYC 2013
Tracking Performance - Velocity NYC 2013Tracking Performance - Velocity NYC 2013
Tracking Performance - Velocity NYC 2013Patrick Meenan
 
Measuring the visual experience of website performance
Measuring the visual experience of website performanceMeasuring the visual experience of website performance
Measuring the visual experience of website performancePatrick Meenan
 
Velocity EU 2012 - Third party scripts and you
Velocity EU 2012 - Third party scripts and youVelocity EU 2012 - Third party scripts and you
Velocity EU 2012 - Third party scripts and youPatrick Meenan
 

More from Patrick Meenan (20)

Resource Prioritization
Resource PrioritizationResource Prioritization
Resource Prioritization
 
HTTP/2 Prioritization
HTTP/2 PrioritizationHTTP/2 Prioritization
HTTP/2 Prioritization
 
Getting the most out of WebPageTest
Getting the most out of WebPageTestGetting the most out of WebPageTest
Getting the most out of WebPageTest
 
Http2 in practice
Http2 in practiceHttp2 in practice
Http2 in practice
 
Resource loading, prioritization, HTTP/2 - oh my!
Resource loading, prioritization, HTTP/2 - oh my!Resource loading, prioritization, HTTP/2 - oh my!
Resource loading, prioritization, HTTP/2 - oh my!
 
How fast is it?
How fast is it?How fast is it?
How fast is it?
 
Scaling Front-End Performance - Velocity 2016
Scaling Front-End Performance - Velocity 2016Scaling Front-End Performance - Velocity 2016
Scaling Front-End Performance - Velocity 2016
 
Machine Learning RUM - Velocity 2016
Machine Learning RUM - Velocity 2016Machine Learning RUM - Velocity 2016
Machine Learning RUM - Velocity 2016
 
TLS - 2016 Velocity Training
TLS - 2016 Velocity TrainingTLS - 2016 Velocity Training
TLS - 2016 Velocity Training
 
Service workers - Velocity 2016 Training
Service workers - Velocity 2016 TrainingService workers - Velocity 2016 Training
Service workers - Velocity 2016 Training
 
Front-End Single Point of Failure - Velocity 2016 Training
Front-End Single Point of Failure - Velocity 2016 TrainingFront-End Single Point of Failure - Velocity 2016 Training
Front-End Single Point of Failure - Velocity 2016 Training
 
Measuring performance - Velocity 2016 Training
Measuring performance - Velocity 2016 TrainingMeasuring performance - Velocity 2016 Training
Measuring performance - Velocity 2016 Training
 
Service Workers for Performance
Service Workers for PerformanceService Workers for Performance
Service Workers for Performance
 
Velocity 2014 nyc WebPagetest private instances
Velocity 2014 nyc   WebPagetest private instancesVelocity 2014 nyc   WebPagetest private instances
Velocity 2014 nyc WebPagetest private instances
 
WebPagetest Power Users - Velocity 2014
WebPagetest Power Users - Velocity 2014WebPagetest Power Users - Velocity 2014
WebPagetest Power Users - Velocity 2014
 
Mobile web performance - MoDev East
Mobile web performance - MoDev EastMobile web performance - MoDev East
Mobile web performance - MoDev East
 
Tracking Performance - Velocity NYC 2013
Tracking Performance - Velocity NYC 2013Tracking Performance - Velocity NYC 2013
Tracking Performance - Velocity NYC 2013
 
Image optimization
Image optimizationImage optimization
Image optimization
 
Measuring the visual experience of website performance
Measuring the visual experience of website performanceMeasuring the visual experience of website performance
Measuring the visual experience of website performance
 
Velocity EU 2012 - Third party scripts and you
Velocity EU 2012 - Third party scripts and youVelocity EU 2012 - Third party scripts and you
Velocity EU 2012 - Third party scripts and you
 

Recently uploaded

Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 

Recently uploaded (20)

Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 

Velocity 2012 - Taming the Mobile Beast

  • 1. Taming the Mobile Beast Patrick Meenan Matt Welsh @patmeenan @mdwelsh http://www.flickr.com/photos/nao-cha/2660459899/ Google, Inc. Google, Inc.
  • 2. Mobile is huge! 2.25B Global Internet Users 1.1B Mobile Users Source: UN/ITU internetworldstats.com
  • 3. For many, a mobile device is the only way to access the Internet Mobile-Only Country Internet Users Egypt 70% India 59% South Africa 57% Indonesia 44% United States 25% Source: OnDevice Research http://www.flickr.com/photos/43560604@N03/6845754798/
  • 4. ... and growing with respect to desktop
  • 5. Desktop Web Performance Optimization
  • 6. Mobile Web Performance Optimization
  • 7. What we'll cover today: Getting a handle on mobile web performance How to collect measurements on mobile devices Deep dive into mobile web performance issues and common gotchas Using Chrome for Android's remote debugger Mobile bookmarklets and other tools
  • 10. WebPageTest - www.webpagetest.org Web Page Test now supports Android and iOS!
  • 13. Waterfalls as seen by HARViewer DNS TCP Waiting Receiving Lookup Connect for response response
  • 15. Visualizing a mobile website load (brown.edu) 75 seconds!
  • 16. brown.edu's mobile home page 124 KB, 1800x800 background image that is completely obscured
  • 17.
  • 18.
  • 19. The web was not designed for mobile Huge disparity between modern web design and mobile devices... ● Increasingly rich content ● Highly dynamic pages ● Large amount of JavaScript to manipulate the page, perform asynchronous work, fetch new content ● 3D acceleration, animations, complex graphics ... all sent using a crufty, somewhat broken protocol (HTTP) The web is not just <b>plain</b> <i>old</i> <blink>HTML</blink> anymore - it is a complete application platform.
  • 20. Here Be Dragons ● Making a mobile connection: Radio Resource Control ● Browser connection limits ● HTTP Pipelining ● Caching: Browsers vs. embedded HTTP libraries ● Carrier network proxying ● JavaScript execution time differences
  • 21. Making a Mobile Connection
  • 22. Typical Mobile Network Performance Country Average RTT Average Downlink Average Uplink Throughput Throughput South Korea 278 ms 1.8 Mbps 723 Kbps Vietnam 305 ms 1.9 Mbps 543 Kbps US 344 ms 1.6 Mbps 658 Kbps UK 372 ms 1.4 Mbps 782 Kbps Russia 518 ms 1.1 Mbps 439 Kbps India 654 ms 1.2 Mbps 633 Kbps Nigeria 892 ms 541 Kbps 298 Kbps Compare to typical desktop and WiFi performance: < 50 ms RTT, 5 Mbps throughput in the US Source: Ookla/Speedtest.net
  • 23. Typical Mobile Network Performance Country Average RTT Average Downlink Average Uplink Throughput Throughput South Korea 278 ms 1.8 Mbps 723 Kbps Vietnam 305 ms 1.9 Mbps 543 Kbps US 344 ms 1.6 Mbps 658 Kbps UK 372 ms 1.4 Mbps 782 Kbps Russia 518 ms 1.1 Mbps 439 Kbps India 654 ms 1.2 Mbps 633 Kbps Nigeria 892 ms 541 Kbps 298 Kbps Things are changing fast! LTE promises < 100 ms RTT, 50+ Mbps downlink Source: Ookla/Speedtest.net
  • 24. Bandwidth Impact 3G LTE 20 Top sites measured in October, 2011
  • 25. Latency Impact 3G LTE DSL/ Dial 20 Top sites measured in October, 2011 Cable
  • 26. Making a Radio Connection Before a cellular device can transmit or receive data, it has to establish a radio channel with the network. This can take several seconds! Also, if no data is transmitted or received after a timeout, the channel goes idle, requiring a new channel to be established. This behavior can wreak havoc on web page load times.
  • 27. Probing the Radio State Machine Try this sometime: Build a webpage that loads a small (1KB) image at increasing intervals. Watch how long it takes to load.
  • 28. Probing the Radio State Machine Try this sometime: Build a webpage that loads a small (1KB) image at increasing intervals. Watch how long it takes to load. Here's what it looks like on WiFi: Every image loads in ~120 ms
  • 29. The same thing on T-Mobile: 1 sec delay 2 sec delay 3 sec delay 4 sec delay 5 sec delay
  • 30. The same thing on T-Mobile: Between 2 and 3 sec, huge increase in load time
  • 31. Example 3G Radio Resource Control State Machine No radio connection Idle for 12 sec CELL_ IDLE FACH Buffer size > threshold Shared radio channel Transmit data Delay: 1-2 sec Idle for 5 sec CELL_ DCH The exact delays and idle timeouts depend on the carrier, which equipment they have installed, and Dedicated how it is configured. radio channel This depends on the network, not the device. Run your own test now! http://goo.gl/F5sKV Data from: http://www.eecs.umich.edu/~fengqian/paper/aro_mobisys11.pdf
  • 33. Browser Connection Limits The number of parallel connections varies tremendously across mobile browsers. brown.edu on Android 2.3.5 Gingerbread: Total of 4 parallel connections
  • 34. Browser Connection Limits The number of parallel connections varies tremendously across mobile browsers. brown.edu on Android 4.0.4 Ice Cream Sandwich: Looks like 6 connections per domain
  • 35. Browser Connection Limits The number of parallel connections varies tremendously across mobile browsers. brown.edu on iOS 5: Looks like a lot of parallelism
  • 36. Browser Connection Limits The number of parallel connections varies tremendously across mobile browsers. brown.edu on Chrome for Android: Also 6 connections per domain
  • 37. Browser Connection Limits - Summary Browser Connections Per Domain Total Connections Android pre-Honeycomb 4 4 Android post-Honeycomb 6 256 iOS 4 4 30 iOS 5 6 52 Chrome for Android 6 256 Caveats: It takes a lot of experimentation and probing to get some of these numbers. iOS results, in particular, should be taken with a grain of salt.
  • 38. Are more connections always better? Parallel TCP connections are typically used for two purposes: 1) Saturate the network 2) Avoid head-of-line blocking On 3G, more connections are not always a good idea: - Each connection pays the cost of the TCP handshake (200+ ms on typical 3G links) - Parallel connections can adversely compete for the channel
  • 40. HTTP Pipelining Been in the spec since HTTP/1.1, but largely ignored by desktop browser vendors Originally thought it would break the Internet Android 2.3.4 (Gingerbread) Android Browser has been using pipelining for a long time! Several requests with Mobile Safari on iOS 5 is using it now, too. identical start times, staggered completion times Android ICS and Chrome do not use pipelining, however.
  • 42. Carrier network proxies Most large carriers do transparent web proxying Simple page with a 1MB JavaScript file, loaded over WiFi: 976KB, as expected
  • 43. Carrier network proxies Most large carriers do transparent web proxying Simple page with a 1MB JavaScript file, loaded over WiFi: 976KB, as expected The same page, loaded on T-Mobile UMTS: 7.6KB !?!?!?!! T-Mobile's proxy uses gzip!
  • 45. JavaScript Execution Time JavaScript is typically a lot slower on mobile devices. SunSpider benchmark results: Dual Core Mac Pro: 266.1 ms Galaxy Nexus (stock browser): 1899 ms Galaxy Nexus (Chrome): 1574 ms iPhone 3GS (iOS 5): 4737 ms iPhone 4S (iOS 5): 2200 ms iPad 2 (iOS 5): 2097 ms
  • 47. Not all caches are created equal Mobile browsers have small caches: Android 2.3: 8 MB iOS 5: 100 MB, but not persistent! Android Chrome: 250 MB Compare to typical size of 512 MB or more for desktop browsers.
  • 48. Browsers != Embedded HTTP Libraries Common embedded HTTP libraries often have broken cache behavior! java.net.URLConnection java.net.HttpURLConnection org.apache.http.client.HttpClient None of these do any caching at all. android.webkit.WebView Does caching, but does not support redirection. NSURLRequest - iOS5 Does caching, but total cache size is 1 MB for small objects, 40 MB for large objects, no caching for objects > 2MB. Web Caching on Smartphones: Ideal vs. Reality by Feng Qian, Kee Shen Quah, Junxian Huang, Jeffrey Erman, Alexandre Gerber, Z. Morley Mao, Subhabrata Sen, and Oliver Spatscheck, Proceedings of ACM Mobisys 2012.
  • 49. Summary Mobile networks have high round-trip-times: hundreds of ms. Mobile connections can take several seconds to get established. HTTP pipelining: Coming to iOS, going away in Android. Beware carrier network proxies. JavaScript: Ain't so fast. Not all mobile caches are created equal.
  • 50. Roadmap Getting a handle on mobile web performance How to collect measurements on mobile devices Deep dive into mobile web performance issues and common gotchas Using Chrome for Android's remote debugger Mobile bookmarklets and other tools
  • 52. Remote Debugging Chrome on Android Chrome on Android has full support for Chrome Developer Tools Desktop Chrome USB tethering
  • 53. Getting Started 1) Fire up Chrome on your device 2) Settings > Developer Tools > Enable USB Web debugging
  • 54. Getting Started 3) On desktop, run: adb forward tcp:9222 localabstract:chrome_devtools_remote 4) On desktop, visit: http://localhost:9222
  • 55. Getting Started 5) Pick the tab you want to debug:
  • 56. Getting Started 6) You'll initially see a blank window:
  • 57. Getting Started 7) Hit reload on the phone to get a timeline:
  • 58. So what can you do with this? Anything you can do with Chrome Dev Tools on desktop! ● Network events timeline ● Inspect and manipulate the DOM ● Profile CPU and memory usage ● Performance audit
  • 59. Network events timeline Each resource is one line Timeline Size, type, time DOMContent onload event event
  • 60. Exploring a single request / response Request Headers Response headers
  • 61. Exploring the DOM Mouse over a DOM element Element is highlighted on device!
  • 62. CPU and memory profiling
  • 63. CPU and memory profiling CPU profile of each JS function
  • 64. CPU and memory profiling Timeline of page memory usage Timeline of page events Size of DOM, #event listeners
  • 65. Summary Chrome for Android gives you tremendous visibility and control through its remote debugging interface. Inspect and control the DOM, get timeline information, CPU and memory profiling, and more. iOS6 is introducing Remote Debugging for Mobile Safari! http://bit.ly/L1zXTX Very similar interface and functionality.
  • 67. Meta Bookmarklet http://stevesouders.com/mobileperf/mobileperfbkm.php
  • 68. Firebug Lite http://getfirebug.com/firebuglite#Stable
  • 69. YSlow Mobile http://yslow.org/mobile/
  • 70. Page Resources http://stevesouders.com/mobileperf/pageresources.php
  • 71. Jdrop http://jdrop.org
  • 73. DOMMonster http://mir.aculo.us/dom-monster/
  • 74. Docsource http://stevesouders.com/mobileperf/docsource.php
  • 75. cssess https://github.com/driverdan/cssess
  • 76. Snoopy http://snoopy.allmarkedup.com/
  • 77. SpriteMe http://spriteme.org/
  • 78. Navigation timing bookmarklets https://github.com/Yottaa/NavigationTimingBookmarklet http://code.google.com/p/navlet/ https://github.com/kaaes/timing
  • 79. webkit Resource Timing Watch this space: https://bugs.webkit.org/show_bug.cgi?id=61138
  • 81. PageSpeed Insights https://developers.google.com/speed/pagespeed/insights
  • 82. PCAP Web Performance Analyzer Web tcpdump/packet capture http://pcapperf.appspot.com/
  • 83. icy http://calendar.perfplanet.com/2011/i-see-http/
  • 84. iWebInspector http://www.iwebinspector.com/
  • 85. winre http://people.apache.org/~pmuellr/weinre/docs/latest/
  • 86. User Agent Switcher Extensions https://chrome.google.com/webstore/detail/djflhoibgkdhkhhcedjiklpkjnoahfmg
  • 87. WebPagetest User-Agent Spoofing setUserAgent ... setViewportSize <width> <height> navigate www.cnn.com https://sites.google.com/a/webpagetest.org/docs/using-webpagetest/scripting#TOC-setUserAgent
  • 89. Measuring mobile web behavior is hard! Most mobile browsers have no instrumentation interface. But, things are improving: Chrome for Android and Mobile Safari in iOS6 have a rich debug interface (more later!) Web Page Test and Blaze.io mobile agents use clever tricks: - Use embedded WebView components, not real browsers - On Android: run tcpdump to capture network packets - On iOS: Instrument pages using JavaScript Caveat: - Not all events available on iOS (e.g., no DNS lookup or TCP connect times)
  • 90. Know WHAT and HOW you are measuring Know thy Browser ● Real Device ○ Native Browser ○ App with embedded UIWebView ● Simulator ● Changed User-Agent String in Desktop Browser Groketh thy Connectivity ● Carrier Network ○ Which Carrier ○ Carrier Rewriting Proxies ● WiFi ○ Connected to....?
  • 92. Real-User Measurement dvcs.w3.org/hg/webperf/raw-file/tip/specs/NavigationTiming/Overview.html
  • 94. Takeaways Decide what and how you want to measure Mobile performance deeply impacted by network and browser architecture Mobile measurement tools have their limits, but are maturing rapidly This stuff is hard, but it's an exciting time to be alive!
  • 95. Google Booth - Talks Tuesday, June 26 - Morning Break 10:15 – 10:30 : Site Speed Reports in Google Analytics: Measuring your website’s performance Afternoon Break 3:10 – 3:25 : Measuring user perceived latency with Google Analytics Site Speed reports: hands-on demo and insights 3:30 – 3:45 : Async Scripts and why you care, particularly for third-party content Wednesday, June 27th - Morning Break 10:00 – 10:15 : PageSpeed Automatic Optimizations 10:15 – 10:30 : PageSpeed Insights for Chrome with mobile support – Demo Afternoon Break 3:10pm – 3:25pm : Measuring Web Performance 3:30pm – 3:45pm : HTTP Streaming – discuss the true latency bottleneck with bi-directional HTTP streaming and “full-duplex HTTP”
  • 96. Google Booth - Office Hours Tuesday, June 25 - Morning Break 10:30 - 10:30 : Q&A: Mobile Web Measurement with Matt and Pat Tuesday, June 26 - Afternoon Break 3:10 – 3:50 : Q&A: Your Chrome Wishlist, Suggestions and Questions Wednesday, June 27 - Morning Break 10:00 – 10:30 : Q&A: Performance monitoring with Google Analytics
  • 97. Thank You! PatMeenan@gmail.com @PatMeenan mdw@mdw.la @mdwelsh