SlideShare uma empresa Scribd logo
1 de 49
Techniques d’accélération des
pages Web
Jean-Pierre VINCENT
Consultant indépendant
Code / Développement
#WebPerf - @theystolemynick
Braincracking.org
• 5 10 13 ans de Web
• PHP, JavaScript, HTML5, CSS
• Ex :
– startups, Yahoo!, houra.fr
• Expert frontend indépendant
• Veilleur :
– braincracking.org
– @theystolemynick
Bonjour, je m’appelle Jean-Pierre
Les 10 14 35 commandements
http://developer.yahoo.com/performance/rules.html
Steve Souders, like a Boss
Performance Web ?
• Yahoo! Best Practices (35 règles)
• Google PageSpeed (31 règles)
• Test Opquast (41 règles)
• En vrai : 500+ pratiques
• Nouveaux navigateurs
• Nouveaux besoins
• Mobile
Comment faire le tri ?
• SEO
– 1 critère de référencement chez
Google
– Métrique : temps « onload »
– Mesurée par les utilisateurs
http://googlewebmastercentral.blogspot.fr/2010/04/using-site-speed-in-web-search-ranking.html
Pourquoi la performance ?
• Un administrateur système
heureux
Pourquoi la performance ?
• Qualité perçue
• Ergonomie
• Réponse à un besoin
• Métrique : premier rendu
$$
Pourquoi la performance ?
Tunnel d’achat :
1s = -7% de
conversion
Combien coûte une seconde ?
Vidéo :
1s =-6% de vue
Akamai 2012
Combien coûte une seconde ?
Voyage
4s = -60% de vue
Combien coûte une seconde ?
Search
• Bing : 1 s = - 3 % de CA
• Yahoo! : 1 s = + 10 % de
rebond
Combien coûte une seconde ?
Combien coûte une seconde ?
Mobile
• 1 s = -10% de pages vues
• 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-revenue
http://www.strangeloopnetworks.com/resources/infographics/2012-state-of-mobile-ecommerce-performance/poster/
Comment ne pas rater un chantier Webperf ?
1. Objectifs
2. Que voient les utilisateurs ?
3. Quelles techniques ?
4. Quel suivi ?
Chantier Webperf
Interactivité < 5 s
1. Objectifs
Interactivité avec la fonctionnalité < 5 s
Premier rendu < 2 s
1. Objectifs
Interactivité avec la fonctionnalité < 5 s
Premier rendu < 2 s
Réponse HTML < 1 s
1. Objectifs
Interactivité avec la fonctionnalité < 5 s
Premier rendu < 2 s
Réponse HTML < 1 s
Chargement de la page < 20 s ?
1. Objectifs
2. Utilisateurs
Sources : Akamai 2011 et 2012, Degrouptest, 60 millions de consommateurs, ARCEP
• Grand public français :
– IE 7 is dead !
– Arrivée via réseaux mobiles
– Connexions moyennes :
2. Utilisateurs
ADSL Mobiles
Débit 4, 8 Mb/s 2,5 Mb/s
Latence 95 ms 200 ms
• La moyenne n’est pas
représentative
• 25% des utilisateurs ont moins
de 2,5 Mb/s
< 1
Mb/s 1 - 2
Mb/s
2 - 3
Mb/s3 - 4
Mb/s
4 - 5
Mb/s
5-10
Mb/s
> 10
Mb/s
Répartition des débits
(ligne fixe)
2. Utilisateurs
• Connexion réseau à cibler :
• Navigateurs à cibler :
– IE 8
– Safari iOS
– Android 2.3.x et 4.x
2. Utilisateurs
ADSL Mobiles
Débit 2,5 Mb/s 2,5 Mb/s
Latence 110 ms 200 ms
+25% de perte
3. LES TECHNIQUES
• Yahoo! Best Practices (35 règles)
• Google PageSpeed (31 règles)
• Test Opquast (41 règles)
• En vrai : 500+ pratiques
Par où commencer ?
Sans débat : configuration serveur
• Configuration du keep-alive
• Activer la compression
• Ressources texte : 80%
KeepAlive On
KeepAliveTimeout 5
Timeout 10
Sans débat : gérer son cache
• Et pourtant :
– 50% des sites oublient
– 30% ont un TTL < 30 jours
Cache
• Sans cache :
– Phases de recette interne
– Environnements de
développement
• Cache agressif :
– Cache utilisateur
– Chaîne de cache réseau
« Vide ton cache »
• Serveur
– eTag: "xxxxxx"
Ou
– Last-Modified: DATE_W3C
• Serveur
– 200 OK
Ou
– 304 Not Modified
• Client
– If-None-Match: "xxxxxx"
Ou
– If-Modified-Since: DATE_W3C
Cache : invalidation standard
• Sert à des cas spéciaux
– Polling
– Revalidation de session
– Environnement de dév.
Cache : invalidation standard
• Génère autant de requêtes
• Maîtrise totale des URL
– HTML
– CSS
– JS
• Processus de compilation
• URL rendues uniques par :
– Numéro de release
– Md5 du fichier
Invalidation des caches longs
• Mise en cache long :
Expires : +1 an
Cache-control : public
Vary : xxx
API Application Cache
• 1 application = 1 pack de
fichiers
• 1 fichier de règles
• 1 API de gestion du cache
• Surtout sur mobiles
Le super cache
Sans débat : moins de requêtes
• La limite de HTTP : la latence
Au pire
• DNS
• + Ouverture TCP
• + Slow Start
• + 1 RTT mininum
= 4 X latence
= 400 ms
Trouver le chemin critique
Chemin critique
1er rendu
Ressources bloquantes :
• Redirections
• Génération de la page
• CSS
• Polices
• JS
Ressources gênantes
• Images
• Iframe
• Objets flash / vidéo
Déblayer le chemin critique
• Redirections :
– Limiter à 1 max
– Jamais côté client
– Surtout sur mobile
Déblayer le chemin critique
Génération de la page:
• Caches serveur
• Flush du head
Déblayer le chemin critique
Génération de la page:
• Caches serveur
• Flush du head
• Fonctionnalités longues :
XHR
Déblayer le chemin critique
Génération de la page:
• Caches serveur
• Flush du head
• Fonctionnalités longues : XHR
• Personnalisation :
Server Side Include
Déblayer le chemin critique
• CSS
– Concaténation
– Minification
– Inline ?
Déblayer le chemin critique
• Polices
– Les supprimer ...
– Chargement asynchrone
Déblayer le chemin critique
Le choix des armes
• <script src> en haut
• <script src> en bas
• Inline
• defer
• Asynchrone
Déblayer le chemin critique : JavaScript
<script src> en haut
• Si :
– Petit
– concaténé
– Sans concurrence
Déblayer le chemin critique : JavaScript
<script src> en bas
• Si :
– Page rapide
– Gestion des dépendances
– Pas de document.write()
– Pas de iOS
Déblayer le chemin critique : JavaScript
<script defer>
– Retardé par le onload
Déblayer le chemin critique : JavaScript
• Javascript asynchrone
Déblayer le chemin critique : JavaScript
En anglais
• http://www.perfplanet.com/
• http://developer.yahoo.com/pe
rformance/rules.html
• https://developers.google.com
/speed/docs/best-
practices/rules_intro
• http://www.webpagetest.org/fo
rums
En français
• http://checklists.opquast.com/w
ebperf/
• https://groups.google.com/foru
m/?fromgroups#!forum/perform
ance-web
• @webperf_fr et @WebperfParis
• https://github.com/edas/webper
f-book
• http://braincracking.org
S’auto-former
• http://www.flickr.com/photos/t
hemonnie/2495892146
• http://www.flickr.com/photos/7
6657755@N04/7214596024/in
/photostream/
• http://www.flickr.com/photos/j
ohannes_wl/8364284798/sizes/
l/in/photostream/
Crédits

