SlideShare a Scribd company logo
ALL ABOUT PERCEIVED
PERFORMANCE
Aakash Bapna

UI Engineer, flipkart.com


!1
Me!

Abhilash

Arya

!2
I HATE SLOW WEBSITES.

!3
!4
ANYTHING YOU ADD- BROWSERS HAVE TO
DOWNLOAD, COMPUTE &
RENDER

!5
ANYTHING YOU ADD- BROWSERS HAVE TO
DOWNLOAD, COMPUTE &
RENDER

!6
Basics Performance Rules

•
•
•
•
•

CSS on top, JS at bottom.

Use CDN.

Caching static resources.

Minify JS, CSS, gzip.

… Y! slow rules


!7
USERS STILL SAY YOUR SITE IS
SLOW
!8
WHAT PERCEIVED
PERFORMANCE?

!9
!10
ITS ALL HOW USERS
PERCEIVE YOUR PAGE LOAD
whether loads in a flash, or takes ages to load.

!11
YOU HAVE TO MAKE USERS
BELIEVE ITS LOADING FAST...

!12
HOW WE DO THIS?

!13
Skeleton screens- Homepage
(below fold)

!14
Progressively enhanced MotoG page

SLOW CONNECTION

FAST CONNECTION
!15
Other Techniques
1.
2.
3.

Show precise progress loader when it
takes time (gmail)

Optimistic actions. (Instagram)

Paint what they are seeing right now.

!16
Other Techniques
1.
2.
3.

Show precise progress loader when it
takes time (gmail)

Optimistic actions. (Instagram)

Paint what they are seeing right now.

!17
MEASURING PERCEIVED
PERFORMANCE
HARD!

!18
SYNTHETIC MONITORING

!19
WEBPAGETEST
1.
2.
3.
4.
5.

Shows load times.

Shows waterfall of requests of how
page loaded.

CPU, network utilisation.

Filmstrips. 

etc…

!20
Frames

Waterfall

!21
“Why is it taking 715ms to download a 5kb
image?” - A developer after running WPT.

!22
Problem with WPT

•
•

!

Inconsistent results for load times on
every run.

Probably due to network conditions in
India.

!23
BIGGER QUESTION- HOW OFTEN ARE
USERS SEEING THE PAGE WEBPAGETEST
IS SEEING?

!24
REAL USER MONITORING

!25
window.onload
1.
2.
3.
4.

so Web 1.0.

Doesn’t tell you how page loaded. 

Above the fold might complete very
early.

This is the bare minimum you should
record.

!26
NAVIGATION TIMING API

!27
NAVIGATION TIMING API
Client Time:
Very High.

NEED MOAR
DETAILS!

Server Time:
Very less for
big sites.

!28
WHAT IF YOU COULD EXPORT
REQUESTS WATERFALL FROM
REAL USERS?
and reconstruct picture.

!29
Resource Timing API.

•
•
•
•

window.performance.getEntries()

Supported: latest Chrome, IE10!

DNS/TCP connect times available
when cross origin headers are set.

under documented.

!30
NAVIGATION TIMING API +
RESOURCE TIMING API =
WINDOW.ONLOAD
complete end to end picture of network performance.

!31
WE EXPORTED DATA FROM BROWSERS,
RAN HADOOP JOBS TO PROCESS THIS.

!32
!33
Requests Waterfall from RUM

!34
Requests Waterfall from RUM
Identify critical requests

!35
Requests Waterfall from RUM
Above the fold load time,
aim for getting this as
low as possible

!36
Findings (what was fast) :

•
•
•

CSS, JS are heavily cached over
requests, median under 100ms.

Cleaning up CSS/JS would hardly
move metrics.

Although CSS load times are less, its a
blocking resource and need to keep a
check on its size.

!37
Findings (what was slow) :

•
•
•
•

Google Analytics, Omniture tracking
calls were taking 500ms (median)

Redirects.

HTML document itself taking too long
to load.

Images.

!38
CRITICAL REQUESTS.
Let browser handle, 

