Download - Measuring Web Performance - HighEdWeb Edition

Transcript
Page 1: Measuring Web Performance - HighEdWeb Edition

Measuring Web PerformanceDave Olsen, West Virginia UniversityHighEdWeb, October 6

@dmolsen, dmolsen.com

Page 2: Measuring Web Performance - HighEdWeb Edition

Dave OlsenProfessional TechnologistWest Virginia University

About Me

@dmolsen

Page 3: Measuring Web Performance - HighEdWeb Edition

What I’ll Talk About

• Quick Intro About Why We Should Care About Web Perf

• How to Add Performance to Your Workflow

• Setting Up a Device Lab

Page 4: Measuring Web Performance - HighEdWeb Edition

Why Should You Care About Web Performance?

Part Une:

Page 5: Measuring Web Performance - HighEdWeb Edition

The average weight of a home page today.

Source: HTTP Archive

Images JavaScript

Flash

HTM

LC

SSOther

77%

1.5 MB

Page 6: Measuring Web Performance - HighEdWeb Edition

“RWD makes your website mobile friendly.”

The marketing of responsive web design...

Page 7: Measuring Web Performance - HighEdWeb Edition

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

Source: Podjarny

72%

Page 8: Measuring Web Performance - HighEdWeb 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 Edition

Over Downloading

Download & HideDownload & ShrinkDownload & Ignore

PRIMARY PERFORMANCE ISSUES FOR RWD

Poor Networks

High LatencyVariable Bandwidth

Packet Loss

Page 10: Measuring Web Performance - HighEdWeb Edition

Current Dev Practices + Desktop First RWD

Web Performance Blues

Page 11: Measuring Web Performance - HighEdWeb Edition

RWD could also mean responsible web design.

Start with the small screen & its

constraints.

Page 12: Measuring Web Performance - HighEdWeb Edition

Mobile first means performance first.

First Steps

Page 13: Measuring Web Performance - HighEdWeb Edition

Adding Web Performance to Your Workflow

Part Deux:

Page 14: Measuring Web Performance - HighEdWeb Edition

Web Perf Optimization Tenets Reduce requests. Reduce asset size.

Reduce page render time.

Page 15: Measuring Web Performance - HighEdWeb Edition

Introducing the TeamBecause performance is a team effort.

Page 16: Measuring Web Performance - HighEdWeb Edition

Introducing the Team

“Dave”full stack dev

“Adam”front-end dev

Any resemblance to real persons, living or dead, is purely coincidental. Serious.

Page 17: Measuring Web Performance - HighEdWeb Edition

Parts of a Project

The Six Parts of a Project*1. First Steps2. Design & Production3. Programming4.Testing5. Deployment6.Monitoring

* - For the purposes of this talk.

Page 18: Measuring Web Performance - HighEdWeb Edition

First Steps

The Six Parts of a Project1. First Steps2. Design & Production3. Programming4.Testing5. Deployment6.Monitoring

Page 19: Measuring Web Performance - HighEdWeb Edition

The New Project Should...1. Look cool2. Have pizzazz3. Use brand colors ...

99. Be fast98. Look good on an iPhone

First Steps

Page 20: Measuring Web Performance - HighEdWeb Edition

Set a Performance Budget

First Steps

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

http://timkadlec.com/2013/01/setting-a-performance-budget/

Page 21: Measuring Web Performance - HighEdWeb Edition

First Steps

Learn to Love the Inspectorhttp://bit.ly/15sWYsx

Page 22: Measuring Web Performance - HighEdWeb Edition

First Steps

Save Yourself a Headache &Disable Your Cache When Testing

Page 23: Measuring Web Performance - HighEdWeb Edition

1. First Steps2.Design & Production3. Programming4.Testing5. Deployment6.Monitoring

Design & Performance

The Six Parts of a Project

Page 24: Measuring Web Performance - HighEdWeb Edition

Design & Performance

Things to Keep in Mind...