Mais conteúdo relacionado

Destaque

JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?Microsoft
 
020711 wgsl daily progress report aoc
020711 wgsl daily progress report aoc020711 wgsl daily progress report aoc
020711 wgsl daily progress report aocHonolulu Civil Beat
 
Uwp + Xamarin : Du nouveau en terre du milieu
Uwp + Xamarin : Du nouveau en terre du milieuUwp + Xamarin : Du nouveau en terre du milieu
Uwp + Xamarin : Du nouveau en terre du milieuMicrosoft
 

Destaque (6)

Hsta complaint
Hsta complaintHsta complaint
Hsta complaint
 
JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?
 
020711 wgsl daily progress report aoc
020711 wgsl daily progress report aoc020711 wgsl daily progress report aoc
020711 wgsl daily progress report aoc
 
2011 01-28
2011 01-282011 01-28
2011 01-28
 
2010 12-11 thru2011-01-11
2010 12-11 thru2011-01-112010 12-11 thru2011-01-11
2010 12-11 thru2011-01-11
 
Uwp + Xamarin : Du nouveau en terre du milieu
Uwp + Xamarin : Du nouveau en terre du milieuUwp + Xamarin : Du nouveau en terre du milieu
Uwp + Xamarin : Du nouveau en terre du milieu
 