make them discoverable to browsers as soon as possible via
markup itself.

!39
NON-CRITICAL, BELOW FOLD

Lazy load images, lazy load modules via Ajax at DOM Ready.

!40
3RD PARTY CODE, SHARE
BUTTONS
You don’t have control over these, start at post onload.

!41
All in all, data by Resource Timing APIs is a
gold mine. There is lots to discover from it.

!42
FIXING IMAGES

!43
DEVELOPER: “THIS IMAGE IS HUGE, GIMME A SMALLER ONE”

!

DESIGNER: “OKAY, HOW SMALL?”

!

DEVELOPER: (CONFUSED, MAKES A RANDOM GUESS…)

!44
DON’T GUESS, USE DATA.

use data from Resource Timing APIs

!45
Example:

730px x 300px
50kb
380ms to load

!46
FIXING CAROUSELS

!47
An example carousel on site.

!48
Wrong way

3 x 50kb images in parallel


!

Median load time of each: 832ms


!

BUT we are showing only one image, why load all three?

!49
Right way

Median load time: 380ms

Load via <img src=’’” >
as a critical resource

Load via javascript after
critical requests end.

!50
IMAGE REUSE

!51
Browse Page

Product Page
!52
Same cached image from previous
page upscaled and used as
placeholder while big image loads.

Browse Page

Product Page
!53
THEMING

All developers hate it.

!54
!55
Progressive festival theming
1.
2.
3.
4.
5.
6.

Theme is non-critical, should load after all
critical requests complete.

All functionality should work with base skin.

Limited to colours, background images.

No new DOM elements, use :before, :after.

Packed in single theme.css file.

Theme CSS file is loaded asyncly on DOM
ready.
!56
FIXING HTML SIZE

Important as affects discovery on critical requests.

!57
Our huuuge Nav menu

!58
MENU ON SLOW
CONNECTION

!59
<html>

<head>

	 <!— css —>

</head>

<body>

	 <div class=“header”>

	
	
<!— search bar —>

	 	
<!— navigation menu and big fat submenus —>
……. 

.……	


</div>

<img src=“…” />
<img src=“…” />
…

</body>


!60
HTML caching

•
•
•
•

Over 40% of our markup is flyout
menu.

Persisted on clientside with
localStorage for 10 mins.

Drastically reduced payload which was
transferred for every request. 

200ms improvement over median.

!61
REDIRECTS

very costly

!62
IT ALL STARTS WITH A
SHORTCUT
if (some condition) redirect();

!63
DECIDE URL STRATEGY BETWEEN
MOBILE/DESKTOP EARLY ON.

!64
PREFER ONE URL BETWEEN
MOBILE/DESKTOP
www.flipkart.com - good

www.flipkart.com/m - bad

!65
MOBILE SITE PERFORMANCE

!66
Mobile perf. highlights

•
•
•

Much of users(~50%) still come from
2G connections in India.

Use touchStart event instead of
click(~300ms delay).

A/B tested heavily to find right mix of
content.

!67
TO SUSTAIN
Performance is a moving target.

!68
To sustain
1.
2.
3.

Have a performance team.

Measure key performance metrics.

Use webpagetest in CI to keep an eye
on what's being checked in.

!69
THE FUTURE
Prefetching

!70
NATIVE APPS ARE CHEATING
WITH PREFETCHING

!71
NATIVE APP: 8.5MB

WEB VIEW: 0 BYTES

!72
Food for thought

•
•
•

Prefetching autosuggest, next pages…

Going offline with ServiceWorkers
[W3C proposal] 

Prefetching on hover/touchStart http://
instantclick.io/

!73
THANK YOU!
connect:

twitter: @_aakash

mail: aakash@flipkart.com
!74

More Related Content

What's hot

WordPress Optimization with Litespeed Cache #wpjkt14
WordPress Optimization with Litespeed Cache  #wpjkt14WordPress Optimization with Litespeed Cache  #wpjkt14
WordPress Optimization with Litespeed Cache #wpjkt14
WordPress
 
