SlideShare a Scribd company logo
Mobile/Web Performance
Doug Sillars
Digital Data Tips Tuesday
May 29, 2018
@DougSillars
Mobile web perf Amsterdam Tech Tips
0.5
0.6
0.7
0.8
0.9
Standing in Line Standing on the
edge of a virtual
cliff
Experiencing
Mobile Delays
Solving a Math
Problem
https://www.ericsson.com/res/docs/2016/mobility-report/emr-feb-2016-the-stress-of-steaming-delays.pdf
Stress
How Much Do Customers Hate Delays?
3s: 53% of Users Abandon Mobile Sites
500ms: 26% Frustration
8% Engagement
100ms: 1% Revenue Walmart & Amazon (Desktop 2001)
4% Mobile Users Throw Their Phones
https://www.doubleclickbygoogle.com/articles/mobile-speed-matters
http://bit.ly/mobileWebStress
http://www.globaldots.com/how-website-speed-affects-conversion-rates/
https://www.mobilejoomla.com/blog/172-responsive-design-vs-server-side-solutions-infographic.html
Your Customers Demand
Mobile experiences that
are:
Immersive
Rich
Fast
This can be hard.
Cellular Networks Are High Latency Environments
• Connection Establishment 500-2500ms 50-250ms 1-10ms
• Round Trip Time (RTT) 200ms 100ms 8-50ms
3G 4G Wi-Fi
Today’s Goals
Test where your app/site is today
Common Tools
Learn best practices for speed
Learn from existing tests
See the results of performance
fixes
Testing Your Mobile Performance
Native Web
Free & Open Source Tools
Video Optimizer
https://developer.att.com/
Video-Optimizer
WebPageTest
https://www.webpagetest.org
https://webspeed.cloudinary.com
Testing With Video Optimizer
Run network traces on your
phone
1. Pick device
2. Collector type
3. Set network conditions
4. Decrypt HTTPS
5. Record screen?
6. Name
7. GO!
Video Optimizer
Video Optimizer
establishes a VPN
connection on Device
Collects all Traffic in/out
Device screen displayed
on your computer
Click Stop to end trace.
Files copied over to
computer for analysis.
Best Practices– Test Results
Connections
Files and Images
HTML
Security
Video
WebPageTest
Tests Websites on Remote
Browsers
1. Enter Website
2. Set Test Location
3. Choose Device & Browser
4. Options
5. GO!
WebPageTest Results
Optimizing Content Delivery
1.Delivery Speed
Optimizing Content Delivery
1.Delivery Speed
Coin-hive.com is a cryptocurrency mining script that is used
in coin-jacking websites
They have one server in Germany.
Munich, DE ping:
10ms
San Jose, US
ping: 150ms
Singapore
ping: 200ms
Data Collected with Circonius
Optimizing Content Delivery
1.Delivery Speed
Optimizing Content Delivery
1.Delivery Speed: Content Delivery Networks
CDNs cache your
content at
various locations
around the
world – reducing
the round trip
time
Optimizing Content Delivery
1.Delivery Speed: Redirects
Optimizing Content Delivery
Pokémon Go!
Quick notes:
GPS: always on
(green)
Packet traffic: radio
nearly always on
Pokémon Go! Cellular Radio Usage
HTTP (ARO can read):
Location images 50-80kb each
HTTPS (ARO can only see packets):
maps.googleapis.com - Map data <10KB each
Storage.googleapis.com – maps and game data ~500kb per batch
Pgorelease.niananticlabs.com – uplink – player info ~35kb per batch
Several analytics companies: unity3d, crittercism <10KB each
We’ll focus
on these
Pokémon Go! Cellular Radio Usage
Storage.googleapis.com – maps and game data ~500kb per
batch
Pgorelease.niananticlabs.com – uplink – player info ~35kb per batch
Pokémon Go! Chatty Connections
5th connection to
same server!
Pokémon Go! Chatty Connections
Connections recur @ ~30s intervals
What if these transmissions could be combined into 1 transmission every 30s?
Cellular radio is off more often – Battery Savings
Fewer Network connections, fewer bursts of traffic
As a Developer, Why Should I Care?
Niantic servers are having trouble with Pokémon Go! Traffic loads
Assumption: Server can handle 1,000 simultaneous connections
Today:
5 connections per customer = 200 customers/server
Tomorrow:
1 connection per customer = 1,000 customers/server
Optimizing Content Delivery
1.Delivery Speed
2.Content Delivery
Optimizing Content Delivery
Optimizing Content Delivery
Text Compression
Screen filled via:
130 KB JSON file
Optimizing Content Delivery
Text Compression
130 KB JSON file
populates screen
"primaryImageUrl":"/db_photos/showcards/v5/AllPhotos/1394
9024/p13949024_b_v5_aa.jpg"
"title":"America's Got Talent"
Optimizing Content Delivery
Text Compression
131 KB Uncompressed:
• Gzip: 16 KB (88% smaller!)
• Brotli: 12 KB (91% smaller!)
Screen is populated with data and images
faster
3
1
Clean Up Your Data
JSON files downloaded have many
duplicate entries – adding KB to the
download:
Identical data repeated
20x for each channel
Optimizing Content Delivery
Images
33
Duplicate Content
Optimizing Content Delivery
Images
2560 px
1440 px
1555x1200 pixels
Optimizing Content Delivery
Image Pixel Count
2560 px
1440 px
720x556 pixels
Optimizing Content Delivery
Image Quality
2560 px
1440 px
85% Quality
Optimizing Content Delivery
Image Quality
2560 px
1440 px
85% Quality
Optimizing Content Delivery
Images: Putting it Together
2560 px
1440 px
85% Quality & 720x556 pixels
Optimizing Content Delivery
Image Quality Tooling
http://res.cloudinary.com/dougsillars/image/upload/c_scale,q_85,w_720/
v1517843228/bigFrankSinatraImage_c1mnff.jpg
http://res.cloudinary.com/dougsillars/image/upload/c_scale,q_auto,w_720/
v1517843228/bigFrankSinatraImage_c1mnff.jpg Auto Quality: 128 KB
91.7% savings!
http://res.cloudinary.com/dougsillars/image/upload/c_scale,q_auto,r_0,w_720/
v1517843228/bigFrankSinatraImage_c1mnff.webp
WebP: 84 KB
94.6% savings!
Optimizing Content Delivery
Images and Devices
https://twitter.com/paulcalvano/status/928751141843808256
Optimizing Content Delivery
Responsive Images
http://www.responsivebreakpoints.com/
Optimizing Content Delivery
Preview Images
Web Usage
https://www.nngroup.com/articles/scrolling-and-attention/
https://calendar.perfplanet.com/2017/progressive-image-loading-using-intersection-observer-and-sqip/
Lazy Loading
https://www.nngroup.com/articles/scrolling-and-attention/
https://calendar.perfplanet.com/2017/progressive-image-loading-using-intersection-observer-and-sqip/
Optimizing Content Delivery
Animated GIFs
Original MP4
1.4 MB
Optimizing Content Delivery
Animated GIFs
Animated GIF
3.8 MB
270% larger
Optimizing Content Delivery
Animated GIFs
Optimizing Content Delivery
Animated GIFs
MP4: 256 colors
247KB
93% smaller
Optimizing Content Delivery
Animated GIFs
Video Tags are slow:
Video is not pre-loaded, will be last to download
<video autoplay loop muted playsinline controls = "false” src="goats.mp4" />
Img tags are fast!
<picture>
<source type="video/mp4" srcset=”goats.mp4">
<source type="image/webp" srcset=”goats.webp">
<img src=”goats.gif">
</picture>
https://calendar.perfplanet.com/2017/animated-gif-without-the-gif/
Optimizing Content Delivery
51
Buffer Rage
a state of uncontrollable fury or violent
anger induced by delayed or interrupted
streaming video content
http://www.ineoquest.com/press-releases/new-research-reveals-buffer-rage-as-techs-newest-epidemic
Video
<video Preload = “auto” src="goats.mp4" />
Best to use ”metadata” or “none”
Video Startup Delay
After 2 seconds,
every additional
second corresponds
to 5.8% increase in
abandonment
https://www.akamai.com/kr/ko/multimedia/documents/technical-publication/video-stream-quality-impacts-viewer-behavior-inferring-causality-using-quasi-experimental-designs-technical-publication.pdf
Video Startup Delay
https://www.akamai.com/kr/ko/multimedia/documents/technical-publication/video-stream-quality-impacts-viewer-behavior-inferring-causality-using-quasi-experimental-designs-technical-publication.pdf
55
Streaming Video on Demand
• User clicks “Adventure Time”
episode
• Industry Target: <3s delay
• 73s Screen flips to
landscape at (blue
bar)
• 75s Ad for Lego
Batman downloads
• ~80-105s Lego
Batman ad plays
• 108s, get DTV
Authorizing screen
• 116s. Blank player
• 121s video begins
playing
56
Breaking it down: Part 1 Video Ad Download
57
Breaking it down: Part 1 Video Ad Download
• Connections prior to ad download account for ~ 50% of latency to ad play
• Latency for ad play doubles below 5 MBPS
• Ad file size does not decrease as network quality decreases.
• Measured Times
• First analytics
• First ad packet
• “ad playback start”
• Based on analytics reporting ad start
58
Breaking it down: Part 2 Video Ad Playback
59
Breaking it down: Part 3 THE MOVIE!!!
60
Breaking it down: Movie startup
61
Breaking it down: Movie startup
Ad Play
Movie
Starts DL
Customer
“buffering”
Movie
Starts
playing
3rd Quartile of ad
Optimizing Content Delivery
What Leads to Startup Delay?
Manifest File:
List of Available
Streams
Player Chooses a Stream Stream Manifest:
List of Video Segments
Player Downloads
Segments into buffer
Video Plays
Optimizing Content Delivery
What Leads to Startup Delay?
#EXTM3U#
EXT-X-STREAM-INF:BANDWIDTH=8500000,RESOLUTION=1920x1080,sunflower1080/index1080.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=200000,RESOLUTION=416x234,sunflower234/index234.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=400000,RESOLUTION=480x270,sunflower270/index270.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=600000,RESOLUTION=640x360,sunflower360_600k/index360_600k.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=1200000,RESOLUTION=640x360,sunflower360_1200k/index360_1200k.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=3500000,RESOLUTION=960x540,sunflower540/index540.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=5000000,RESOLUTION=1280x720,sunflower720_5000k/index720_5000k.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=6500000,RESOLUTION=1280x720,sunflower720_6500k/index720_6500k.m3u8
Example Manifest file:
Optimizing Content Delivery
Video Streaming
Manifest File:
List of Available
Streams
Player selects
8.5 MBPS stream Stream Manifest:
List of Video Segments
Buffer takes a long
time to fill
Video Does Not Play
Player immediately changes the
stream choice to 600KBPS
Optimizing Content Delivery
What Leads to Startup Delay?
#EXTM3U#
EXT-X-STREAM-INF:BANDWIDTH=8500000,RESOLUTION=1920x1080,sunflower1080/index1080.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=200000,RESOLUTION=416x234,sunflower234/index234.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=400000,RESOLUTION=480x270,sunflower270/index270.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=600000,RESOLUTION=640x360,sunflower360_600k/index360_600k.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=1200000,RESOLUTION=640x360,sunflower360_1200k/index360_1200k.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=3500000,RESOLUTION=960x540,sunflower540/index540.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=5000000,RESOLUTION=1280x720,sunflower720_5000k/index720_5000k.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=6500000,RESOLUTION=1280x720,sunflower720_6500k/index720_6500k.m3u8
Example Manifest file:
8.5 MBPS is HIGH throughput for initial streaming
Best Practice: Pick middle throughput to balance startup time and quality
Optimizing Content Delivery
As long as Video download is faster than Playback….
What Leads to Stalls?
Optimizing Content Delivery
What Leads to Stalls?
Video Download
slower than playback,
so the video stalls
Buffer is filling, but
video has not resumed
Optimizing Content Delivery
Balancing the Network with Playback
Player uses available streams to balance download with playback
Optimizing Content Delivery
Video Streaming
Large jumps in
throughput
can lead to
streaming
issues
Optimizing Content Delivery
Video Streaming
Large throughput gaps can lead to
many stream changes – which can be
visible to user
Optimizing Content Delivery
Video Streaming
#EXTM3U#
EXT-X-STREAM-INF:BANDWIDTH=8500000,RESOLUTION=1920x1080,sunflower1080/index1080.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=200000,RESOLUTION=416x234,sunflower234/index234.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=400000,RESOLUTION=480x270,sunflower270/index270.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=600000,RESOLUTION=640x360,sunflower360_600k/index360_600k.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=1200000,RESOLUTION=640x360,sunflower360_1200k/index360_1200k.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=3500000,RESOLUTION=960x540,sunflower540/index540.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=5000000,RESOLUTION=1280x720,sunflower720_5000k/index720_5000k.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=6500000,RESOLUTION=1280x720,sunflower720_6500k/index720_6500k.m3u8
Performance Summary
1.Delivery Speed
1.CDNs
2.Reduce redirects
2.Content Delivery
1) Text Compression
2) Image Sizing, Quality and Format
3) Video Bitrate
Summary
Web:
WebPageTest https://www.webpagetest.org
WebsiteSpeedTest https://Webspeedtest.cloudinary.com
Native:
Video Optimizer https://developer.att.com/Video-Optimizer
High Performance Android Apps http://bit.ly/HighPerformanceAndroidApps
Images:
Cloudinary https://www.cloudinary.com
http://www.responsivebreakpoints.com/
Tooling