Semelhante a Techniques d&rsquo;accélération des pages Web

Techniques accélération des pages web #kiwiparty
Techniques accélération des pages web #kiwipartyTechniques accélération des pages web #kiwiparty
Techniques accélération des pages web #kiwipartyJean-Pierre Vincent
 
La vitesse d’un site web : un levier de croissance peu exploité
La vitesse d’un site web : un levier de croissance peu exploitéLa vitesse d’un site web : un levier de croissance peu exploité
La vitesse d’un site web : un levier de croissance peu exploitéFasterize
 
YLT paris js - mars 2015
YLT paris js - mars 2015YLT paris js - mars 2015
YLT paris js - mars 2015gaelmetais
 
Compatibilité Internet Explorer : pour le meilleur et pour le pire!
Compatibilité Internet Explorer : pour le meilleur et pour le pire!Compatibilité Internet Explorer : pour le meilleur et pour le pire!
Compatibilité Internet Explorer : pour le meilleur et pour le pire!Microsoft
 
Architecture d’une app qui fait 5 millions de visites par mois
Architecture d’une app qui fait 5 millions de visites par moisArchitecture d’une app qui fait 5 millions de visites par mois
Architecture d’une app qui fait 5 millions de visites par moisJulien Carnelos
 
Analyse de logs SEO : pour qui, pour quoi, comment ?
Analyse de logs SEO : pour qui, pour quoi, comment ?Analyse de logs SEO : pour qui, pour quoi, comment ?
Analyse de logs SEO : pour qui, pour quoi, comment ?Julien Deneuville
 
La mise en cache et ses secrets
La mise en cache et ses secretsLa mise en cache et ses secrets
La mise en cache et ses secretsAymeric Bouillat
 
Cours technologie web débutant CREA Digital 2 - 10/2013
Cours technologie web débutant CREA Digital 2 - 10/2013Cours technologie web débutant CREA Digital 2 - 10/2013
Cours technologie web débutant CREA Digital 2 - 10/2013Pierre Ammeloot
 
Soirée webperf du 29 nov 2010 - Latence et CDN
Soirée webperf du 29 nov 2010 - Latence et CDNSoirée webperf du 29 nov 2010 - Latence et CDN
Soirée webperf du 29 nov 2010 - Latence et CDNEric D.
 
Meetup Devops Geneve 06/17- EBU Feedbacks
Meetup Devops Geneve 06/17- EBU Feedbacks Meetup Devops Geneve 06/17- EBU Feedbacks
Meetup Devops Geneve 06/17- EBU Feedbacks Hidora
 
alphorm.com - Formation Configuration de SharePoint 2010 (70-667)
alphorm.com - Formation Configuration de SharePoint 2010 (70-667)alphorm.com - Formation Configuration de SharePoint 2010 (70-667)
alphorm.com - Formation Configuration de SharePoint 2010 (70-667)Alphorm
 
Pourquoi la performance?
Pourquoi la performance?Pourquoi la performance?
Pourquoi la performance?Nicole Sullivan
 
Performance Web côté client - Daspet / Sullivan - Paris Web 2008
Performance Web côté client - Daspet / Sullivan - Paris Web 2008Performance Web côté client - Daspet / Sullivan - Paris Web 2008
Performance Web côté client - Daspet / Sullivan - Paris Web 2008Association Paris-Web
 