Wordcamp2009
Wordcamp2009Wordcamp2009
Wordcamp2009
joetek
 
Speed!
Speed!Speed!
Front end optimization
Front end optimizationFront end optimization
Front end optimizationAbhishek Anand
 
PAC 2019 virtual Mark Tomlinson
PAC 2019 virtual Mark TomlinsonPAC 2019 virtual Mark Tomlinson
PAC 2019 virtual Mark Tomlinson
Neotys
 
Introdcution to Adobe CQ
Introdcution to Adobe CQIntrodcution to Adobe CQ
Introdcution to Adobe CQ
Rest West
 
JS digest. Decemebr 2017
JS digest. Decemebr 2017JS digest. Decemebr 2017
JS digest. Decemebr 2017
ElifTech
 
The 5 most common reasons for a slow WordPress site and how to fix them – ext...
The 5 most common reasons for a slow WordPress site and how to fix them – ext...The 5 most common reasons for a slow WordPress site and how to fix them – ext...
The 5 most common reasons for a slow WordPress site and how to fix them – ext...
Otto Kekäläinen
 
Measuring Web Performance
Measuring Web Performance Measuring Web Performance
Measuring Web Performance
Dave Olsen
 
Adobe CQ5 for Developers - Introduction
Adobe CQ5 for Developers - IntroductionAdobe CQ5 for Developers - Introduction
Adobe CQ5 for Developers - Introduction
Tekno Point
 
WordPress + NGINX Best Practices with EasyEngine
WordPress + NGINX Best Practices with EasyEngineWordPress + NGINX Best Practices with EasyEngine
WordPress + NGINX Best Practices with EasyEngine
NGINX, Inc.
 
Architectures For Scaling Ajax
Architectures For Scaling AjaxArchitectures For Scaling Ajax
Architectures For Scaling Ajax
wolframkriesing
 
WordPress website optimization
WordPress website optimizationWordPress website optimization
WordPress website optimization
Daniel Kanchev
 
An extended explanation of caching
An extended explanation of cachingAn extended explanation of caching
An extended explanation of caching
Tom Cudd
 
Web performance
Web performanceWeb performance
Web performance
Islam AlZatary
 
Automated Web App Performance Testing Using WebDriver
Automated Web App Performance Testing Using WebDriverAutomated Web App Performance Testing Using WebDriver
Automated Web App Performance Testing Using WebDriverseleniumconf
 
Technical SEO for WordPress - 2019 edition
Technical SEO for WordPress - 2019 editionTechnical SEO for WordPress - 2019 edition
Technical SEO for WordPress - 2019 edition
Otto Kekäläinen
 
Webpack & React Performance in 16+ Steps
Webpack & React Performance in 16+ StepsWebpack & React Performance in 16+ Steps
Webpack & React Performance in 16+ Steps
Grgur Grisogono
 
Web performance testing with web driver
Web performance testing with web driverWeb performance testing with web driver
Web performance testing with web driverMichael Klepikov
 
Search in WordPress - how it works and howto customize it
Search in WordPress - how it works and howto customize itSearch in WordPress - how it works and howto customize it
Search in WordPress - how it works and howto customize it
Otto Kekäläinen
 

What's hot (20)

WordPress Optimization with Litespeed Cache #wpjkt14
WordPress Optimization with Litespeed Cache  #wpjkt14WordPress Optimization with Litespeed Cache  #wpjkt14
WordPress Optimization with Litespeed Cache #wpjkt14
 
Wordcamp2009
Wordcamp2009Wordcamp2009
Wordcamp2009
 
Speed!
Speed!Speed!
Speed!
 
Front end optimization
Front end optimizationFront end optimization
Front end optimization
 
PAC 2019 virtual Mark Tomlinson
PAC 2019 virtual Mark TomlinsonPAC 2019 virtual Mark Tomlinson
PAC 2019 virtual Mark Tomlinson
 
