SlideShare a Scribd company logo
User Perceived
Performance
Mike North
Modern Web UI - 9/29/2015
@MichaelLNorth
github.com/mike-north
But first….
OCTOBER 3RD & 4TH
…and then….
OCTOBER 21-23
About Me
• We are everyone’s “household CFO”
• Come up with a cash flow plan, analyze
transactions, track alignment
• You “have a guy/gal” to handle your
bills/finances
About Me
• Job.old() = UI Architect of Yahoo Ads &
Data
• Organizer Modern Web UI
• Startup advisor, OSS contributor
//TODO
• What is user-perceived performance?
• Instrumenting & Measuring
• Lessons learned from complex apps
• UX tricks for perception of responsiveness
What is User Perceived
Performance?
User Perception
< 100ms Feels “instantaneous”
< 1,000ms Keep flow of thought
< 10,000ms Keep attention
SPA Performance
• Server deals only w/ JSON
• Incremental changes instead
of boiling the ocean
• Control over UX of loading/
transitions
• Initial page load is longer
• Slowness appears to be in the
UI
• API loses context
ADVANTAGES CHALLENGES
Perf Matters
↑ 1.0s Page Load ↓ $1.6B /Year
↑0.4s Search Load ↓ 8,000,000 Searches/Day
How do we measure it?
System-Wide Instrumentation
@MichaelLNorth
APIDB
Caching /
Indexing
Asset Serving
Networking /
Infrastructure
Where do we start?
Client
System-Wide Instrumentation
API
DB DB
Network UI
System-Wide Instrumentation
API
DB DB
Business logic
API
DB DB
Network UI
System-Wide Instrumentation
R
Transition
Render
R
Render
R
Route A
RouteB
UI
System-Wide Instrumentation
R
Transition
Render
R
Render
R
Route A
RouteB
ember-perf
API
DB
{
meta: {}
}
DB
System-Wide Instrumentation
ember-perf
R
Transition
Render
R
Render
R
Route A
RouteB
API
DB
API
DBDB
Other tools
• Browser profiler, timeline and network tab
• Take rendering speed numbers with a grain of salt
• Framework-specific tools
• Ember inspector
• React.addons.Perf
#Protips
Static Asset Bloat
Static Asset Bloat
• gzip compression - makes sense for anything >=
2KB
• Host static assets off a CDN
• bandwidth and latency matter
• Order assets to maximize parallel downloading
• inline scripts at the bottom
Static Asset Bloat - JS
• Scrutinize dependencies
• Minify
• Keep up to date on framework/library releases
Static Asset Bloat - CSS
• Minify
• Sanity check on style stack
• CSS redundancy checker
Static Asset Bloat - IMG
• Compress
• Get size you need
• imgix - image hosting as a service
• Fewer, larger files (sprites are still cool rite?)
• Have awareness of when to use JPG, PNG, etc…
API call typhoon
Serial API Calls
/companies/1
CompaniesShow
/api/companies/1
/api/companies/1/employees
CompaniesShowEmployees
180ms
220ms
400ms
Parallel API Calls
/companies/1
CompaniesShow
/api/companies/1
/api/companies/1/employees
CompaniesShowEmployees
180ms
220ms
220ms
JSON-API include
• ActiveRecord and JSON-API concept
• Returns related records in the API response
• GET /articles/1?include=comments
API call creep
• It’s easy to accidentally make a new, useless, API
call
• Annoying to sort out after the fact
• is great for thisPretender
“Slow API”
“Slow API”
• Have an awareness of DB cost
• Take only what you need
• ?per_page=200
• Let the stragglers straggle
It’s still slow…
Unavoidably Slow Stuff
• Large file uploads
• Slow external systems
• Pesky humans
• Transcoding
Unavoidably Slow Stuff
• Async to the rescue! Model as a background task
Unavoidably Slow Stuff
• Communicate long-running status to users
• Make waiting more interesting
Loading…
Thanks for
waiting, we’re
almost done!
Just a few
more
moments…
Yay! Your thing
is ready!
GET THING
Slow…on the critical path
Blank screens
• Anything is better
than a blank screen
• Pure CSS (inline)
spinners will show up
fast
• The perception of
“loaded” becomes a
grey area now
Perf matters
• webpagetest.org
• React performance tools - https://
facebook.github.io/react/docs/perf.html
ember-load ember-perf