Drupagora 2013 : Drupal8 et Symfony2, quel impact ?
Drupagora 2013 : Drupal8 et Symfony2, quel impact ?Drupagora 2013 : Drupal8 et Symfony2, quel impact ?
Drupagora 2013 : Drupal8 et Symfony2, quel impact ?ekino
 
Accélération des pages Web : les bases en exemple
Accélération des pages Web : les bases en exempleAccélération des pages Web : les bases en exemple
Accélération des pages Web : les bases en exempleJean-Pierre Vincent
 
Alphorm.com Formation Drupal 7 pour les utilisateurs
Alphorm.com Formation Drupal 7 pour les utilisateurs Alphorm.com Formation Drupal 7 pour les utilisateurs
Alphorm.com Formation Drupal 7 pour les utilisateurs Alphorm
 
Industrialiser la gestion des fichiers multimedia #dcparis13
Industrialiser la gestion des fichiers multimedia #dcparis13Industrialiser la gestion des fichiers multimedia #dcparis13
Industrialiser la gestion des fichiers multimedia #dcparis13Aurelien Navarre
 
LINUX Mise en place d’une exploitation industrialisée – automatisée – sécuris...
LINUX Mise en place d’une exploitation industrialisée – automatisée – sécuris...LINUX Mise en place d’une exploitation industrialisée – automatisée – sécuris...
LINUX Mise en place d’une exploitation industrialisée – automatisée – sécuris...Jean-Antoine Moreau
 
TechDays - Développer une single page application HTML5 - Version courte
TechDays - Développer une single page application HTML5 - Version courteTechDays - Développer une single page application HTML5 - Version courte
TechDays - Développer une single page application HTML5 - Version courteTouchify
 

Semelhante a Techniques d&rsquo;accélération des pages Web (20)

Techniques accélération des pages web #kiwiparty
Techniques accélération des pages web #kiwipartyTechniques accélération des pages web #kiwiparty
Techniques accélération des pages web #kiwiparty
 
La vitesse d’un site web : un levier de croissance peu exploité
La vitesse d’un site web : un levier de croissance peu exploitéLa vitesse d’un site web : un levier de croissance peu exploité
La vitesse d’un site web : un levier de croissance peu exploité
 
technologie web
technologie webtechnologie web
technologie web
 
YLT paris js - mars 2015
YLT paris js - mars 2015YLT paris js - mars 2015
YLT paris js - mars 2015
 
Compatibilité Internet Explorer : pour le meilleur et pour le pire!
Compatibilité Internet Explorer : pour le meilleur et pour le pire!Compatibilité Internet Explorer : pour le meilleur et pour le pire!
Compatibilité Internet Explorer : pour le meilleur et pour le pire!
 
Architecture d’une app qui fait 5 millions de visites par mois
Architecture d’une app qui fait 5 millions de visites par moisArchitecture d’une app qui fait 5 millions de visites par mois
Architecture d’une app qui fait 5 millions de visites par mois
 
Analyse de logs SEO : pour qui, pour quoi, comment ?
Analyse de logs SEO : pour qui, pour quoi, comment ?Analyse de logs SEO : pour qui, pour quoi, comment ?
Analyse de logs SEO : pour qui, pour quoi, comment ?
 
La mise en cache et ses secrets
La mise en cache et ses secretsLa mise en cache et ses secrets
La mise en cache et ses secrets
 
Cours technologie web débutant CREA Digital 2 - 10/2013
Cours technologie web débutant CREA Digital 2 - 10/2013Cours technologie web débutant CREA Digital 2 - 10/2013
Cours technologie web débutant CREA Digital 2 - 10/2013
 
Soirée webperf du 29 nov 2010 - Latence et CDN
Soirée webperf du 29 nov 2010 - Latence et CDNSoirée webperf du 29 nov 2010 - Latence et CDN
Soirée webperf du 29 nov 2010 - Latence et CDN
 