Introdcution to Adobe CQ
Introdcution to Adobe CQIntrodcution to Adobe CQ
Introdcution to Adobe CQ
 
JS digest. Decemebr 2017
JS digest. Decemebr 2017JS digest. Decemebr 2017
JS digest. Decemebr 2017
 
The 5 most common reasons for a slow WordPress site and how to fix them – ext...
The 5 most common reasons for a slow WordPress site and how to fix them – ext...The 5 most common reasons for a slow WordPress site and how to fix them – ext...
The 5 most common reasons for a slow WordPress site and how to fix them – ext...
 
Measuring Web Performance
Measuring Web Performance Measuring Web Performance
Measuring Web Performance
 
Adobe CQ5 for Developers - Introduction
Adobe CQ5 for Developers - IntroductionAdobe CQ5 for Developers - Introduction
Adobe CQ5 for Developers - Introduction
 
WordPress + NGINX Best Practices with EasyEngine
WordPress + NGINX Best Practices with EasyEngineWordPress + NGINX Best Practices with EasyEngine
WordPress + NGINX Best Practices with EasyEngine
 
Architectures For Scaling Ajax
Architectures For Scaling AjaxArchitectures For Scaling Ajax
Architectures For Scaling Ajax
 
WordPress website optimization
WordPress website optimizationWordPress website optimization
WordPress website optimization
 
An extended explanation of caching
An extended explanation of cachingAn extended explanation of caching
An extended explanation of caching
 
Web performance
Web performanceWeb performance
Web performance
 
Automated Web App Performance Testing Using WebDriver
Automated Web App Performance Testing Using WebDriverAutomated Web App Performance Testing Using WebDriver
Automated Web App Performance Testing Using WebDriver
 
Technical SEO for WordPress - 2019 edition
Technical SEO for WordPress - 2019 editionTechnical SEO for WordPress - 2019 edition
Technical SEO for WordPress - 2019 edition
 
Webpack & React Performance in 16+ Steps
Webpack & React Performance in 16+ StepsWebpack & React Performance in 16+ Steps
Webpack & React Performance in 16+ Steps
 
Web performance testing with web driver
Web performance testing with web driverWeb performance testing with web driver
Web performance testing with web driver
 
Search in WordPress - how it works and howto customize it
Search in WordPress - how it works and howto customize itSearch in WordPress - how it works and howto customize it
Search in WordPress - how it works and howto customize it
 

Similar to Meta Refresh 2014

Developing High Performance Web Apps - CodeMash 2011
Developing High Performance Web Apps - CodeMash 2011Developing High Performance Web Apps - CodeMash 2011
Developing High Performance Web Apps - CodeMash 2011
Timothy Fisher
 
10 Tips to make your Website lightning-fast - SMX Stockholm 2012
10 Tips to make your Website lightning-fast - SMX Stockholm 201210 Tips to make your Website lightning-fast - SMX Stockholm 2012
10 Tips to make your Website lightning-fast - SMX Stockholm 2012
Bastian Grimm
 
Developing High Performance Web Apps
Developing High Performance Web AppsDeveloping High Performance Web Apps
Developing High Performance Web Apps
Timothy Fisher
 
Cvcc performance tuning
Cvcc performance tuningCvcc performance tuning
Cvcc performance tuning
John McCaffrey
 
performance.ppt
performance.pptperformance.ppt
performance.ppt
fakeaccount225095
 
High performance website
High performance websiteHigh performance website
High performance websiteChamnap Chhorn
 
Minimize website page loading time – 20+ advanced SEO tips
Minimize website page loading time – 20+ advanced SEO tipsMinimize website page loading time – 20+ advanced SEO tips
Minimize website page loading time – 20+ advanced SEO tips
CgColors
 
Progressive Downloads and Rendering
Progressive Downloads and RenderingProgressive Downloads and Rendering
Progressive Downloads and Rendering
Stoyan Stefanov
 
Web Optimisation
Web OptimisationWeb Optimisation
Web Optimisation
Gregory Benner
 
