Web Performance in

Similar documents
Executive Summary. Performance Report for: The web should be fast. How does this affect me?

Executive Summary. Performance Report for: The web should be fast. Top 1 Priority Issues. How does this affect me?

Executive Summary. Performance Report for: The web should be fast. Top 4 Priority Issues

Site Speed: To Measure Is To Know. Sava Sertov QA Technical Lead ecommera

Executive Summary. Performance Report for: The web should be fast. Top 5 Priority Issues. How does this affect me?

Executive Summary. Performance Report for: The web should be fast. Top 5 Priority Issues. How does this affect me?

Matteo Fogli. Web Performance

Test all the things! Get productive with automated testing in Drupal 8. Sam Becker

Executive Summary. Performance Report for: The web should be fast. Top 5 Priority Issues. How does this affect me?

Executive Summary. Performance Report for: The web should be fast. Top 5 Priority Issues. How does this affect me?

Executive Summary. Performance Report for: The web should be fast. Top 5 Priority Issues. How does this affect me?

Executive Summary. Performance Report for: The web should be fast. Top 5 Priority Issues. How does this affect me?

Web Development for Dinosaurs An Introduction to Modern Web Development

AGENCE WEB MADE IN DOM

Drupal Frontend Performance & Scalability

Website Acceleration with mod_pagespeed

90 Minute Optimization Life Cycle

Webpack 2 The last bundler you would need in Vijay Dharap, Principal Architect, Infosys

Exploring Chrome Internals. Darin Fisher May 28, 2009

Cisco Spark Widgets Technical drill down

Mobile Assets. Rainer Borchert, Google. Industry Leader

Executive Summary. Performance Report for: The web should be fast. Top 5 Priority Issues. How does this affect me?

How to get a perfect 100 in Google PageSpeed Insights

Web Architecture Review Sheet

Advanced Web Services with JSON API

Executive Summary. Performance Report for: The web should be fast. Top 5 Priority Issues

Keys to Web Front End Performance Optimization

Planning & Managing Migrations. Aimee Degnan & Ryan Weal

Client-side Debugging. Gary Bettencourt

Offline-first PWA con Firebase y Vue.js

Executive Summary. Performance Report for: The web should be fast. Top 5 Priority Issues. How does this affect me?

Executive Summary. Performance Report for: The web should be fast. Top 5 Priority Issues. How does this affect me?

Fixed Size Ad Specifications

Executive Summary. Performance Report for: The web should be fast. Top 5 Priority Issues. How does this affect me?

Executive Summary. Performance Report for: The web should be fast. Top 5 Priority Issues

Software. Full Stack Web Development Intensive, Fall Lecture Topics. Class Sessions. Grading

PageSpeed Insights. Eliminate render-blocking JavaScript and CSS in above-the-fold content

Executive Summary. Performance Report for: The web should be fast. Top 5 Priority Issues. How does this affect me?

Simple AngularJS thanks to Best Practices

UI Course HTML: (Html, CSS, JavaScript, JQuery, Bootstrap, AngularJS) Introduction. The World Wide Web (WWW) and history of HTML

Full Stack boot camp

BIG-IP Analytics: Implementations. Version 12.1

Executive Summary. Performance Report for: The web should be fast. Top 5 Priority Issues. How does this affect me?

Yahoo Search ATS Plugins. Daniel Morilha and Scott Beardsley

HTTP, WebSocket, SPDY, HTTP/2.0

Performance Report for: Report generated: Tuesday, June 30, 2015, 3:21 AM -0700

Building mobile app using Cordova and AngularJS, common practices. Goran Kopevski

Executive Summary. Performance Report for: The web should be fast. Top 5 Priority Issues. How does this affect me?

Flexible and LEAN Ads

Detects Potential Problems. Customizable Data Columns. Support for International Characters

Firefox Quantum. Performance in Firefox. Jean-Yves Perrier Jean-Yves Perrier. Public

Website Report for

End User Monitoring. AppDynamics Pro Documentation. Version 4.2. Page 1

Executive Summary. Performance Report for: The web should be fast. Top 5 Priority Issues. How does this affect me?

Rediscover Google AMP Learn to integrate AMP with your Drupal project Twin Cities Drupal Camp June 9, 2018

Instant Speed. with Google AMP and Facebook Instant Articles. Baris Wanschers

To Kill a Monolith: Slaying the Demons of a Monolith with Node.js Microservices on CloudFoundry. Tony Erwin,

Index G, H, I J, K D, E. network monitoring, 15 waterfall chart, 15 Firefox memory window, 98

October 08: Introduction to Web Security