More Related Content

PDF
The Thick Front-End
PDF
User-percieved performance
PDF
Static is just a cache
PPTX
Building Modern Web Applications with ASP.NET5
PPTX
Building rest services using aspnetwebapi
PPTX
SenchaCon 2016: Refine Enterprise Applications by Focusing on U0ser Experienc...
PDF
Next Generation Web Development Techniques with Cloud Foundry
PPTX
Serverless with Azure Functions
The Thick Front-End
User-percieved performance
Static is just a cache
Building Modern Web Applications with ASP.NET5
Building rest services using aspnetwebapi
SenchaCon 2016: Refine Enterprise Applications by Focusing on U0ser Experienc...
Next Generation Web Development Techniques with Cloud Foundry
Serverless with Azure Functions

What's hot (20)

PPTX
devworkshop-04_13_2016-ucsdnow-presentation
PDF
A idea of Powerful WooCmmerce Site
PDF
Michael North "Ember.js 2 - Future-friendly ambitious apps, that scale!"
PPTX
10 tips to make your ASP.NET Apps Faster
PPTX
Getting Started with ASP.NET 5
PPTX
A night at the spa
PDF
Write Once, Run Everywhere - Ember.js Munich
PPTX
Iconus 2016
PDF
Single Page Apps
PDF
Inrastructure as Code
PDF
Ohio Devfest - Visual Analysis with GCP
PPTX
How to ease the learning curve
PDF
Bridge the gap with Chat Automation
PDF
Using Chat Automation - ChatOps
PPTX
Why XAF and XPO?
KEY
The guardian and app engine
PPTX
Web application I have always dreamt of (Lviv)
PDF
Railsconf 2014 - Deploying Rails is Easier Thank It Looks
PPTX
SPSNL16 - Building Office 365 and SharePoint solutions using modern developer...
PPT
Real World Rails Deployment
devworkshop-04_13_2016-ucsdnow-presentation
A idea of Powerful WooCmmerce Site
Michael North "Ember.js 2 - Future-friendly ambitious apps, that scale!"
10 tips to make your ASP.NET Apps Faster
Getting Started with ASP.NET 5
A night at the spa
Write Once, Run Everywhere - Ember.js Munich
Iconus 2016
Single Page Apps
Inrastructure as Code
Ohio Devfest - Visual Analysis with GCP
How to ease the learning curve
Bridge the gap with Chat Automation
Using Chat Automation - ChatOps
Why XAF and XPO?
The guardian and app engine
Web application I have always dreamt of (Lviv)
Railsconf 2014 - Deploying Rails is Easier Thank It Looks
SPSNL16 - Building Office 365 and SharePoint solutions using modern developer...
Real World Rails Deployment
Ad

Viewers also liked (11)

PDF
Modern, Scalable, Ambitious apps with Ember.js
PDF
Gabriele Lana - The Magic of Elixir
PDF
Ember addons, served three ways
PDF
Elixir & Phoenix - fast, concurrent and explicit
PDF
GenRetry: Simple Exponential Backoff in Elixir
PDF
Collaborative music with elm and phoenix
PDF
Phoenix for Rubyists
PDF
Phoenix for Rubyists - Rubyconf Brazil 2016
PDF
Why DevOps is not enough
PDF
CI/CD and Asset Serving for Single Page Apps
PDF
Delightful UX for Distributed Systems
Modern, Scalable, Ambitious apps with Ember.js
Gabriele Lana - The Magic of Elixir
Ember addons, served three ways
Elixir & Phoenix - fast, concurrent and explicit
GenRetry: Simple Exponential Backoff in Elixir
Collaborative music with elm and phoenix
Phoenix for Rubyists
Phoenix for Rubyists - Rubyconf Brazil 2016
Why DevOps is not enough
CI/CD and Asset Serving for Single Page Apps
Delightful UX for Distributed Systems
Ad

Similar to User percieved performance (20)