Does This Theme Make My Website Look Fat? (Wordcamp SLC 2013)
Does This Theme Make My Website Look Fat? (Wordcamp SLC 2013)Does This Theme Make My Website Look Fat? (Wordcamp SLC 2013)
Does This Theme Make My Website Look Fat? (Wordcamp SLC 2013)
Adam Dunford
 
Orlando DNN Usergroup Pres 12/06/11
Orlando DNN Usergroup Pres 12/06/11Orlando DNN Usergroup Pres 12/06/11
Orlando DNN Usergroup Pres 12/06/11
Jess Coburn
 
Webpack and Web Performance Optimization
Webpack and Web Performance OptimizationWebpack and Web Performance Optimization
Webpack and Web Performance Optimization
Chen-Tien Tsai
 
Velocity NY 2013 - From Slow to Fast: Improving Performance on Intuit Website...
Velocity NY 2013 - From Slow to Fast: Improving Performance on Intuit Website...Velocity NY 2013 - From Slow to Fast: Improving Performance on Intuit Website...
Velocity NY 2013 - From Slow to Fast: Improving Performance on Intuit Website...
Jay Hung
 
implement lighthouse-ci with your web development workflow
implement lighthouse-ci with your web development workflowimplement lighthouse-ci with your web development workflow
implement lighthouse-ci with your web development workflow
WordPress
 
Design4Drupal Boston 2013 - Bumps in the Road to Responsive
Design4Drupal Boston 2013 - Bumps in the Road to ResponsiveDesign4Drupal Boston 2013 - Bumps in the Road to Responsive
Design4Drupal Boston 2013 - Bumps in the Road to ResponsiveSalem Ghoweri
 
Squeeze Maximum Performance From Your Joomla Website
Squeeze Maximum Performance From Your Joomla WebsiteSqueeze Maximum Performance From Your Joomla Website
Squeeze Maximum Performance From Your Joomla Website
SiteGround.com
 
Responsive content
Responsive contentResponsive content
Responsive content
honzie
 
Progressive downloads and rendering (Stoyan Stefanov)
Progressive downloads and rendering (Stoyan Stefanov)Progressive downloads and rendering (Stoyan Stefanov)
Progressive downloads and rendering (Stoyan Stefanov)Ontico
 
Progressive Downloads and Rendering - take #2
Progressive Downloads and Rendering - take #2Progressive Downloads and Rendering - take #2
Progressive Downloads and Rendering - take #2
Stoyan Stefanov
 
Performance on the Yahoo! Homepage
Performance on the Yahoo! HomepagePerformance on the Yahoo! Homepage
Performance on the Yahoo! Homepage
Nicholas Zakas
 

Similar to Meta Refresh 2014 (20)

Developing High Performance Web Apps - CodeMash 2011
Developing High Performance Web Apps - CodeMash 2011Developing High Performance Web Apps - CodeMash 2011
Developing High Performance Web Apps - CodeMash 2011
 
10 Tips to make your Website lightning-fast - SMX Stockholm 2012
10 Tips to make your Website lightning-fast - SMX Stockholm 201210 Tips to make your Website lightning-fast - SMX Stockholm 2012
10 Tips to make your Website lightning-fast - SMX Stockholm 2012
 
Developing High Performance Web Apps
Developing High Performance Web AppsDeveloping High Performance Web Apps
Developing High Performance Web Apps
 
Cvcc performance tuning
Cvcc performance tuningCvcc performance tuning
Cvcc performance tuning
 
performance.ppt
performance.pptperformance.ppt
performance.ppt
 
High performance website
High performance websiteHigh performance website
High performance website
 
Minimize website page loading time – 20+ advanced SEO tips
Minimize website page loading time – 20+ advanced SEO tipsMinimize website page loading time – 20+ advanced SEO tips
Minimize website page loading time – 20+ advanced SEO tips
 
Progressive Downloads and Rendering
Progressive Downloads and RenderingProgressive Downloads and Rendering
Progressive Downloads and Rendering
 