More Related Content

PPTX
Its Time To Stop Stalling: Mobile App and Video Performance
POTX
Its timetostopstalling sw_mobile_bristol
POTX
Android Network Performance
POTX
Ministry of Testing Cork
POTX
Mobile App and Web Performance Testing
POTX
Its Time To Stop Stalling Bucharest
POTX
Its timetostopstalling mot_paris
POTX
Its timetostopstalling gdg_zurich
Its Time To Stop Stalling: Mobile App and Video Performance
Its timetostopstalling sw_mobile_bristol
Android Network Performance
Ministry of Testing Cork
Mobile App and Web Performance Testing
Its Time To Stop Stalling Bucharest
Its timetostopstalling mot_paris
Its timetostopstalling gdg_zurich

What's hot (20)

POTX
Its timetostopstalling swp_munich
POTX
GDG Manchester
POTX
Its timetostopstalling barcelonajs
POTX
GDG Leeds
PPTX
Ux connect london_fastandbeautiful
POTX
Its Time To Stop Stalling BerlinDroid
POTX
Its timetostopstalling gdg_hamburg
POTX
Its timetostopstalling gdgdusseldorf
POTX
Its timetostopstalling gdg_bruxelles
POTX
Its timetostopstalling limerick
PPTX
Quantifying The Mobile Difference
PPTX
Mot cph when its just too slow
POTX
Its timetostopstalling mobilecologne
POTX
Its timetostopstalling cambridgemot
PPTX
Imagesandvideo tallinn
PPTX
Testing Mobile App Performance MOT Edinburgh
PPTX
Imagesandvideo stockholm fastandbeautiful
PPTX
Threadneedle when its just too slow
PPTX
Nl when its just too slow
PPTX
Belgrade when its just too slow
Its timetostopstalling swp_munich
GDG Manchester
Its timetostopstalling barcelonajs
GDG Leeds
Ux connect london_fastandbeautiful
Its Time To Stop Stalling BerlinDroid
Its timetostopstalling gdg_hamburg
Its timetostopstalling gdgdusseldorf
Its timetostopstalling gdg_bruxelles
Its timetostopstalling limerick
Quantifying The Mobile Difference
Mot cph when its just too slow
Its timetostopstalling mobilecologne
Its timetostopstalling cambridgemot
Imagesandvideo tallinn
Testing Mobile App Performance MOT Edinburgh
Imagesandvideo stockholm fastandbeautiful
Threadneedle when its just too slow
Nl when its just too slow
Belgrade when its just too slow
Ad