PDF
Tips tricks deliver_high_performing_secure_web_pages
PPTX
Performance on a budget
PPTX
From Zero to Performance Hero in Minutes - Agile Testing Days 2014 Potsdam
PDF
Performance as UX with Justin Howlett
PDF
Web Performance in the Age of HTTP2 - Topconf Tallinn 2016 - Holger Bartel
PDF
Become a Performance Diagnostics Hero
PPTX
BTD2015 - Your Place In DevTOps is Finding Solutions - Not Just Bugs!
PDF
Berlin Expert Days 2013 - Performance Talk
ODP
Cvcc performance tuning
PPTX
Top Java Performance Problems and Metrics To Check in Your Pipeline
PDF
Building for, perceiving and measuring performance for mobile web
PDF
Web Performance Part 4 "Client-side performance"
PPTX
Improving Perceived Page Performance with ASP.NET Web API and AJAX
PPTX
Using Modern Browser APIs to Improve the Performance of Your Web Applications
PPTX
Measuring Front-End Performance - What, When and How?
PPTX
Building Advanced Web UI in The Enterprise World
PPTX
Art and Science of Web Sites Performance: A Front-end Approach
PPT
Oracle UCM: Web Site Performance Tuning
PDF
JUG Poznan - 2017.01.31
PDF
PAC 2019 virtual Mark Tomlinson
Tips tricks deliver_high_performing_secure_web_pages
Performance on a budget
From Zero to Performance Hero in Minutes - Agile Testing Days 2014 Potsdam
Performance as UX with Justin Howlett
Web Performance in the Age of HTTP2 - Topconf Tallinn 2016 - Holger Bartel
Become a Performance Diagnostics Hero
BTD2015 - Your Place In DevTOps is Finding Solutions - Not Just Bugs!
Berlin Expert Days 2013 - Performance Talk
Cvcc performance tuning
Top Java Performance Problems and Metrics To Check in Your Pipeline
Building for, perceiving and measuring performance for mobile web
Web Performance Part 4 "Client-side performance"
Improving Perceived Page Performance with ASP.NET Web API and AJAX
Using Modern Browser APIs to Improve the Performance of Your Web Applications
Measuring Front-End Performance - What, When and How?
Building Advanced Web UI in The Enterprise World
Art and Science of Web Sites Performance: A Front-end Approach
Oracle UCM: Web Site Performance Tuning
JUG Poznan - 2017.01.31
PAC 2019 virtual Mark Tomlinson

More from Mike North (11)

PDF
Web Security: A Primer for Developers
PDF
A Debugging Adventure: Journey through Ember.js Glue
PDF
Anatomy of a Progressive Web App
PDF
Web and Native: Bridging the Gap
PDF
The Road to Native Web Components
PDF
Enemy of the state
PDF
Write Once, Run Everywhere
PDF
Compose all the things (Wicked Good Ember 2015)
PDF
Async JavaScript in ES7
PPTX
Test like a pro with Ember.js
PDF
Modern Web UI - Web components
Web Security: A Primer for Developers
A Debugging Adventure: Journey through Ember.js Glue
Anatomy of a Progressive Web App
Web and Native: Bridging the Gap
The Road to Native Web Components
Enemy of the state
Write Once, Run Everywhere
Compose all the things (Wicked Good Ember 2015)
Async JavaScript in ES7
Test like a pro with Ember.js
Modern Web UI - Web components

Recently uploaded (20)

PDF
solutions_manual_-_materials___processing_in_manufacturing__demargo_.pdf
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
cuic standard and advanced reporting.pdf
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Electronic commerce courselecture one. Pdf
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
Machine learning based COVID-19 study performance prediction
PDF
NewMind AI Monthly Chronicles - July 2025
PDF
Advanced IT Governance
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PPTX
Big Data Technologies - Introduction.pptx
solutions_manual_-_materials___processing_in_manufacturing__demargo_.pdf
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Dropbox Q2 2025 Financial Results & Investor Presentation
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
cuic standard and advanced reporting.pdf
NewMind AI Weekly Chronicles - August'25 Week I
Advanced methodologies resolving dimensionality complications for autism neur...
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
The Rise and Fall of 3GPP – Time for a Sabbatical?
Understanding_Digital_Forensics_Presentation.pptx
Electronic commerce courselecture one. Pdf
MYSQL Presentation for SQL database connectivity
Diabetes mellitus diagnosis method based random forest with bat algorithm
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Machine learning based COVID-19 study performance prediction
NewMind AI Monthly Chronicles - July 2025
Advanced IT Governance
20250228 LYD VKU AI Blended-Learning.pptx
Big Data Technologies - Introduction.pptx

User percieved performance