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
Β 
Gadgets gizmos and apps
Gadgets gizmos and appsGadgets gizmos and apps
Gadgets gizmos and appsGet up to Speed
Β 
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
Β 
Metro + Metro Like
Metro + Metro LikeMetro + Metro Like
Metro + Metro LikeSayan Mukherjee
Β 
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

Sw2-hw10
Sw2-hw10Sw2-hw10
Sw2-hw10RyoObata
Β 
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
Β 
3g and 4g
3g and 4g3g and 4g
3g and 4gahsan riaz
Β 
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
Β 
network problem.pptx
network problem.pptxnetwork problem.pptx
network problem.pptxanthonypaez686
Β 
E-commerce
E-commerceE-commerce
E-commerceArun Kumar
Β 
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
Β 
HTTP/2 Prioritization
HTTP/2 PrioritizationHTTP/2 Prioritization
HTTP/2 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
Β 
Http2 in practice
Http2 in practiceHttp2 in practice
Http2 in practicePatrick 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
Β 
Image optimization
Image optimizationImage optimization
Image optimizationPatrick 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

Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
Β 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
Β 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
Β 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
Β 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
Β 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
Β 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
Β 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
Β 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
Β 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
Β 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
Β 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
Β 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
Β 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
Β 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
Β 
FULL ENJOY πŸ” 8264348440 πŸ” Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY πŸ” 8264348440 πŸ” Call Girls in Diplomatic Enclave | DelhiFULL ENJOY πŸ” 8264348440 πŸ” Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY πŸ” 8264348440 πŸ” Call Girls in Diplomatic Enclave | Delhisoniya singh
Β 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
Β 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
Β 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
Β 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
Β 

Recently uploaded (20)

Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
Β 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
Β 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
Β 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
Β 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
Β 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
Β 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
Β 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
Β 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Β 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
Β 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
Β 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
Β 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
Β 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
Β 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Β 
FULL ENJOY πŸ” 8264348440 πŸ” Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY πŸ” 8264348440 πŸ” Call Girls in Diplomatic Enclave | DelhiFULL ENJOY πŸ” 8264348440 πŸ” Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY πŸ” 8264348440 πŸ” Call Girls in Diplomatic Enclave | Delhi
Β 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
Β 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Β 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Β 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.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