accélération des pages web : les bases en exemple

45
Les soirées Performance Auto-organisées Irrégulières Ateliers ou conférences

Upload: jean-pierre-vincent

Post on 30-Jun-2015

896 views

Category:

Technology


0 download

DESCRIPTION

Il y a plusieurs centaines de techniques pour accélérer ses pages côté client, mais à travers ce retour d'expérience nous allons voir qu'en ayant simplement appliqué les bases on a pu diviser les temps d'affichage utilisateur par 5. Présenté à la soirée Webperf de novembre 2013

TRANSCRIPT

Page 1: Accélération des pages Web : les bases en exemple

Les soirées Performance

Auto-organisées

Irrégulières

Ateliers ou conférences

Page 2: Accélération des pages Web : les bases en exemple

La WebPerf en France

@WebPerfParis

@webperf_fr

Google Group : performance-web

http://www.webperf-france.net/

diigo web performance

Page 3: Accélération des pages Web : les bases en exemple

Bonjour, je m’appelle Jean-Pierre

l 13 ans de Webl PHP, JavaScript, HTML5, CSSl Ex :

● startups, Yahoo!, houra.fr

l Expert frontend indépendantl Veilleur :

● braincracking.org● @theystolemynick

Page 4: Accélération des pages Web : les bases en exemple

Performance Web ?

Les 14 premiers commandements

http://developer.yahoo.com/performance/rules.html

Page 5: Accélération des pages Web : les bases en exemple

Performances Web ?

Performances classiques :– Tenir la charge– Haute disponibilité

Performances Frontend :– Accélérer l'affichage d'une page

Page 6: Accélération des pages Web : les bases en exemple

Passer des règles aux outils

Règles● Yahoo! Best Practices

(35 règles)● Google PageSpeed (31

règles)● Test Opquast (41 règles)● …● Jusqu'à 400+ pratiques

● Outils● Analyse réseau● Profiling● Bonnes pratiques● Monitoring● RUM● Intégration continue

Page 7: Accélération des pages Web : les bases en exemple

Combien coûte une seconde ?

Page 8: Accélération des pages Web : les bases en exemple

Combien coûte une seconde ?

Tunnel d’achat :

1s = -7% de conversion

Tagman, 2012

Page 9: Accélération des pages Web : les bases en exemple

Combien coûte une seconde ?

Vidéo :

1s = -6% de vue

Akamai 2012

Page 10: Accélération des pages Web : les bases en exemple

Combien coûte une seconde ?

e-commerce

1 s = - 50 % de conversion

Walmart 2012

Page 11: Accélération des pages Web : les bases en exemple

Combien coûte une seconde ?

Search

l Bing : 1 s = l - 3 % de CAl Yahoo! : 1 s = l + 10 % de rebond

Études Bing et Google Velocity 2009 : http://velocityconf.com/velocity2009/public/schedule/detail/8523

Page 12: Accélération des pages Web : les bases en exemple

Combien coûte une seconde ?

Mobile

l 1 s = -10% de pages vues

l Après 4 s : 60% d'abandon

/

http://www.themediabriefing.com/article/2012-10-02/speed-is-a-feature-why-a-slow-mobile-web-experience-means-lost-revenuehttp://www.strangeloopnetworks.com/resources/infographics/2012-state-of-mobile-ecommerce-performance/poster

Page 13: Accélération des pages Web : les bases en exemple

Chantier Webperf

Retour d'expérience client

Page 14: Accélération des pages Web : les bases en exemple

Chantier Webperf

● Fixer des objectifs● Mesurer pour l'utilisateur● Coder !● Surveiller

Page 15: Accélération des pages Web : les bases en exemple

Objectifs

L'utilisateur type (Chine, IE 8)● accède à la fonctionnalité (Focus champs tracking)● en moins de 5 secondes

Les visiteurs distants (Brésil, Australie)● voient la HP (textes et image principale)● en moins de 2 secondes

Page 16: Accélération des pages Web : les bases en exemple

Objectifs - HP

Page 17: Accélération des pages Web : les bases en exemple

Objectifs - tracking

Page 18: Accélération des pages Web : les bases en exemple

Objectifs

Pages trop simples !

Chargement déjà très satisfaisant

JP =>

Page 19: Accélération des pages Web : les bases en exemple

Mesurer

Mesures de vrais utilisateurs