Images are the devil. Consider using CSS, sprites, symbol fonts, & SVG.

display: none; is definitely the devil.

Lots of things are the devil. Just understand the trade-offs when using

social widgets, web fonts & CSS.The “devil” talk is tongue-in-cheek. Serious.

Page 25: Measuring Web Performance - HighEdWeb Edition

Responsive Images

Most solutions are silly & verbose.

Focus on properly formatting images. Lazy load them & don’t

worry about “high DPI.”

Addy Osmani’s Tool Listhttp://addyosmani.com/blog/image-

optimization-tools/

Page 26: Measuring Web Performance - HighEdWeb Edition

Design & Performance

Explaining the Network Panel:The Waterfall

Page 27: Measuring Web Performance - HighEdWeb Edition

Design & Performance

Explaining the Network Panel:Resource Size

transferred size

real size

re-order

Page 28: Measuring Web Performance - HighEdWeb Edition

Design & Performance

latency + download

latency

re-order

Explaining the Network Panel:Latency

Page 29: Measuring Web Performance - HighEdWeb Edition

Design & Performance

domcontentloaded

onload

Explaining the Network Panel:Events

Page 30: Measuring Web Performance - HighEdWeb Edition

Design & Performance

save HAR file locally

Explaining the Network Panel:Saving Files for Comparison

Page 31: Measuring Web Performance - HighEdWeb Edition

Best request is no request. Worst request is one that

blocks the parser.

Source: Ilya Grigorik

- Ilya Grigorik @ilyagrigorik

Design & Performance

Page 32: Measuring Web Performance - HighEdWeb Edition

Corollary: The next best request is the one not parsed.

Source: My brain

- Me @dmolsen

“”

Design & Performance

Page 33: Measuring Web Performance - HighEdWeb Edition

Design & Performance

Your goal when using the Network Panel is to shorten & compress the waterfall by focusing on the

critical path.

Focus on delivering content that’s above the fold.

Remember, test the squishy too.

Page 34: Measuring Web Performance - HighEdWeb Edition

Design & Performance

Explaining the Profiles Panel:CSS Selectors

Page 35: Measuring Web Performance - HighEdWeb Edition

Design & Performance

Explaining the Profiles Panel:CSS Selectors

Page 36: Measuring Web Performance - HighEdWeb Edition

CodeKit

CodeKit: Web Perf in Your Workflowhttp://incident57.com/codekit/

Design & Performance

Page 37: Measuring Web Performance - HighEdWeb Edition

Programming & Performance

The Six Parts of a Project1. First Steps2. Design & Production3.Programming4.Testing5. Deployment6.Monitoring

Page 38: Measuring Web Performance - HighEdWeb Edition

Programming & Performance

Things to Keep in Mind...

JavaScript libraries are devils. Consider using microjs.com or vanilla JS.

Defer loading of JavaScript. Use onTouch events when appropriate.

Reflow & repaints are the devil.

The “devil” talk is tongue-in-cheek. Serious.

Page 39: Measuring Web Performance - HighEdWeb Edition

Programming & Performance

Explaining the Timeline Panel

Page 40: Measuring Web Performance - HighEdWeb Edition

Test & Optimize Performance with jsPerfhttp://jsperf.com

Programming & Performance

Page 41: Measuring Web Performance - HighEdWeb Edition

Responsive Design + Server-sidehttp://www.slideshare.net/dmolsenwvu/ress-an-evolution-of-responsive-web-design

http://www.slideshare.net/dmolsenwvu/ress-an-evolution-of-responsive-web-design

Page 42: Measuring Web Performance - HighEdWeb Edition

Testing

The Six Parts of a Project1. First Steps2. Design & Production3. Programming4.Testing5. Deployment6.Monitoring

Page 43: Measuring Web Performance - HighEdWeb Edition

PageSpeed Insights Extensionhttps://developers.google.com/speed/pagespeed/insights

Testing

Page 44: Measuring Web Performance - HighEdWeb Edition

Remote Debugging

Testing

