View
16.997
Download
0
Category
Tags:
Preview:
DESCRIPTION
Today, a web page can be delivered to desktop computers, televisions, or handheld devices like tablets or phones. While a technique like responsive design helps ensure that our web sites look good across that spectrum of devices we may forget that we need to make sure that our web sites also perform well across that same spectrum. More and more of our users are shifting their Internet usage to these more varied platforms and connection speeds with some moving entirely to mobile Internet. In this session we’ll look at the tools that can help you understand, measure and improve the web performance of your web sites and applications. The talk will also discuss how new server-side techniques might help us optimize our front-end performance. Finally, since the best way to test is to have devices in your hand, we’ll discuss some tips for getting your hands on them cheaply. This presentation builds upon Dave’s “Optimization for Mobile” chapter in Smashing Magazine’s “The Mobile Book.” This talk was given at the Responsive Web Design Summit hosted by Environments for Humans.
Citation preview
MeasuringWeb PerformanceDave Olsen, @dmolsenWest Virginia UniversityRWD Summithttp://flic.kr/p/7A8xxN
slideshare.net/dmolsenwvu
introduction about me@dmolsen
What I’ll Talk About
• Quick Intro About Why We Should Care About Web Perf
• Tools for Measuring Web Performance
• Setting Up a Device Lab
• Responsive Design + Server-side Solutions
WHY SHOULD WE CARE ABOUT WEB PERFORMANCE?
http://flic.kr/p/4JY1Yr
brad’s iceberg
© Brad Frost
© Brad Frost
The way in which CSS media queries have been promoted for
mobile hides tough problems and gives developers a false
promise of a simple solution for designing for small screens.
Source: Jason Grigsby on Speakerdeck
“
” - Jason Grigsby @grigs
brad’s iceberg
© Brad Frost© Brad Frost
© Brad Frost
The average weight of a web page today.
Source: HTTP Archive
Images JavaScript
Flash
HTM
LC
SSOther
77%
1.3 MB
RWD sites whose small screen design weighs the same as the large screen design.
Source: Podjarny
72%
Users expect your mobile site to load as quickly as your desktop site.
71%
Source: Gomez
Bounce Rate Conversion Rate Cart Size Page Views
200ms - - - -1.2%
500ms -4.7% -1.9% - -5.7%
1000ms -8.3% -3.5% -2.1% -9.4%
CASE STUDY: MOBILE PERFORMANCE EFFECT ON BUSINESS
Source: Web Performance Today
Mobile first means performance first.
(start thinking about performance at the design stage)
Over Downloading
Download & HideDownload & ShrinkDownload & Ignore
PRIMARY PERFORMANCE ISSUES FOR RWD
Poor Networks
High LatencyVariable Bandwidth
Packet Loss
BREAKING DOWN A REQUEST
DNS (1ms)
Connecting (61ms)
Waiting (199ms)
Receiving (790ms)
MOBILE OPTIMIZATION FOCUS
1. Reduce requests2. Reduce asset size3. Speed-up page
render
http://flic.kr/p/4zzKee
Best request is no request. Worst request is one that
blocks the parser.
Source: Ilya Grigorik
“
” - Ilya Grigorik @ilyagrigorik
Browser cache
The simplest way to reduce requests is to make sure the browser doesn’t need to make them. Make sure assets are bring cached on the browser.
ConcatenateJS & CSS
Combine similar files together in one or multiple larger files to reduce requests. May harm performance too.
Lazy load content
Don’t make requests until necessary. Filament Group’s AJAX Include Pattern or lazyBlock.
data: URI For small images & fonts try embedding them in your CSS file by using the data: URI.
Conditional loading
Use a resource loader like Modernizr.load to conditionally include JavaScript & CSS files.
1. REDUCE REQUESTS
HTML & CSS compression
Use mod_deflate to make sure text-based assets are compressed for transfer.
Image compression
Use a service like kraken.io to optimize images. Also use CSS sprites as appropriate.
Try to avoid images
When possible think about avoiding images. Implement with CSS or Canvas. Or use SVG or Progressive JPEGs.
Minification Use a minifying service to make sure text-based assets are as small as possible. If using PHP use Minify.
MicroJS or, even better,
Vanilla JS
Avoid using bulky frameworks if you’re using them for simple tasks like selectors. Try microjs.com to find libraries that may be smaller & more suitable. JavaScript also blocks the rendering of the page.
2. REDUCE ASSET SIZE
Avoid DOM reflows &
repaints
By using JS to modify the DOM you can cause unnecessary reflows & repaints of your browser. They slow down page render time as well as burn battery.
Defer loading of JavaScript
Use HTML5’s script defer & async attributes to delay downloading files. Can also insert script elements into the DOM using the onLoad event.
Lazy load JavaScript
Comment out JavaScript that isn’t required at page load. Uncomment & eval() when required.
Touch beats onClick
While not directly related to page render, by making sure your links use a Touch event rather than an onClick event user interactions will speed up by 300ms.
Avoid SM widgets
Try using simple links to services rather than utilizing the JavaScript widgets. They’re performance hogs.
3. SPEED-UP PAGE RENDER
Testing Tools
toolbox, tools
WEB PERFORMANCE TOOLS
http://flic.kr/p/4BZsQJ
DiagnosticTools
AutomatedTools
DiagnosticTools
AutomatedTools
LEARN TO LOVE THE INSPECTOR
FOLLOW ALONG BY OPENING THE DEVELOPER TOOLS IN CHROME
SAVE YOURSELF A HEADACHE &DISABLE CACHE WHEN TESTING
EXPLAINING THE NETWORK PANEL:RESOURCE SIZE
transferred size
real size
re-order
EXPLAINING THE NETWORK PANEL:LATENCY
latency + download
latency
re-order
EXPLAINING THE NETWORK PANEL:EVENTS
domcontentloaded
onload
EXPLAINING THE NETWORK PANEL:SAVING HAR FILES FOR COMPARISON
save HAR file locally
A narrower, shorter waterfall is the goal.
Performance
http://timkadlec.com/2013/01/setting-a-performance-budget/http://flic.kr/p/7BBs6e
A guide, not a hard & fast limit. Performance tweaks are compromises.
EXPLAINING THE TIMELINE PANEL
EXPLAINING THE PROFILES PANEL:CSS SELECTORS
EXPLAINING THE PROFILES PANEL:CSS SELECTORS
EXPLAINING THE AUDITS PANEL
PAGESPEED INSIGHTS EXTENSIONhttps://developers.google.com/speed/pagespeed/insights
REMOTE DEBUGGING
Google Analytics Site Speed
http://www.httpwatch.comIE & FIREFOX PERFORMANCE ISSUES
Google Analytics Site Speed
GOOGLE ANALYTICS’ SITE SPEED
PERFORMANCE TESTING PROXIES
MobitestWebPagetest
Google Analytics Site Speed
http://www.slideshare.net/AndyDavies/web-page-test-beyond-the-basicsWebPagetest - BEYOND THE BASICS
Google Analytics Site Speed
CUSTOMIZING WebPagetest:CAPTURING EVENTS AFTER ONLOAD
CUSTOMIZING WebPagetest:BLACKHOLES FOR REQUESTS
Google Analytics Site Speed
CUSTOMIZING WebPagetest:SCRIPTING & CUSTOM VIEWPORTS
CUSTOMIZING WebPageTest:VIDEO COMPARISON
CUSTOMIZING WebPageTest:VIDEO COMPARISON - SMALL VIEWPORT
mobile bookmarklet
THE ULTIMATE MOBILE PERFORMANCE BOOKMARKLET
charlesproxy.com
SLOWING THINGS DOWN
ThrottleCharles
USING CHARLES PROXYhttp://blog.cloudfour.com/using-charles-proxy-to-examine-ios-apps/
TEST & OPTIMIZE JAVASCRIPT WITH JSPERFhttp://jsperf.com
W3C’s NAVIGATION TIMINGhttp://www.w3.org/TR/navigation-timing/
http://www.html5rocks.com/en/tutorials/webperformance/basics/
DiagnosticTools
AutomatedTools
mod_pagespeed AUTOMATES A LOThttp://developers.google.com/speed/pagespeed/mod
add_head combine_css convert_jpeg_to_progressive convert_meta_tags extend_cache flatten_css_imports inline_css inline_import_to_link inline_javascript rewrite_css rewrite_images rewrite_javascript rewrite_style_attributes_with_url
Default Filters
CodeKit
CODEKIT: WEB PERF IN YOUR WORKFLOW
Optimize Images Combine & Minify
Features
http://incident57.com/codekit/
charlesproxy.com
EMULATING MOBILE DEVICES
EmulatorsBrowserStack
eBay MobileKarma.com Cellphone store leftoversOpen device labs
GET YOUR HANDS ON REAL DEVICES
http://flic.kr/p/7972f6
OPENDEVICELAB.COM
Base on:WiFi-capable, Analytics
Rank, OS, Screen Dimensions, & Cost
Suggested focus: iPod Touch, mid-level
Android, high-end Android, a tablet, Blackberry,
Windows Phone 7
HOW TO DECIDE WHICH TO GET
iPod TouchSamsung Fascinate +Google Nexus +
$438
Example:
ADOBE EDGE INSPECT(THE APP FORMERLY KNOWN AS ADOBE SHADOW)
RESS* can be a scalpel for your responsive designs.
REsponsive Design + Server Side Components
http
://fli
c.kr
/p/a
4VsP
v
One...
URL.Set of Mark-up.
Deployment.
WHY USE RWD
futurefriend.ly
Image & Video Media3rd Party Content
One Set of Mark-up
CHALLENGES FOR RWD
STANDARDS ARE STILL DEVELOPING
What is RESS?
Responsive Web Design +Server Side Components
(I have no idea what becomes of the W, D, or C)
- Luke Wroblewski @lukew
http://www.lukew.com/ff/entry.asp?1392
In a nutshell, RESS combines adaptive layouts with server side component (not full page) optimization. So a single set of page templates define an entire Web site for all devices but key components within that site have device-class specific implementations that are rendered server side.
“
”
http://www.lukew.com/ff/entry.asp?1509
- Luke Wroblewski @lukew
• If you want layout adjustments across devices.• And optimization at the component level to
increase performance or tune user experience.• You trust server-side device detection with
sensible defaults.
“
”
DES
KTO
P W
EBM
-AD
VAN
CED
ress.dmolsen.com
MO
BILE BA
SIC
Infancy
http://flic.kr/p/7B7uyp
RESS IS IN ITS INFANCY
ND data
http://weedygarden.net/2012/05/a-case-for-ress/
Large Screen: 136 requests @ 2.7MB
Small Screen: 23 requests @ 291K
developers and designers
http://flic.kr/p/7Ma9n
DESIGNERS + DEVELOPERS?
Two Possible Solutions
Server-sideSolutions
http://flic.kr/p/9jatna
Browser Detection#1
Server-side Feature Detection#2
• Requires server-side languages.
• Server-side feature detection so it can be spoofed.
• RESS isn’t a silver bullet.
• Data needs to be separated from layout.
CHALLENGES FOR RESS
- Jon Arnes Sæterås @jonarnes
http://mpulp.mobi/2011/05/next-steps-of-responsive-web-design/
It is not only the design of the web site and the layout of content that needs to be adapted or enhanced; the idea of being responsive, adaptive and enhancing, must be implemented in the whole value chain.
“
”
WEB PERF TWEEPS TO FOLLOW
@ilyagrigorik
@andydavies
@souders @patmeenan
@stoyanstefanov
@joshuabixby @yoavweiss@scottjehl
just a sampling
Doug GapinskiStrategistmStoner
@thedougco
SPECIAL THANKS TO...
QUESTIONS?
Dave OlsenProfessional TechnologistWest Virginia University
@dmolsen
THANKS FOR LISTENING
Recommended