Meetup Devops Geneve 06/17- EBU Feedbacks
Meetup Devops Geneve 06/17- EBU Feedbacks Meetup Devops Geneve 06/17- EBU Feedbacks
Meetup Devops Geneve 06/17- EBU Feedbacks
 
alphorm.com - Formation Configuration de SharePoint 2010 (70-667)
alphorm.com - Formation Configuration de SharePoint 2010 (70-667)alphorm.com - Formation Configuration de SharePoint 2010 (70-667)
alphorm.com - Formation Configuration de SharePoint 2010 (70-667)
 
Pourquoi la performance?
Pourquoi la performance?Pourquoi la performance?
Pourquoi la performance?
 
Performance Web côté client - Daspet / Sullivan - Paris Web 2008
Performance Web côté client - Daspet / Sullivan - Paris Web 2008Performance Web côté client - Daspet / Sullivan - Paris Web 2008
Performance Web côté client - Daspet / Sullivan - Paris Web 2008
 
Drupagora 2013 : Drupal8 et Symfony2, quel impact ?
Drupagora 2013 : Drupal8 et Symfony2, quel impact ?Drupagora 2013 : Drupal8 et Symfony2, quel impact ?
Drupagora 2013 : Drupal8 et Symfony2, quel impact ?
 
Accélération des pages Web : les bases en exemple
Accélération des pages Web : les bases en exempleAccélération des pages Web : les bases en exemple
Accélération des pages Web : les bases en exemple
 
Alphorm.com Formation Drupal 7 pour les utilisateurs
Alphorm.com Formation Drupal 7 pour les utilisateurs Alphorm.com Formation Drupal 7 pour les utilisateurs
Alphorm.com Formation Drupal 7 pour les utilisateurs
 
Industrialiser la gestion des fichiers multimedia #dcparis13
Industrialiser la gestion des fichiers multimedia #dcparis13Industrialiser la gestion des fichiers multimedia #dcparis13
Industrialiser la gestion des fichiers multimedia #dcparis13
 
LINUX Mise en place d’une exploitation industrialisée – automatisée – sécuris...
LINUX Mise en place d’une exploitation industrialisée – automatisée – sécuris...LINUX Mise en place d’une exploitation industrialisée – automatisée – sécuris...
LINUX Mise en place d’une exploitation industrialisée – automatisée – sécuris...
 
TechDays - Développer une single page application HTML5 - Version courte
TechDays - Développer une single page application HTML5 - Version courteTechDays - Développer une single page application HTML5 - Version courte
TechDays - Développer une single page application HTML5 - Version courte
 

Mais de Microsoft

La Blockchain pas à PaaS
La Blockchain pas à PaaSLa Blockchain pas à PaaS
La Blockchain pas à PaaSMicrosoft
 
Tester, Monitorer et Déployer son application mobile
Tester, Monitorer et Déployer son application mobileTester, Monitorer et Déployer son application mobile
Tester, Monitorer et Déployer son application mobileMicrosoft
 
Windows 10, un an après – Nouveautés & Démo
Windows 10, un an après – Nouveautés & Démo Windows 10, un an après – Nouveautés & Démo
Windows 10, un an après – Nouveautés & Démo Microsoft
 
Prenez votre pied avec les bots et cognitive services.
Prenez votre pied avec les bots et cognitive services.Prenez votre pied avec les bots et cognitive services.
Prenez votre pied avec les bots et cognitive services.Microsoft
 
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...Microsoft
 
Créer un bot de A à Z
Créer un bot de A à ZCréer un bot de A à Z
Créer un bot de A à ZMicrosoft
 
Microsoft Composition, pierre angulaire de vos applications ?
Microsoft Composition, pierre angulaire de vos applications ?Microsoft Composition, pierre angulaire de vos applications ?
Microsoft Composition, pierre angulaire de vos applications ?Microsoft
 
Les nouveautés SQL Server 2016
Les nouveautés SQL Server 2016Les nouveautés SQL Server 2016
Les nouveautés SQL Server 2016Microsoft
 
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?Microsoft
 
Administration et supervision depuis le Cloud avec Azure Logs Analytics
Administration et supervision depuis le Cloud avec Azure Logs AnalyticsAdministration et supervision depuis le Cloud avec Azure Logs Analytics
Administration et supervision depuis le Cloud avec Azure Logs AnalyticsMicrosoft
 
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...Microsoft
 