Page 45: Measuring Web Performance - HighEdWeb Edition

Google Analytics Site Speed

http://www.httpwatch.comIE & Firefox Performance Issues

Testing

Page 46: Measuring Web Performance - HighEdWeb Edition

Testing

WebPagetesthttp://www.webpagetest.org

Page 47: Measuring Web Performance - HighEdWeb Edition

Google Analytics Site Speed

http://www.slideshare.net/AndyDavies/web-page-test-beyond-the-basicsWebPagetest - Beyond the Basics

Testing

Page 48: Measuring Web Performance - HighEdWeb Edition

Google Analytics Site Speed

Customizing WebPagetest:Capturing Events After onLoad

Testing

Page 49: Measuring Web Performance - HighEdWeb Edition

Customizing WebPagetest:Blackholes for Requests

Testing

Page 50: Measuring Web Performance - HighEdWeb Edition

Google Analytics Site Speed

Customizing WebPagetest:Scripting & Custom Viewports

Testing

Page 51: Measuring Web Performance - HighEdWeb Edition

Customizing WebPageTest:Video Comparison

Testing

Page 52: Measuring Web Performance - HighEdWeb Edition

Customizing WebPageTest:Video Comparison - Small Viewport

Testing

Page 53: Measuring Web Performance - HighEdWeb Edition

charlesproxy.com

SLOWING THINGS DOWN

ThrottleCharles

Testing

Page 54: Measuring Web Performance - HighEdWeb Edition

Using Charles Proxyhttp://blog.cloudfour.com/using-charles-proxy-to-examine-ios-apps/

Testing

Page 55: Measuring Web Performance - HighEdWeb Edition

Testing

BrowserStackhttp://browserstack.com

Page 56: Measuring Web Performance - HighEdWeb Edition

Deployment

The Six Parts of a Project1. First Steps2. Design & Production3. Programming4.Testing5.Deployment6.Monitoring

Page 57: Measuring Web Performance - HighEdWeb Edition

Deployment

Finally getting to “traditional” performance techniques...

Performance can’t simply be tacked onto the end of a project.

Page 58: Measuring Web Performance - HighEdWeb Edition

Concatenate files within reason.

Minify files as appropriate.

Make sure the server supports file compression & cache headers.

Deployment

Things to Keep in Mind...

Page 59: Measuring Web Performance - HighEdWeb Edition

mod_pagespeed Automates a Lothttp://developers.google.com/speed/pagespeed/mod

Deployment

Page 60: Measuring Web Performance - HighEdWeb Edition

The Six Parts of a Project

Monitoring

1. First Steps2. Design & Production3. Programming4.Testing5. Deployment6.Monitoring

Page 61: Measuring Web Performance - HighEdWeb Edition

Google Analytics’ Site Speed

Monitoring

Page 62: Measuring Web Performance - HighEdWeb Edition

PageSpeed Insights Extensionhttps://developers.google.com/speed/pagespeed/insights

Monitoring

Page 63: Measuring Web Performance - HighEdWeb Edition

Setting Up a Device LabPart Trois:

Page 64: Measuring Web Performance - HighEdWeb Edition

eBay MobileKarma.com Cellphone store leftoversOpen device labs

GET YOUR HANDS ON REAL DEVICES

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

Page 65: Measuring Web Performance - HighEdWeb Edition

OpenDeviceLab.com

Page 66: Measuring Web Performance - HighEdWeb 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 67: Measuring Web Performance - HighEdWeb Edition

WEB PERF TWEEPS TO FOLLOW

@ilyagrigorik

@andydavies

@souders @patmeenan

@stoyanstefanov

@tameverts @yoavweiss@scottjehl

just a sampling...

Page 68: Measuring Web Performance - HighEdWeb Edition

Questions?

Page 69: Measuring Web Performance - HighEdWeb Edition

Dave OlsenProfessional TechnologistWest Virginia University

@dmolsen

Thanks for Listening

Illustrations by Graham Curry