Web Optimisation
Web OptimisationWeb Optimisation
Web Optimisation
 
Does This Theme Make My Website Look Fat? (Wordcamp SLC 2013)
Does This Theme Make My Website Look Fat? (Wordcamp SLC 2013)Does This Theme Make My Website Look Fat? (Wordcamp SLC 2013)
Does This Theme Make My Website Look Fat? (Wordcamp SLC 2013)
 
Orlando DNN Usergroup Pres 12/06/11
Orlando DNN Usergroup Pres 12/06/11Orlando DNN Usergroup Pres 12/06/11
Orlando DNN Usergroup Pres 12/06/11
 
Webpack and Web Performance Optimization
Webpack and Web Performance OptimizationWebpack and Web Performance Optimization
Webpack and Web Performance Optimization
 
Velocity NY 2013 - From Slow to Fast: Improving Performance on Intuit Website...
Velocity NY 2013 - From Slow to Fast: Improving Performance on Intuit Website...Velocity NY 2013 - From Slow to Fast: Improving Performance on Intuit Website...
Velocity NY 2013 - From Slow to Fast: Improving Performance on Intuit Website...
 
implement lighthouse-ci with your web development workflow
implement lighthouse-ci with your web development workflowimplement lighthouse-ci with your web development workflow
implement lighthouse-ci with your web development workflow
 
Design4Drupal Boston 2013 - Bumps in the Road to Responsive
Design4Drupal Boston 2013 - Bumps in the Road to ResponsiveDesign4Drupal Boston 2013 - Bumps in the Road to Responsive
Design4Drupal Boston 2013 - Bumps in the Road to Responsive
 
Squeeze Maximum Performance From Your Joomla Website
Squeeze Maximum Performance From Your Joomla WebsiteSqueeze Maximum Performance From Your Joomla Website
Squeeze Maximum Performance From Your Joomla Website
 
Responsive content
Responsive contentResponsive content
Responsive content
 
Progressive downloads and rendering (Stoyan Stefanov)
Progressive downloads and rendering (Stoyan Stefanov)Progressive downloads and rendering (Stoyan Stefanov)
Progressive downloads and rendering (Stoyan Stefanov)
 
Progressive Downloads and Rendering - take #2
Progressive Downloads and Rendering - take #2Progressive Downloads and Rendering - take #2
Progressive Downloads and Rendering - take #2
 
Performance on the Yahoo! Homepage
Performance on the Yahoo! HomepagePerformance on the Yahoo! Homepage
Performance on the Yahoo! Homepage
 

Recently uploaded

FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
Peter Spielvogel
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 

Recently uploaded (20)

FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 

Meta Refresh 2014

