measuring web performance (highedweb fl edition)

68
Measuring Web Performance Dave Olsen, @dmolsen West Virginia University HighEdWeb Florida http://flic.kr/p/7A8xxN

Upload: dave-olsen

Post on 27-Jan-2015

109 views

Category:

Technology


0 download

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 HighEdWeb Florida.

TRANSCRIPT

Page 1: Measuring Web Performance (HighEdWeb FL Edition)

MeasuringWeb PerformanceDave Olsen, @dmolsenWest Virginia UniversityHighEdWeb Floridahttp://flic.kr/p/7A8xxN

Page 2: Measuring Web Performance (HighEdWeb FL Edition)

slideshare.net/dmolsenwvu

Page 3: Measuring Web Performance (HighEdWeb FL Edition)

introduction about me@dmolsen

Page 4: Measuring Web Performance (HighEdWeb FL Edition)

The Mobile Book

• Covers everything mobile

• Produced by Smashing Media

• Chapters by Peter-Paul Koch, Stephanie Rieger, Brad Frost, Trent Walton, me & others

• Door prize here!

http://the-mobile-book.com

Page 5: Measuring Web Performance (HighEdWeb FL Edition)

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

Page 6: Measuring Web Performance (HighEdWeb FL Edition)

WHY SHOULD WE CARE ABOUT WEB PERFORMANCE?

http://flic.kr/p/4JY1Yr

Page 7: Measuring Web Performance (HighEdWeb FL Edition)

brad’s iceberg

© Brad Frost

© Brad Frost

Page 8: Measuring Web Performance (HighEdWeb FL Edition)

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

Page 9: Measuring Web Performance (HighEdWeb FL Edition)

brad’s iceberg

© Brad Frost© Brad Frost

© Brad Frost

Page 10: Measuring Web Performance (HighEdWeb FL Edition)

The average weight of a web page today.

Source: HTTP Archive

Images JavaScript

Flash

HTM

LC

SSOther

77%

1.3 MB

Page 11: Measuring Web Performance (HighEdWeb FL Edition)

RWD sites whose small screen design weighs the same as the large screen design.

Source: Podjarny

72%

Page 13: Measuring Web Performance (HighEdWeb FL Edition)

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

Page 14: Measuring Web Performance (HighEdWeb FL Edition)

Mobile first means performance first.

(start thinking about performance at the design stage)

Page 15: Measuring Web Performance (HighEdWeb FL Edition)

Over Downloading

Download & HideDownload & ShrinkDownload & Ignore

PRIMARY PERFORMANCE ISSUES FOR RWD

Poor Networks

High LatencyVariable Bandwidth

Packet Loss

Page 16: Measuring Web Performance (HighEdWeb FL Edition)

MOBILE OPTIMIZATION FOCUS

1. Reduce requests2. Reduce asset size3. Speed-up page

render

http://flic.kr/p/4zzKee

Page 17: Measuring Web Performance (HighEdWeb FL Edition)

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

FE

P

FE

FE

FE

Page 18: Measuring Web Performance (HighEdWeb FL Edition)

Best request is no request. Worst request is one that

blocks the parser.

Source: Ilya Grigorik

” - Ilya Grigorik @ilyagrigorik

Page 19: Measuring Web Performance (HighEdWeb FL Edition)

Image compression

Use a service like kraken.io to optimize images. Also use CSS sprites as appropriate.

Compress HTML & CSS

Use mod_deflate to make sure text-based assets are compressed for transfer.

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

P

SS

FE

P

FE

Page 20: Measuring Web Performance (HighEdWeb FL Edition)

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

FE

FE

FE

FE

FE

Page 21: Measuring Web Performance (HighEdWeb FL Edition)

Testing Tools

toolbox, tools

WEB PERFORMANCE TOOLS

http://flic.kr/p/4BZsQJ

Page 22: Measuring Web Performance (HighEdWeb FL Edition)

DiagnosticTools

AutomatedTools

Page 23: Measuring Web Performance (HighEdWeb FL Edition)

DiagnosticTools

AutomatedTools

Page 24: Measuring Web Performance (HighEdWeb FL Edition)

LEARN TO LOVE THE INSPECTOR

Page 25: Measuring Web Performance (HighEdWeb FL Edition)

DEVTOOLS CAN DO THAT?http://bit.ly/15sWYsx

Page 26: Measuring Web Performance (HighEdWeb FL Edition)

FOLLOW ALONG BY OPENING THE DEVELOPER TOOLS IN CHROME

Page 27: Measuring Web Performance (HighEdWeb FL Edition)

SAVE YOURSELF A HEADACHE &DISABLE CACHE WHEN TESTING

Page 28: Measuring Web Performance (HighEdWeb FL Edition)

EXPLAINING THE NETWORK PANEL:RESOURCE SIZE

transferred size

real size

re-order

Page 29: Measuring Web Performance (HighEdWeb FL Edition)

EXPLAINING THE NETWORK PANEL:LATENCY

latency + download

latency

re-order

Page 30: Measuring Web Performance (HighEdWeb FL Edition)

EXPLAINING THE NETWORK PANEL:EVENTS

domcontentloaded

onload

Page 31: Measuring Web Performance (HighEdWeb FL Edition)

EXPLAINING THE NETWORK PANEL:SAVING HAR FILES FOR COMPARISON

save HAR file locally

Page 32: Measuring Web Performance (HighEdWeb FL Edition)

A narrower, shorter waterfall is the goal.

Page 33: Measuring Web Performance (HighEdWeb FL Edition)

http://flic.kr/p/bMdzZ2

Test the squishy.

default styles vs. min-width vs. max-width

Page 34: Measuring Web Performance (HighEdWeb FL Edition)

