Top Banner
Measuring Web Performance Dave Olsen, West Virginia University HighEdWeb, October 6 @dmolsen, dmolsen.com
69

Measuring Web Performance - HighEdWeb Edition

Jan 27, 2015

Download

Technology

Dave Olsen

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 websites look good across that spectrum of devices we may forget that we need to make sure that our websites 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 performance of your websites 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 Olsen’s “Optimization for Mobile” chapter in Smashing Magazine’s “The Mobile Book.”
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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