Editor's Notes

  1. good morning everyone, I am Aakash, I work with web performance team at Flipkart. Today I will talk about perceived perf. Lets start with this, How many of you feel Flipkart is fast?
  2. These are the guys you should thank or blame when Flipkart is fast/slow. Thats me on top, then Abhilash and then Arya.I take care of desktop site perf, abhilash mobile site and arya of all server side perf.
  3. I really hate slow websites. Developers test websites on fast office connections and get away with it. But In India, we could be subjected to slow connections at any point. You download TV series in night, morning you cross your FUP and your connection goes to 256K.
  4. We curse the products we built. I really hate when I see the title of the tab and a white page below it. The content is actually ready with browser but its waiting for css request to finish. I feel these white pages are the reason web appears slow. And these white pages — browsers are really fast in rendering them.
  5. anything you add to it, browsers have to download it, compute it and render on screen.
  6. this talk we will see how to handle the download part, network part. We will not talk about JS performance, or rendering performance.
  7. Lets start with basics, you do all this. You put css on top, js at bottom. use cdn and follow all those Y! slow rules.
  8. But users still say your site is slow.
  9. To fix things now, lets take a step back and see the fast page on earth.
  10. this is the fastest page on earth.
  11. Lets see why users are saying its slow, what is perceived performance.
  12. This is to me is perceived performance! You don’t always need the fastest bike to win the race You need a good strategy to load content to make appear websites faster.
  13. Its all how your users perceive your page load, whether it loads in a flash or takes ages to load.
  14. You have to make users believe its loading, its loading fast even when its not the case.
  15. Lets see how you can do this.
  16. This is the snapshot of below the fold of our homepage while it is still loading. We put placeholders where content will appear once it loads.
  17. Slow connection: all text visible, action buttons clickable. Fast connection: full width images, parallax scroll. possible because of background:blue
  18. Show precise progress loader when it takes time (gmail) Optimistic actions. (Instagram) Paint what users are seeing right now.
  19. Most important. We will see this in detail through the talk.
  20. What users see on screen is nothing but critical rendering path, lets see how we optimised that.
  21. Next, measuring perceived performance. How do you know whether users feel its fast or slow? Also, you need to know what are you fixing and how it will affect the user.
  22. Running a test locally and seeing the results.
  23. How many of you have used WebpageTest at least once?
  24. One particular, very interesting feature of WPT is the flimstrips. As you hover over frames, it shows you the status of network requests at that time which you could correlate to the content of frame. It tells you how each network request is perceived by the user.
  25. Using WPT, HTTPARCHIVE.org stores historical information about how websites load. Allows you to benchmark against different sites. Here is Flipkart homepage an year ago, now.
  26. “Why is it taking 715ms to download a 5kb image” exact quote from one of our emails.
  27. Bigger question- How often are users seeing the page Webpagetest is seeing? How often are they seeing the slow requests, how often are they seeing the page load like in video on httparchive?
  28. thats why we need real user monitoring, we need data from actual users.
  29. browsers fire this when all requests start before this event complete.
  30. Gives a detailed break down of main request.
  31. Enter Resource Timing API
  32. This is what we observed. Complete CHAOS, So many requests starting, all wanting to complete as soon as possible.
  33. To get better idea, We constructed the waterfall from startTime and duration of requests. We found lots of optimisations possible, which would give biggest benefit?
  34. We went on identify critical requests. CSS logo main sprite banner - occupying more than 50% of screen.
  35. JS cleanup is the last thing you should do for performance optimisation.
  36. WE grouped our requests. Let browser handle them, make them discoverable to browsers as soon as possible via markup itself.
  37. All in all, data by resource timing APIs is a gold mine. There is lots to discover from it.
  38. 730px x 300px banner takes 380ms to load.
  39. Very easy to wrongly implement. They could impact overall page performance if not implemented correctly.
  40. three images, one on each slide. if you load all of them in parallel. each of them would load in 832ms, because they all compete for bandwidth
  41. Load visible images via markup, rest when connection is idle.
  42. Our users navigate a lot between browse and product pages.
  43. Experimented on mobile site, coming soon on desktop.
  44. This is how flipkart looked on Diwali, then christmas and latest-&gt; valentines day. Frankly, How many of you like these themes? The idea was that the christmas tree should load after product images, banners.
  45. Guidelines for themes.
  46. Submenus make it huge, categories expanded over time and exploded the menu.
  47. on a data card like connection. for every page view.
  48. Simillar gains on mobile
  49. Its very bad practise in code, soon everyone exploits this.’ At one point most of our search queries were redirects. We saved 700ms (median) in redirects on search pages. Increased searches per visit and everything else related
  50. otherwise you will be left redirecting users here and there.
  51. It makes things easier in longer run.
  52. Most of things we discussed applied to both mobile/desktop.
  53. Performance is a moving target, you can’t do once and forget.
  54. performance team to evangelise performance to other team.s
  55. Prefetching is the future of performance, to give near instant loads like native apps.
  56. lets compare Flipkart mobile app, vs iOS app When you open Flipkart app
  57. Tell a web developer, you could download 8.5mb of data on client, how happy he would be! With this Apps could show splash screens, stale data and buy more time to load. But moment you hit across a webview in app, it shows a white page!