CSC 309 The Big Picture

End User Monitoring. AppDynamics Pro Documentation. Version Page 1

"Charting the Course... Comprehensive Angular. Course Summary

Full Stack Web Developer

RKN 2015 Application Layer Short Summary

THE GREAT CONSOLIDATION: ENTERTAINMENT WEEKLY MIGRATION CASE STUDY JON PECK, MATT GRILL, PRESTON SO

20480C: Programming in HTML5 with JavaScript and CSS3. Course Code: 20480C; Duration: 5 days; Instructor-led. JavaScript code.

Table of Content. Last updated: June 16th, 2015

Ten interesting features of Google s Angular Project

HTML5 Evolution and Development. Matt Spencer UI & Browser Marketing Manager

Website Report for bangaloregastro.com

Index LICENSED PRODUCT NOT FOR RESALE

Comprehensive AngularJS Programming (5 Days)

Executive Summary. Performance Report for: The web should be fast. Top 5 Priority Issues. How does this affect me?

Frontend UI Training. Whats App :

Getting Started with ReactJS

django-baton Documentation

Fundamentals of Website Development

Varargs Training & Software Development Centre Private Limited, Module: HTML5, CSS3 & JavaScript

Angular 4 Syllabus. Module 1: Introduction. Module 2: AngularJS to Angular 4. Module 3: Introduction to Typescript

Advance Mobile& Web Application development using Angular and Native Script

End User Monitoring. AppDynamics Pro Documentation. Version Page 1

Compatibility via Modernizr

Developing ASP.NET MVC Web Applications (486)

ArcGIS Enterprise: Advanced Topics in Administration. Thomas Edghill & Moginraj Mohandas

The course also includes an overview of some of the most popular frameworks that you will most likely encounter in your real work environments.

Platform-Independent UI Models: Extraction from UI Prototypes and rendering as W3C Web Components

Webform: THERE IS THIS FOR THAT

Best Practices. For developing a web game in modern browsers. Colt "MainRoach" McAnlis

Search Engines. Information Retrieval in Practice

MOBILE WEB OPTIMIZATION

All India Council For Research & Training

Full Stack Web Developer

08/10/2018. Istanbul Now Platform User Interface

Using Development Tools to Examine Webpages

Browser behavior can be quite complex, using more HTTP features than the basic exchange, this trace will show us how much gets transferred.

A/B Tests in Google Analytics To Make UI Decisions

"Charting the Course... MOC A: Developing with the SharePoint Framework. Course Summary

<?php function preprocess_drupalcon($presentation) { if ($drupal && $ionic) { if ($ionic[ app ] = Megalomaniac ) { create $presentation } } }?

Webpack. What is Webpack? APPENDIX A. n n n

RequireJS Javascript Modules for the Browser. By Ben Keith Quoin, Inc.

Transcription:

Web Performance in 2017 with @bighappyface

Big thanks to DrupalCon Team

Big thanks to you (it s almost a wrap)

Please note This session assumes familiarity. I am speaking as if folks are already into this stuff. This session is marked as advanced. My apologies for casual techno-speak. This session is not exhaustive. I cover things that I think are interesting and important.

The plan 1. Measurement 2. Networking (HTTP/Browsers) 3. UI (HTML/CSS) 4. Code (JS) Q&A after each section to focus the interactions.

Measurement

Measurement IS performance

WebPageTest free and awesome

WebPageTest clear metrics and reporting

WebPageTest killer waterfall

WebPageTest recording!!!

WebPageTest very handy API

WebPageTest Some key metrics that are important to you. 1. 2. 3. 4. 5. 6. SpeedIndex (calculated metric -- target < 1000) First Paint (reported by browser) Start Render (capture showing non-blank frame) Visually Complete (a.k.a. End Render) Document Complete Metrics (when the DOM is processed) Fully Loaded Metrics (when all is said and done) https://sites.google.com/a/webpagetest.org/docs/using-webpagetest/metrics

Great WPT plug. What s the point?

Metrics can be monitored Monitoring can be automated

Performance budget Budgets make it possible to set constraints and alert when thresholds are breached. It s a really good idea. Some options: 1. 2. 3. 4. 5. WPT private instance with some automation NPM packages (varying methods) Services (dynatrace.com, webperformance.com, lots more) Google PageSpeed Insights (API automation) More that I am definitely leaving out Great information on this topic online.

Dev tools for measurement Chrome Audits Tab

D8 highlights for measurement My sandbox module

Q&A for measurement?

Networking (HTTP/Browsers)