Plan de Reprise d'Activité avec Azure Site Recovery
Plan de Reprise d'Activité avec Azure Site RecoveryPlan de Reprise d'Activité avec Azure Site Recovery
Plan de Reprise d'Activité avec Azure Site RecoveryMicrosoft
 
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...Microsoft
 
Transformation de la représentation : De la VR à la RA, aller & retour.
Transformation de la représentation : De la VR à la RA, aller & retour.Transformation de la représentation : De la VR à la RA, aller & retour.
Transformation de la représentation : De la VR à la RA, aller & retour.Microsoft
 
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...Microsoft
 
Introduction à ASP.NET Core
Introduction à ASP.NET CoreIntroduction à ASP.NET Core
Introduction à ASP.NET CoreMicrosoft
 
Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?Microsoft
 
Comment développer sur la console Xbox One avec une application Universal Win...
Comment développer sur la console Xbox One avec une application Universal Win...Comment développer sur la console Xbox One avec une application Universal Win...
Comment développer sur la console Xbox One avec une application Universal Win...Microsoft
 
Azure Service Fabric pour les développeurs
Azure Service Fabric pour les développeursAzure Service Fabric pour les développeurs
Azure Service Fabric pour les développeursMicrosoft
 
Les nouveautés de C# 7
Les nouveautés de C# 7Les nouveautés de C# 7
Les nouveautés de C# 7Microsoft
 

Mais de Microsoft (20)

La Blockchain pas à PaaS
La Blockchain pas à PaaSLa Blockchain pas à PaaS
La Blockchain pas à PaaS
 
Tester, Monitorer et Déployer son application mobile
Tester, Monitorer et Déployer son application mobileTester, Monitorer et Déployer son application mobile
Tester, Monitorer et Déployer son application mobile
 
Windows 10, un an après – Nouveautés & Démo
Windows 10, un an après – Nouveautés & Démo Windows 10, un an après – Nouveautés & Démo
Windows 10, un an après – Nouveautés & Démo
 
Prenez votre pied avec les bots et cognitive services.
Prenez votre pied avec les bots et cognitive services.Prenez votre pied avec les bots et cognitive services.
Prenez votre pied avec les bots et cognitive services.
 
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
 
Créer un bot de A à Z
Créer un bot de A à ZCréer un bot de A à Z
Créer un bot de A à Z
 
Microsoft Composition, pierre angulaire de vos applications ?
Microsoft Composition, pierre angulaire de vos applications ?Microsoft Composition, pierre angulaire de vos applications ?
Microsoft Composition, pierre angulaire de vos applications ?
 
Les nouveautés SQL Server 2016
Les nouveautés SQL Server 2016Les nouveautés SQL Server 2016
Les nouveautés SQL Server 2016
 
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
 
Administration et supervision depuis le Cloud avec Azure Logs Analytics
Administration et supervision depuis le Cloud avec Azure Logs AnalyticsAdministration et supervision depuis le Cloud avec Azure Logs Analytics
Administration et supervision depuis le Cloud avec Azure Logs Analytics
 
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
 
Plan de Reprise d'Activité avec Azure Site Recovery
Plan de Reprise d'Activité avec Azure Site RecoveryPlan de Reprise d'Activité avec Azure Site Recovery
Plan de Reprise d'Activité avec Azure Site Recovery
 
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
 
Transformation de la représentation : De la VR à la RA, aller & retour.
Transformation de la représentation : De la VR à la RA, aller & retour.Transformation de la représentation : De la VR à la RA, aller & retour.
Transformation de la représentation : De la VR à la RA, aller & retour.
 
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
 
Introduction à ASP.NET Core
Introduction à ASP.NET CoreIntroduction à ASP.NET Core
Introduction à ASP.NET Core
 
Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?
 
Comment développer sur la console Xbox One avec une application Universal Win...
Comment développer sur la console Xbox One avec une application Universal Win...Comment développer sur la console Xbox One avec une application Universal Win...
Comment développer sur la console Xbox One avec une application Universal Win...
 