Similar to Mobile web perf Amsterdam Tech Tips (20)

POTX
Its timetostopstalling androidcork
PPTX
Its timetostopstalling pentabar
POTX
Its timetostopstalling gdg_dublin
PPTX
Hamburg web perf meetup
PPTX
Cork ux Meetup
PPTX
Fast and Beautiful Images and Video
POTX
Its time to stop stalling novi sad
POTX
Mobile App Performance, Dublin MOT
POTX
Dublin Tech Talks
POTX
Its timetostopstalling londroid
POTX
Mobile App Performance, Firenze
PPTX
Stop Stalling: Video Delivery Best Practices
PPTX
Waterford fast images
PPTX
Beautiful and Fast Images
PPTX
Devfest Siberia Fast and Beautiful Images and Video
PPTX
Video performance barcelona-js_coders
PPTX
Mobixell mobile data-network-kilMobile Data – Network Killer or Killer App?le...
PPTX
Video performance snowcamp
PPTX
Parisjs fastvideoandimages
PPTX
Video performance munichfrontend
Its timetostopstalling androidcork
Its timetostopstalling pentabar
Its timetostopstalling gdg_dublin
Hamburg web perf meetup
Cork ux Meetup
Fast and Beautiful Images and Video
Its time to stop stalling novi sad
Mobile App Performance, Dublin MOT
Dublin Tech Talks
Its timetostopstalling londroid
Mobile App Performance, Firenze
Stop Stalling: Video Delivery Best Practices
Waterford fast images
Beautiful and Fast Images
Devfest Siberia Fast and Beautiful Images and Video
Video performance barcelona-js_coders
Mobixell mobile data-network-kilMobile Data – Network Killer or Killer App?le...
Video performance snowcamp
Parisjs fastvideoandimages
Video performance munichfrontend
Ad