HTTP/2 What s new? 1. 2. 3. 4. Binary instead of textual (easier to parse, more compact) Fully multiplexed (parallel requests over a single origin connection) Header compression to reduce overhead (HPACK, reduces round-trips) Support for server pushes (proactive caching, good practices still TBD) https://http2.github.io/faq/

Headers Headers describe documents and heavily influence the browser. 1. 2. 3. 4. 5. Cache-Control (the big one) Vary (rules for varying caches - encoding, cookie, user agent) ETag (cache validation) Cookies (heavy, large influence on cache) Link (canonical/alternative URLs, Resource Hints - preconnect/prefetch) https://developer.mozilla.org/en-us/docs/web/http/caching https://developer.mozilla.org/en-us/docs/web/html/link_types

Waterfall optimization know thy waterfall

Waterfall optimization Some tips: 1. 2. 3. 4. 5. Get requests for your domain to the top Understand the impacts of DNS, SSL Negotiation Understand how HTTP/2 vs. HTTP/1.1 waterfalls differ Observe impacts of resource hints Observe nuances of third-party drag Lots of guidance online.

Dev tools for networking Chrome Network Tab

D8 highlights for networking Resource Hints module

Q&A for networking?

UI (HTML/CSS)

Critical render path What s a critical render path? Set of steps browsers must take to convert resources into a useable site. 1. 2. 3. 4. Understand your resources and how they affect rendering. Understand the waterfall (blocking/waits, order of load, options to inline) Minimize critical resources (minimum CSS, JS, images, fonts) Minimize round-trips https://developers.google.com/web/fundamentals/performance/critical-renderin g-path/analyzing-crp

Fonts Web fonts are the bane of performance. 1. 2. 3. 4. 5. Overloaded with glyphs, diacritics, metadata, kerning... Too many formats (browser support concerns, Google Fonts tries to help) EOT and TTF formats are not compressed by default Font redraws and FOUC (flash of unrendered content) Always blocks https://developers.google.com/web/fundamentals/performance/optimizing-cont ent-efficiency/webfont-optimization

Dynamic/transformative styling The future of CSS/styling? 1. PostCSS (transforming styles with JS) Note: Beware super-selectors (selector specificity) side effects 2. CSS containment (element isolation to improve layout recalculation) http://postcss.org https://developers.google.com/web/updates/2016/06/css-containment

Web Components Self-contained building blocks for building all the things. 1. Tech: HTML Templates, Shadow DOM, Custom elements and HTML Imports 2. Benefits: CSS scoping, DOM encapsulation, composition, isolation https://developer.mozilla.org/en-us/docs/web/web_components https://developers.google.com/web/fundamentals/getting-started/primers/shad owdom

Dev tools for UI Chrome Timeline Tab

D8 highlights for UI Web Components module

Q&A for UI?

Code (JS)

JS Asynchronous/lazy loading Some key metrics that are important to you. 1. async script attribute (same as DOM script element injection) 2. Code splitting (webpack all day) 3. JS module loader (require.js, WhatWG proposals) https://developer.mozilla.org/en-us/docs/web/html/element/script https://webpack.github.io/docs/code-splitting.html http://requirejs.org/ https://whatwg.github.io/loader/

JS Transpiling and ES6+ browser support Modern JS and all of its goodness. 1. Babel, babel, babel 2. babel-preset-env (automatically determine the Babel plugins and polyfills you need - smaller artifacts) https://babeljs.io https://github.com/babel/babel-preset-env

General code performance 1. ASM.js (optimizable, low-level subset of JavaScript) 2. Slow code is slow code (measure complexity) http://asmjs.org/ http://bigocheatsheet.com/

Dev tools for code Chrome Profiles Tab

D8 highlights for code Drupal 8 is better for JS

Q&A for code?

Some thoughts

low performance high performance

Performance challenges (get out of your comfort zone)

Performance frustrates (progress comes slow)

Performance rewards (validation all around)

One more thing

2017.texascamp.org - June 2-4, 2017

2017.texascamp.org/submit-session (closes 4/28)

Join Us for Contribution Sprints Friday, April 28, 2017 First-Time Sprinter Workshop 9:00am-12:00pm Room: 307-308 Mentored Core Sprint 9:00am-12:00pm Room:301-303 General Sprints 9:00am-6:00pm Room:309-310 #drupalsprints

Locate this session at the DrupalCon Baltimore website: http://baltimore2017.drupal.org/schedule WHAT DID YOU THINK? Take the survey! https://www.surveymonkey.com/r/drupalc onbaltimore THANK YOU!

Web Performance in 2017 with @bighappyface