Azure Service Fabric pour les développeurs
Azure Service Fabric pour les développeursAzure Service Fabric pour les développeurs
Azure Service Fabric pour les développeurs
 
Les nouveautés de C# 7
Les nouveautés de C# 7Les nouveautés de C# 7
Les nouveautés de C# 7
 

Techniques d&rsquo;accélération des pages Web

  • 1. Techniques d’accélération des pages Web Jean-Pierre VINCENT Consultant indépendant Code / Développement #WebPerf - @theystolemynick Braincracking.org
  • 2. • 5 10 13 ans de Web • PHP, JavaScript, HTML5, CSS • Ex : – startups, Yahoo!, houra.fr • Expert frontend indépendant • Veilleur : – braincracking.org – @theystolemynick Bonjour, je m’appelle Jean-Pierre
  • 3. Les 10 14 35 commandements http://developer.yahoo.com/performance/rules.html Steve Souders, like a Boss Performance Web ?
  • 4. • Yahoo! Best Practices (35 règles) • Google PageSpeed (31 règles) • Test Opquast (41 règles) • En vrai : 500+ pratiques • Nouveaux navigateurs • Nouveaux besoins • Mobile Comment faire le tri ?
  • 5. • SEO – 1 critère de référencement chez Google – Métrique : temps « onload » – Mesurée par les utilisateurs http://googlewebmastercentral.blogspot.fr/2010/04/using-site-speed-in-web-search-ranking.html Pourquoi la performance ?
  • 6. • Un administrateur système heureux Pourquoi la performance ?
  • 7. • Qualité perçue • Ergonomie • Réponse à un besoin • Métrique : premier rendu $$ Pourquoi la performance ?
  • 8. Tunnel d’achat : 1s = -7% de conversion Combien coûte une seconde ?
  • 9. Vidéo : 1s =-6% de vue Akamai 2012 Combien coûte une seconde ?
  • 10. Voyage 4s = -60% de vue Combien coûte une seconde ?
  • 11. Search • Bing : 1 s = - 3 % de CA • Yahoo! : 1 s = + 10 % de rebond Combien coûte une seconde ?
  • 12. Combien coûte une seconde ? Mobile • 1 s = -10% de pages vues • 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-revenue http://www.strangeloopnetworks.com/resources/infographics/2012-state-of-mobile-ecommerce-performance/poster/
  • 13.
  • 14. Comment ne pas rater un chantier Webperf ?
  • 15. 1. Objectifs 2. Que voient les utilisateurs ? 3. Quelles techniques ? 4. Quel suivi ? Chantier Webperf
  • 16. Interactivité < 5 s 1. Objectifs
  • 17. Interactivité avec la fonctionnalité < 5 s Premier rendu < 2 s 1. Objectifs
  • 18. Interactivité avec la fonctionnalité < 5 s Premier rendu < 2 s Réponse HTML < 1 s 1. Objectifs
  • 19. Interactivité avec la fonctionnalité < 5 s Premier rendu < 2 s Réponse HTML < 1 s Chargement de la page < 20 s ? 1. Objectifs
  • 21. Sources : Akamai 2011 et 2012, Degrouptest, 60 millions de consommateurs, ARCEP • Grand public français : – IE 7 is dead ! – Arrivée via réseaux mobiles – Connexions moyennes : 2. Utilisateurs ADSL Mobiles Débit 4, 8 Mb/s 2,5 Mb/s Latence 95 ms 200 ms
  • 22. • La moyenne n’est pas représentative • 25% des utilisateurs ont moins de 2,5 Mb/s < 1 Mb/s 1 - 2 Mb/s 2 - 3 Mb/s3 - 4 Mb/s 4 - 5 Mb/s 5-10 Mb/s > 10 Mb/s Répartition des débits (ligne fixe) 2. Utilisateurs
  • 23. • Connexion réseau à cibler : • Navigateurs à cibler : – IE 8 – Safari iOS – Android 2.3.x et 4.x 2. Utilisateurs ADSL Mobiles Débit 2,5 Mb/s 2,5 Mb/s Latence 110 ms 200 ms +25% de perte
  • 25. • Yahoo! Best Practices (35 règles) • Google PageSpeed (31 règles) • Test Opquast (41 règles) • En vrai : 500+ pratiques Par où commencer ?
  • 26. Sans débat : configuration serveur • Configuration du keep-alive • Activer la compression • Ressources texte : 80% KeepAlive On KeepAliveTimeout 5 Timeout 10
  • 27. Sans débat : gérer son cache
  • 28. • Et pourtant : – 50% des sites oublient – 30% ont un TTL < 30 jours Cache
  • 29. • Sans cache : – Phases de recette interne – Environnements de développement • Cache agressif : – Cache utilisateur – Chaîne de cache réseau « Vide ton cache »
  • 30. • Serveur – eTag: "xxxxxx" Ou – Last-Modified: DATE_W3C • Serveur – 200 OK Ou – 304 Not Modified • Client – If-None-Match: "xxxxxx" Ou – If-Modified-Since: DATE_W3C Cache : invalidation standard
  • 31. • Sert à des cas spéciaux – Polling – Revalidation de session – Environnement de dév. Cache : invalidation standard • Génère autant de requêtes
  • 32. • Maîtrise totale des URL – HTML – CSS – JS • Processus de compilation • URL rendues uniques par : – Numéro de release – Md5 du fichier Invalidation des caches longs • Mise en cache long : Expires : +1 an Cache-control : public Vary : xxx
  • 33. API Application Cache • 1 application = 1 pack de fichiers • 1 fichier de règles • 1 API de gestion du cache • Surtout sur mobiles Le super cache
  • 34. Sans débat : moins de requêtes • La limite de HTTP : la latence Au pire • DNS • + Ouverture TCP • + Slow Start • + 1 RTT mininum = 4 X latence = 400 ms
  • 35. Trouver le chemin critique Chemin critique 1er rendu
  • 36. Ressources bloquantes : • Redirections • Génération de la page • CSS • Polices • JS Ressources gênantes • Images • Iframe • Objets flash / vidéo Déblayer le chemin critique
  • 37. • Redirections : – Limiter à 1 max – Jamais côté client – Surtout sur mobile Déblayer le chemin critique
  • 38. Génération de la page: • Caches serveur • Flush du head Déblayer le chemin critique
  • 39. Génération de la page: • Caches serveur • Flush du head • Fonctionnalités longues : XHR Déblayer le chemin critique
  • 40. Génération de la page: • Caches serveur • Flush du head • Fonctionnalités longues : XHR • Personnalisation : Server Side Include Déblayer le chemin critique
  • 41. • CSS – Concaténation – Minification – Inline ? Déblayer le chemin critique
  • 42. • Polices – Les supprimer ... – Chargement asynchrone Déblayer le chemin critique
  • 43. Le choix des armes • <script src> en haut • <script src> en bas • Inline • defer • Asynchrone Déblayer le chemin critique : JavaScript
  • 44. <script src> en haut • Si : – Petit – concaténé – Sans concurrence Déblayer le chemin critique : JavaScript
  • 45. <script src> en bas • Si : – Page rapide – Gestion des dépendances – Pas de document.write() – Pas de iOS Déblayer le chemin critique : JavaScript
  • 46. <script defer> – Retardé par le onload Déblayer le chemin critique : JavaScript
  • 47. • Javascript asynchrone Déblayer le chemin critique : JavaScript
  • 48. En anglais • http://www.perfplanet.com/ • http://developer.yahoo.com/pe rformance/rules.html • https://developers.google.com /speed/docs/best- practices/rules_intro • http://www.webpagetest.org/fo rums En français • http://checklists.opquast.com/w ebperf/ • https://groups.google.com/foru m/?fromgroups#!forum/perform ance-web • @webperf_fr et @WebperfParis • https://github.com/edas/webper f-book • http://braincracking.org S’auto-former
  • 49. • http://www.flickr.com/photos/t hemonnie/2495892146 • http://www.flickr.com/photos/7 6657755@N04/7214596024/in /photostream/ • http://www.flickr.com/photos/j ohannes_wl/8364284798/sizes/ l/in/photostream/ Crédits

Notas do Editor

  1. Intro code / dev