More from Doug Sillars (20)

PPTX
Fastandbeautiful belfast
PPTX
Fastandbeautiful gdg sacremento
PPTX
Fastandbeautiful gd glittlerock
PPTX
Fastandbeautiful webinale
PPTX
Ai powered images-pythonljubjana
PPTX
Fastandbeautiful zagrebtechsauna
PPTX
Video js zagreb
PDF
Vkmdp cologne
PPTX
Ai powered images-gdgtirana
PPTX
A rt gallery pantalks
PPTX
Ai powered images-sarajevo
PPTX
A rt gallery hub387
PPTX
Ai powered images-zurichpydata
PPTX
Fastandbeautiful vienna
PPTX
Ai powered images-opieaivienna
PPTX
A rt gallery devfestlondon
PPTX
Fastandbeautiful devfest london
PPTX
A rt gallery cardiff
PPTX
Ai powered images-mobileera
PPTX
Fastandbeautiful oredev
Fastandbeautiful belfast
Fastandbeautiful gdg sacremento
Fastandbeautiful gd glittlerock
Fastandbeautiful webinale
Ai powered images-pythonljubjana
Fastandbeautiful zagrebtechsauna
Video js zagreb
Vkmdp cologne
Ai powered images-gdgtirana
A rt gallery pantalks
Ai powered images-sarajevo
A rt gallery hub387
Ai powered images-zurichpydata
Fastandbeautiful vienna
Ai powered images-opieaivienna
A rt gallery devfestlondon
Fastandbeautiful devfest london
A rt gallery cardiff
Ai powered images-mobileera
Fastandbeautiful oredev