Temps longs confirmés ! (Cool, j'ai du travail)

Page 20: Accélération des pages Web : les bases en exemple

Utilisateurs

10 000 Km

6 000 Km

9 600 Km

16 000 Km

6000 Km

Serveurs

marseillais

Page 21: Accélération des pages Web : les bases en exemple

Utilisateurs

200 ms (H.K.)

280 ms

100 ms

200 ms

380 ms

150 ms

800 ms !

Serveurs

marseillais

Page 22: Accélération des pages Web : les bases en exemple

Mesure synthétique

● Installation WebPageTest

● Simulation stable● Contention réseau● Navigateurs réels● Environnements de Dev, integ, preprod, prod…

Page 23: Accélération des pages Web : les bases en exemple

● Le problème devient visible de tous

● Le développement peut commencer

Mesure synthétique

Page 24: Accélération des pages Web : les bases en exemple

Les solutions universelles

La configuration du serveur HTTP● Configuration du keep-alive

– KeepAlive On

– KeepAliveTimeout 5

– Timeout 10

● Activation de la compression (gzip, deflate)

Page 25: Accélération des pages Web : les bases en exemple

Les solutions universelles

Gérer le cache client

Page 26: Accélération des pages Web : les bases en exemple

Le cache utilisateur

● « vide ton cache »Sans cache :

● Phases de recette interne● Environnements de

développement

Cache agressif :● Cache utilisateur● Chaîne de cache réseau

Page 27: Accélération des pages Web : les bases en exemple

Le cache utilisateur

Comment invalider un cache client ?

Méthode standard :– Header eTag ou Last-Modified

Méthode performante :– Cache long– URL change avec la version du fichier– Maîtrise totale des URL– Processus de compilation

Page 28: Accélération des pages Web : les bases en exemple

Le cache utilisateur

À surveiller automatiquement

Page 29: Accélération des pages Web : les bases en exemple

Gains

Sur la page Tracking souvent visitée

Chargement ÷ 5

Page 30: Accélération des pages Web : les bases en exemple

Les solutions universelles

● Déblayer le chemin critique

WTF ?_ ?

Le serveur a renvoyé la

page

L'utilisateur voit quelque

chose

Page 31: Accélération des pages Web : les bases en exemple

Le chemin critique

Chemin critique

1er rendu

Page 32: Accélération des pages Web : les bases en exemple

Le chemin critique

● Redirections● CSS● Polices● JavaScript

Page 33: Accélération des pages Web : les bases en exemple

Le chemin critique

● Redirections● 1 max● Jamais côté client● Surtout sur mobile

Page 34: Accélération des pages Web : les bases en exemple

Le chemin critique

CSS

● Regrouper (2 max)● Minifier

Page 35: Accélération des pages Web : les bases en exemple

Le chemin critique

JavaScript

● Minifier● Regrouper (ou pas)● 5 manières de le

charger

Page 36: Accélération des pages Web : les bases en exemple

Le chemin critique

Polices

● Limiter en poids● Limiter en nombre● Asynchrones

Page 37: Accélération des pages Web : les bases en exemple

Le chemin critique

Beaucoup de stratégies possibles.

Globalement, cibler:

HTML + CSS + JS + Fonts

En 6 requêtes MAX

Page 38: Accélération des pages Web : les bases en exemple

Le chemin critique

Résultat HP, après « Bundling »

● 1er Rendu : - 4 secondes● Onload : - 5 secondes

Page 39: Accélération des pages Web : les bases en exemple

Surveiller

Maintenir la performance dans le temps

WPT Monitor

https://github.com/jpvincent/WPT-server

Page 40: Accélération des pages Web : les bases en exemple

Outils d'analyse

Pour les enfants :

ySlow PageSpeed

Page 41: Accélération des pages Web : les bases en exemple

Outils d'analyse

Pour les guerriers :

WebPageTest

Page 42: Accélération des pages Web : les bases en exemple

Conclusion

● Il y a plusieurs centaines de techniques.● Les techniques principales font déjà gagner

beaucoup.● S'équiper en outils pour les autres.● Avoir des process pour maintenir la qualité.

Page 43: Accélération des pages Web : les bases en exemple

Questions ?

Viens jouer :● Braincracking.org● @theystolemynick

Page 45: Accélération des pages Web : les bases en exemple

Crédits

l http://www.flickr.com/photos/themonnie/2495892146l http://www.flickr.com/photos/76657755@N04/7214596024/in/photostream/l http://www.flickr.com/photos/johannes_wl/8364284798/sizes/l/in/photostream/