Perform

ance

http://timkadlec.com/2013/01/setting-a-performance-budget/http://flic.kr/p/7BBs6e

A budget is a guide, not a hard & fast limit. Performance tweaks are compromises.

Page 35: Measuring Web Performance (HighEdWeb FL Edition)

EXPLAINING THE TIMELINE PANEL

Page 36: Measuring Web Performance (HighEdWeb FL Edition)

EXPLAINING THE PROFILES PANEL:CSS SELECTORS

Page 37: Measuring Web Performance (HighEdWeb FL Edition)

EXPLAINING THE PROFILES PANEL:CSS SELECTORS

Page 38: Measuring Web Performance (HighEdWeb FL Edition)

EXPLAINING THE AUDITS PANEL

Page 39: Measuring Web Performance (HighEdWeb FL Edition)

PAGESPEED INSIGHTS EXTENSIONhttps://developers.google.com/speed/pagespeed/insights

Page 40: Measuring Web Performance (HighEdWeb FL Edition)

REMOTE DEBUGGING

Page 41: Measuring Web Performance (HighEdWeb FL Edition)

Google Analytics Site Speed

http://www.httpwatch.comIE & FIREFOX PERFORMANCE ISSUES

Page 42: Measuring Web Performance (HighEdWeb FL Edition)

Google Analytics Site Speed

GOOGLE ANALYTICS’ SITE SPEED

Page 43: Measuring Web Performance (HighEdWeb FL Edition)

PERFORMANCE TESTING PROXIES

MobitestWebPagetest

Page 45: Measuring Web Performance (HighEdWeb FL Edition)

Google Analytics Site Speed

CUSTOMIZING WebPagetest:CAPTURING EVENTS AFTER ONLOAD

Page 46: Measuring Web Performance (HighEdWeb FL Edition)

CUSTOMIZING WebPagetest:BLACKHOLES FOR REQUESTS

Page 47: Measuring Web Performance (HighEdWeb FL Edition)

Google Analytics Site Speed

CUSTOMIZING WebPagetest:SCRIPTING & CUSTOM VIEWPORTS

Page 48: Measuring Web Performance (HighEdWeb FL Edition)

CUSTOMIZING WebPageTest:VIDEO COMPARISON

Page 49: Measuring Web Performance (HighEdWeb FL Edition)

CUSTOMIZING WebPageTest:VIDEO COMPARISON - SMALL VIEWPORT

Page 50: Measuring Web Performance (HighEdWeb FL Edition)

mobile bookmarklet

THE ULTIMATE MOBILE PERFORMANCE BOOKMARKLET

Page 51: Measuring Web Performance (HighEdWeb FL Edition)

charlesproxy.com

SLOWING THINGS DOWN

ThrottleCharles

Page 52: Measuring Web Performance (HighEdWeb FL Edition)

USING CHARLES PROXYhttp://blog.cloudfour.com/using-charles-proxy-to-examine-ios-apps/

Page 53: Measuring Web Performance (HighEdWeb FL Edition)

TEST & OPTIMIZE JAVASCRIPT WITH JSPERFhttp://jsperf.com

Page 54: Measuring Web Performance (HighEdWeb FL Edition)

W3C’s NAVIGATION TIMINGhttp://www.w3.org/TR/navigation-timing/

http://www.html5rocks.com/en/tutorials/webperformance/basics/

Page 55: Measuring Web Performance (HighEdWeb FL Edition)

DiagnosticTools

AutomatedTools

Page 56: Measuring Web Performance (HighEdWeb FL Edition)

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

Page 57: Measuring Web Performance (HighEdWeb FL Edition)

CodeKit

CODEKIT: WEB PERF IN YOUR WORKFLOW

  Optimize Images  Combine & Minify

Features

http://incident57.com/codekit/

Page 58: Measuring Web Performance (HighEdWeb FL Edition)

DEVICES

http://flic.kr/p/cfkZhN

Page 59: Measuring Web Performance (HighEdWeb FL Edition)

charlesproxy.com

EMULATING MOBILE DEVICES

EmulatorsBrowserStack

Page 60: Measuring Web Performance (HighEdWeb FL Edition)

eBay MobileKarma.com Cellphone store leftoversOpen device labs

GET YOUR HANDS ON REAL DEVICES

http://flic.kr/p/7972f6

Page 61: Measuring Web Performance (HighEdWeb FL Edition)

OPENDEVICELAB.COM

Page 62: Measuring Web Performance (HighEdWeb FL Edition)

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 Touch w/ RetinaSamsung Fascinate +Google Nexus One +

$537

Example:

Page 63: Measuring Web Performance (HighEdWeb FL Edition)

ADOBE EDGE INSPECT(THE APP FORMERLY KNOWN AS ADOBE SHADOW)

Page 64: Measuring Web Performance (HighEdWeb FL Edition)

RESS: AN EVOLUTION OF RESPONSIVE DESIGN

http://slidesha.re/KtByzQ

Page 65: Measuring Web Performance (HighEdWeb FL Edition)

WEB PERF TWEEPS TO FOLLOW

@ilyagrigorik

@andydavies

@souders @patmeenan

@stoyanstefanov

@joshuabixby @yoavweiss@scottjehl

just a sampling

Page 66: Measuring Web Performance (HighEdWeb FL Edition)

Doug GapinskiStrategistmStoner

@thedougco

SPECIAL THANKS TO...

Page 67: Measuring Web Performance (HighEdWeb FL Edition)

QUESTIONS?

Page 68: Measuring Web Performance (HighEdWeb FL Edition)

Dave OlsenProfessional TechnologistWest Virginia University

@dmolsen

THANKS FOR LISTENING