Recently uploaded (20)

PDF
Unlocking AI with Model Context Protocol (MCP)
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
cuic standard and advanced reporting.pdf
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Review of recent advances in non-invasive hemoglobin estimation
PPTX
Spectroscopy.pptx food analysis technology
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
KodekX | Application Modernization Development
PPTX
Big Data Technologies - Introduction.pptx
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
Unlocking AI with Model Context Protocol (MCP)
20250228 LYD VKU AI Blended-Learning.pptx
cuic standard and advanced reporting.pdf
NewMind AI Weekly Chronicles - August'25 Week I
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
MIND Revenue Release Quarter 2 2025 Press Release
Review of recent advances in non-invasive hemoglobin estimation
Spectroscopy.pptx food analysis technology
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
“AI and Expert System Decision Support & Business Intelligence Systems”
KodekX | Application Modernization Development
Big Data Technologies - Introduction.pptx
Dropbox Q2 2025 Financial Results & Investor Presentation
Encapsulation_ Review paper, used for researhc scholars
Network Security Unit 5.pdf for BCA BBA.
Spectral efficient network and resource selection model in 5G networks
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Building Integrated photovoltaic BIPV_UPV.pdf

Mobile web perf Amsterdam Tech Tips

Editor's Notes

  • #35: 1.8 MP
  • #36: 0.4 MP
  • #41: file:///Users/demo/Documents/reponsiveimages.html
  • #42: file:///Users/demo/Documents/reponsiveimages.html
  • #43: file:///Users/demo/Documents/reponsiveimages.html