SlideShare una empresa de Scribd logo
1 de 39
Mesurer la performance
Le temps de chargement c’est nul
(mais on a mieux)
Jean-pierre Vincent
@theystolemynick
« temps de chargement »
• window.onload ou document.body.onload
• Attend :
– L’état document.ready (donc CSS/JS synchrones)
– Images synchrones
– des éléments asynchrones (des fois)
@theystolemynick
onload : trop tôt ou trop tard
5 secondes
trop tard ?
5
secondes
trop tôt ?
@theystolemynick
window.onload : verdict
Représentatif …
sur les pages de l’an 2000
@theystolemynick
Mais les stats …
Oui, poids et temps de
chargement sont liés à
l’UX
Mais il y a mieux !
https://wpostats.com/
COMMENT MESURER L’UX ?
« La WebPerf est la réponse technique
à un problème UX »
Moi,
dès que je peux.
@theystolemynick
Le temps de premier rendu
« On n’a pas 2 occasions de faire une
première bonne impression »
(Captain Obvious)
@theystolemynick
Calculer le premier rendu
• WebPageTest et d’autres
• 2 API non officielles :
– performance.timing.msFirstPaint
– performance.getEntriesByType('paint')
• Plus optimistes que WPT !
github.com/jpvincent/requestTracker ou SOASTA Boomerang
Limites du 1er rendu
Les premiers pixels vus sont ils satisfaisants ?
First Paint First Contentful Paint
@theystolemynick
Premier rendu : verdict
Cool
• Métrique vitale
• RUM et synthétique
Moins cool
• RUM bancal
• Ne représente que la 1ère
étape
• Mais il y a mieux !
@theystolemynick
Le SpeedIndex
Inventé en 2012 Formule officielle
https://sites.google.com/a/webpagetest.org/docs/using-
webpagetest/metrics/speed-index
SpeedIndex
Plus c’est haut, moins c’est bon
• Médiane France, top 40 :
– Desktop : 3500
– Mobile : 6500
• Objectif Google : < 1000
– (donc 100% des pixels en 1s)
Médiane top 40 juillet 2017 :
http://www.journaldunet.com/solutions/dsi/1197334-classement-webperf-en-juillet-2017/
Principe du speedIndex
Image intermédiaire
(63% visible 500 ms) Image finale de référence
(100 – 63) X 5 = 185 @theystolemynick
Exemple de calcul
SpeedIndex final : 1602
@theystolemynick
SpeedIndex
Good
• Très proche de la vision
utilisateur
• Comparaison :
– Entre pages
– Entre devices
– Des concurrents
• Chiffre unique
Bad
• Attends 3 slides
@theystolemynick
Les limites du speedIndex
60% à 2s Image de référence
SpeedIndex : it’s over 9000 !!!
@theystolemynick
@theystolemynick
Les limites du speedIndex
Carrousels, publicités, popins, vidéos …
SpeedIndex
Good
• Très proche de la vision
utilisateur
• Comparaison :
– Entre pages
– Entre devices
– Des concurrents
• Chiffre unique
Bad
• Chiffre abstrait
• Sensible aux
mouvements de pixels
• Mesuré seulement en
labo
@theystolemynick
Faire mieux que le speedIndex ?
First Meaningful paint, CPU, Time To Interactive
Crédit image : https://renofswagzareth.deviantart.com/art/Here-comes-a-new-challenger-455618494
First meaningful paint
Le moment où le navigateur affiche le plus grand
nombre de nouveaux « layouts » visibles, après
les fonts.
bit.ly/ttfmp-doc
First meaningful paint
• Disponible en CLI ou en
plugin
@theystolemynick
First meaningful paint
Positif
Prends en compte :
• Le viewport
• Les fonts
Disponible en CLI
Négatif
• Encore en discussion
• Chrome only
• Pas de RUM
• Cas à la marge :
transparence et fade-in
bit.ly/ttfmp-doc @theystolemynick
PRENDRE EN COMPTE LE CPU
Parce que les utilisateurs n’ont
pas tous acheté l’iPhone
@theystolemynick
Le CPU : c’est compliqué
• Quelle métrique :
– Charge CPU totale ?
– Nombre de « forced
reflow » ?
– Plages de temps CPU non
plafonné ?
• Mesurer :
– WPT monitor modifié
– Analyse dev tools timeline
Ces stats WPT – Chrome sont elles utiles ?@theystolemynick
Time to Interactive : définition
• Attend le first contentful paint
• Attend que le navigateur ne soit pas interrompu
pendant au moins 5 secondes, par une tâche
de plus de 50 ms
@theystolemynick
Time to Interactive
Site l’équipe, mais aussi leboncoin @theystolemynick
Time to Interactive
Positif
• Enfin une prise en
compte de l’utilisation
CPU !
• Couplage avec une
métrique visuelle (FMP)
Défauts
• Webpagetest only
• Chrome only
• Pas de RUM
• Limites arbitraires
• Beta
– Testable depuis août
– Peut disparaître
https://github.com/WPO-
Foundation/webpagetest/blob/master/docs/Metrics/TimeToInteractive.md
FAIRE MIEUX QUE LES INGÉS G.
?
@theystolemynick
Les métriques custom
First Meaningful Paint, Time To Interactive, Speed
Index … sont des mesures génériques.
Qu’est ce qui compte pour :
• Vos utilisateurs ?
• Votre business model ?
@theystolemynick
Mesurer ce qui compte
Quand l’interface est elle prête ?
• Méthode performance.mark()
<img src="hero-image"
onload="performance.mark('hero image')" />
Bonus:
apparaît dans WPT
@theystolemynick
Quand arrive ma pub ? Ma font ?
• Analyser les requêtes HTTP :
– performance.getEntries()
– PerformanceObserver()
• Envoyer dans WPT ou un outil de RUM (type
GA)
Doc : https://developer.mozilla.org/en-US/docs/Web/API/Performance
Librairies : github.com/jpvincent/requestTracker et github.com/SOASTA/boomerang
Exemple
d’implémentation
• On attend un fichier en
particulier
• Fonts
• Trackers
• Pubs
• On récupère son temps
• On l’envoie dans l’outil de RUM
• WPT pourrait aussi récupérer ce
temps (custom metrics)
Le code avec les API natives + le polyfill est
trop gros pour une slide, donc j’utilise ma
librairie :
https://github.com/jpvincent/requestTracker
Surveiller
• Real User Monitoring (solutions
commerciales, GA)
• Synthétique (WPT monitor,
sitespeed.io …)
Évolution de la mise à disposition de la font, vu
côté utilisateur. Graphique basilic.io
Évolution du moment où l’A/B testing affiche la page,
côté utilisateur. Graphique Google Analytics
Métrique custom - bilan
Pour
• Au plus proche du métier
• Marche sur toutes les
plateformes
• RUM
Contre
• Maintenance de code
@theystolemynick
Bref …
@theystolemynick
Métrique Difficulté Utilité
Temps de chargement X X
First Paint,
First Contentful Paint
XXX XX
SpeedIndex XXX XXX
First Meaningful Paint XXX XXX ?
Time To Interactive XXX XXXX ?
Custom metrics XXXX XXXXXX
CPU XXXXX ? XXX
@theystolemynick
Conclusion
• Investir sur les mesures custom
• Un seul indicateur, c’est trompeur
Je surveille : custom + paint + CPU
@theystolemynick

Más contenido relacionado

Similar a Mesurer la performance : onload, pages

Les clés d’un site (beaucoup) plus rapide selon des facteurs qui restent trop...
Les clés d’un site (beaucoup) plus rapide selon des facteurs qui restent trop...Les clés d’un site (beaucoup) plus rapide selon des facteurs qui restent trop...
Les clés d’un site (beaucoup) plus rapide selon des facteurs qui restent trop...SEO CAMP
 
SEO campus 2019 | Les clés d’un site web (beaucoup) plus rapide selon des fac...
SEO campus 2019 | Les clés d’un site web (beaucoup) plus rapide selon des fac...SEO campus 2019 | Les clés d’un site web (beaucoup) plus rapide selon des fac...
SEO campus 2019 | Les clés d’un site web (beaucoup) plus rapide selon des fac...RESONEO
 
Performance des tiers : combien coûte cet emplacement pub ?
Performance des tiers : combien coûte cet emplacement pub ?Performance des tiers : combien coûte cet emplacement pub ?
Performance des tiers : combien coûte cet emplacement pub ?Jean-Pierre Vincent
 
Technical seo tips and tricks actionnables 2018
Technical seo tips and tricks actionnables 2018Technical seo tips and tricks actionnables 2018
Technical seo tips and tricks actionnables 2018Aymen Loukil
 
jQuery mobile / PhoneGap : contenus dynamiques client-side
jQuery mobile / PhoneGap : contenus dynamiques client-sidejQuery mobile / PhoneGap : contenus dynamiques client-side
jQuery mobile / PhoneGap : contenus dynamiques client-sidemaru.maru
 
Développer ses noms de domaine
Développer ses noms de domaineDévelopper ses noms de domaine
Développer ses noms de domaineOnlineStrat.fr
 
Usine logicielle à Orange Labs
Usine logicielle à Orange LabsUsine logicielle à Orange Labs
Usine logicielle à Orange LabsEmmanuel Hugonnet
 
Core Web Vitals : Comprendre, Mesurer, Optimiser
Core Web Vitals : Comprendre, Mesurer, OptimiserCore Web Vitals : Comprendre, Mesurer, Optimiser
Core Web Vitals : Comprendre, Mesurer, OptimiseriProspect France
 
Core Web Vitals : les comprendre et se préparer pour le SEO
Core Web Vitals : les comprendre et se préparer pour le SEOCore Web Vitals : les comprendre et se préparer pour le SEO
Core Web Vitals : les comprendre et se préparer pour le SEODigimood - Agence SEO / SEA
 
Reussir les signaux web essentiels (Web Vitals) - Search Y
Reussir les signaux web essentiels (Web Vitals) - Search YReussir les signaux web essentiels (Web Vitals) - Search Y
Reussir les signaux web essentiels (Web Vitals) - Search YAymen Loukil
 
Le SEO JavaScript démystifié
Le SEO JavaScript démystifiéLe SEO JavaScript démystifié
Le SEO JavaScript démystifiéAdrien Russo
 
Performance Web : vers la speed update, un pas après l'autre
Performance Web : vers la speed update, un pas après l'autrePerformance Web : vers la speed update, un pas après l'autre
Performance Web : vers la speed update, un pas après l'autreSEO Camp Association
 
Améliorez la vitesse de chargement de votre site - Webisland 2018
Améliorez la vitesse de chargement de votre site - Webisland 2018Améliorez la vitesse de chargement de votre site - Webisland 2018
Améliorez la vitesse de chargement de votre site - Webisland 2018Aymen Loukil
 
Comment l’architecture événementielle révolutionne la communication dans le S...
Comment l’architecture événementielle révolutionne la communication dans le S...Comment l’architecture événementielle révolutionne la communication dans le S...
Comment l’architecture événementielle révolutionne la communication dans le S...Vincent Lepot
 
Jenkins - Les jeudis de la découverte
Jenkins - Les jeudis de la découverteJenkins - Les jeudis de la découverte
Jenkins - Les jeudis de la découverteStephane Couzinier
 
Mieux rediger-les-user-stories-bonnes-pratiques-oeildecoach 2019
Mieux rediger-les-user-stories-bonnes-pratiques-oeildecoach 2019Mieux rediger-les-user-stories-bonnes-pratiques-oeildecoach 2019
Mieux rediger-les-user-stories-bonnes-pratiques-oeildecoach 2019Oeil de Coach
 
Synergies entre DEV et SEO (SeoCampus 2019)
Synergies entre DEV et SEO (SeoCampus 2019)Synergies entre DEV et SEO (SeoCampus 2019)
Synergies entre DEV et SEO (SeoCampus 2019)LVLUP
 
Synergie entre développeur et consultant SEO - Didier Sampaolo - SEOcamp'us P...
Synergie entre développeur et consultant SEO - Didier Sampaolo - SEOcamp'us P...Synergie entre développeur et consultant SEO - Didier Sampaolo - SEOcamp'us P...
Synergie entre développeur et consultant SEO - Didier Sampaolo - SEOcamp'us P...SEO CAMP
 

Similar a Mesurer la performance : onload, pages (20)

Le prix de la pub
Le prix de la pubLe prix de la pub
Le prix de la pub
 
Les clés d’un site (beaucoup) plus rapide selon des facteurs qui restent trop...
Les clés d’un site (beaucoup) plus rapide selon des facteurs qui restent trop...Les clés d’un site (beaucoup) plus rapide selon des facteurs qui restent trop...
Les clés d’un site (beaucoup) plus rapide selon des facteurs qui restent trop...
 
Introduction à la webperf
Introduction à la webperfIntroduction à la webperf
Introduction à la webperf
 
SEO campus 2019 | Les clés d’un site web (beaucoup) plus rapide selon des fac...
SEO campus 2019 | Les clés d’un site web (beaucoup) plus rapide selon des fac...SEO campus 2019 | Les clés d’un site web (beaucoup) plus rapide selon des fac...
SEO campus 2019 | Les clés d’un site web (beaucoup) plus rapide selon des fac...
 
Performance des tiers : combien coûte cet emplacement pub ?
Performance des tiers : combien coûte cet emplacement pub ?Performance des tiers : combien coûte cet emplacement pub ?
Performance des tiers : combien coûte cet emplacement pub ?
 
Technical seo tips and tricks actionnables 2018
Technical seo tips and tricks actionnables 2018Technical seo tips and tricks actionnables 2018
Technical seo tips and tricks actionnables 2018
 
jQuery mobile / PhoneGap : contenus dynamiques client-side
jQuery mobile / PhoneGap : contenus dynamiques client-sidejQuery mobile / PhoneGap : contenus dynamiques client-side
jQuery mobile / PhoneGap : contenus dynamiques client-side
 
Développer ses noms de domaine
Développer ses noms de domaineDévelopper ses noms de domaine
Développer ses noms de domaine
 
Usine logicielle à Orange Labs
Usine logicielle à Orange LabsUsine logicielle à Orange Labs
Usine logicielle à Orange Labs
 
Core Web Vitals : Comprendre, Mesurer, Optimiser
Core Web Vitals : Comprendre, Mesurer, OptimiserCore Web Vitals : Comprendre, Mesurer, Optimiser
Core Web Vitals : Comprendre, Mesurer, Optimiser
 
Core Web Vitals : les comprendre et se préparer pour le SEO
Core Web Vitals : les comprendre et se préparer pour le SEOCore Web Vitals : les comprendre et se préparer pour le SEO
Core Web Vitals : les comprendre et se préparer pour le SEO
 
Reussir les signaux web essentiels (Web Vitals) - Search Y
Reussir les signaux web essentiels (Web Vitals) - Search YReussir les signaux web essentiels (Web Vitals) - Search Y
Reussir les signaux web essentiels (Web Vitals) - Search Y
 
Le SEO JavaScript démystifié
Le SEO JavaScript démystifiéLe SEO JavaScript démystifié
Le SEO JavaScript démystifié
 
Performance Web : vers la speed update, un pas après l'autre
Performance Web : vers la speed update, un pas après l'autrePerformance Web : vers la speed update, un pas après l'autre
Performance Web : vers la speed update, un pas après l'autre
 
Améliorez la vitesse de chargement de votre site - Webisland 2018
Améliorez la vitesse de chargement de votre site - Webisland 2018Améliorez la vitesse de chargement de votre site - Webisland 2018
Améliorez la vitesse de chargement de votre site - Webisland 2018
 
Comment l’architecture événementielle révolutionne la communication dans le S...
Comment l’architecture événementielle révolutionne la communication dans le S...Comment l’architecture événementielle révolutionne la communication dans le S...
Comment l’architecture événementielle révolutionne la communication dans le S...
 
Jenkins - Les jeudis de la découverte
Jenkins - Les jeudis de la découverteJenkins - Les jeudis de la découverte
Jenkins - Les jeudis de la découverte
 
Mieux rediger-les-user-stories-bonnes-pratiques-oeildecoach 2019
Mieux rediger-les-user-stories-bonnes-pratiques-oeildecoach 2019Mieux rediger-les-user-stories-bonnes-pratiques-oeildecoach 2019
Mieux rediger-les-user-stories-bonnes-pratiques-oeildecoach 2019
 
Synergies entre DEV et SEO (SeoCampus 2019)
Synergies entre DEV et SEO (SeoCampus 2019)Synergies entre DEV et SEO (SeoCampus 2019)
Synergies entre DEV et SEO (SeoCampus 2019)
 
Synergie entre développeur et consultant SEO - Didier Sampaolo - SEOcamp'us P...
Synergie entre développeur et consultant SEO - Didier Sampaolo - SEOcamp'us P...Synergie entre développeur et consultant SEO - Didier Sampaolo - SEOcamp'us P...
Synergie entre développeur et consultant SEO - Didier Sampaolo - SEOcamp'us P...
 

Más de Jean-Pierre Vincent

Les Performance de rendu sur mobile
Les Performance de rendu sur mobileLes Performance de rendu sur mobile
Les Performance de rendu sur mobileJean-Pierre Vincent
 
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
 
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
 
Techniques d'accélération des pages web
Techniques d'accélération des pages webTechniques d'accélération des pages web
Techniques d'accélération des pages webJean-Pierre Vincent
 
Le monitoring de la performance front
Le monitoring de la performance frontLe monitoring de la performance front
Le monitoring de la performance frontJean-Pierre Vincent
 
Function oop - bonnes pratiques ms tech days
Function   oop - bonnes pratiques ms tech daysFunction   oop - bonnes pratiques ms tech days
Function oop - bonnes pratiques ms tech daysJean-Pierre Vincent
 
Fondamentaux portée - contexte - function ms tech days
Fondamentaux   portée - contexte - function ms tech daysFondamentaux   portée - contexte - function ms tech days
Fondamentaux portée - contexte - function ms tech daysJean-Pierre Vincent
 
Retours sur le concours Webperf 2010
Retours sur le concours Webperf 2010Retours sur le concours Webperf 2010
Retours sur le concours Webperf 2010Jean-Pierre Vincent
 
Javascript : fondamentaux et OOP
Javascript : fondamentaux et OOPJavascript : fondamentaux et OOP
Javascript : fondamentaux et OOPJean-Pierre Vincent
 
Télés connectées et développement Web
Télés connectées et développement WebTélés connectées et développement Web
Télés connectées et développement WebJean-Pierre Vincent
 
Inclure du Javascript de manière performante
Inclure du Javascript de manière performanteInclure du Javascript de manière performante
Inclure du Javascript de manière performanteJean-Pierre Vincent
 
HTML5 maintenant partie 3 : multimedia
HTML5 maintenant partie 3 : multimediaHTML5 maintenant partie 3 : multimedia
HTML5 maintenant partie 3 : multimediaJean-Pierre Vincent
 
HTML5 maintenant partie 2 : APIs
HTML5 maintenant partie 2 : APIsHTML5 maintenant partie 2 : APIs
HTML5 maintenant partie 2 : APIsJean-Pierre Vincent
 
HTML5 maintenant partie 1 : la sémantique
HTML5 maintenant partie 1 : la sémantiqueHTML5 maintenant partie 1 : la sémantique
HTML5 maintenant partie 1 : la sémantiqueJean-Pierre Vincent
 

Más de Jean-Pierre Vincent (17)

Les Performance de rendu sur mobile
Les Performance de rendu sur mobileLes Performance de rendu sur mobile
Les Performance de rendu sur mobile
 
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
 
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
 
Techniques d'accélération des pages web
Techniques d'accélération des pages webTechniques d'accélération des pages web
Techniques d'accélération des pages web
 
Le monitoring de la performance front
Le monitoring de la performance frontLe monitoring de la performance front
Le monitoring de la performance front
 
Les performances Web mobile
Les performances Web mobileLes performances Web mobile
Les performances Web mobile
 
Function oop - bonnes pratiques ms tech days
Function   oop - bonnes pratiques ms tech daysFunction   oop - bonnes pratiques ms tech days
Function oop - bonnes pratiques ms tech days
 
Fondamentaux portée - contexte - function ms tech days
Fondamentaux   portée - contexte - function ms tech daysFondamentaux   portée - contexte - function ms tech days
Fondamentaux portée - contexte - function ms tech days
 
Retours sur le concours Webperf 2010
Retours sur le concours Webperf 2010Retours sur le concours Webperf 2010
Retours sur le concours Webperf 2010
 
Javascript : fondamentaux et OOP
Javascript : fondamentaux et OOPJavascript : fondamentaux et OOP
Javascript : fondamentaux et OOP
 
Télés connectées et développement Web
Télés connectées et développement WebTélés connectées et développement Web
Télés connectées et développement Web
 
Html5 bonnes-pratiques
Html5 bonnes-pratiquesHtml5 bonnes-pratiques
Html5 bonnes-pratiques
 
Inclure du Javascript de manière performante
Inclure du Javascript de manière performanteInclure du Javascript de manière performante
Inclure du Javascript de manière performante
 
HTML5 maintenant partie 3 : multimedia
HTML5 maintenant partie 3 : multimediaHTML5 maintenant partie 3 : multimedia
HTML5 maintenant partie 3 : multimedia
 
HTML5 maintenant partie 2 : APIs
HTML5 maintenant partie 2 : APIsHTML5 maintenant partie 2 : APIs
HTML5 maintenant partie 2 : APIs
 
HTML5 maintenant partie 1 : la sémantique
HTML5 maintenant partie 1 : la sémantiqueHTML5 maintenant partie 1 : la sémantique
HTML5 maintenant partie 1 : la sémantique
 
Html5 now light
Html5 now lightHtml5 now light
Html5 now light
 

Último

comprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestioncomprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestionyakinekaidouchi1
 
conception d'un batiment r+4 comparative de defferente ariante de plancher
conception d'un  batiment  r+4 comparative de defferente ariante de plancherconception d'un  batiment  r+4 comparative de defferente ariante de plancher
conception d'un batiment r+4 comparative de defferente ariante de planchermansouriahlam
 
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024Ville de Châteauguay
 
Algo II: les files cours + exercices corrigés
Algo II: les files cours + exercices corrigésAlgo II: les files cours + exercices corrigés
Algo II: les files cours + exercices corrigésSana REFAI
 
firefly algoriyhm sac a dos step by step .pdf
firefly algoriyhm sac a dos step by step .pdffirefly algoriyhm sac a dos step by step .pdf
firefly algoriyhm sac a dos step by step .pdffirstjob4
 
optimisation logistique MLT_231102_155827.pdf
optimisation logistique  MLT_231102_155827.pdfoptimisation logistique  MLT_231102_155827.pdf
optimisation logistique MLT_231102_155827.pdfSoukainaMounawir
 

Último (7)

comprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestioncomprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestion
 
conception d'un batiment r+4 comparative de defferente ariante de plancher
conception d'un  batiment  r+4 comparative de defferente ariante de plancherconception d'un  batiment  r+4 comparative de defferente ariante de plancher
conception d'un batiment r+4 comparative de defferente ariante de plancher
 
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
 
JTC 2024 Bâtiment et Photovoltaïque.pdf
JTC 2024  Bâtiment et Photovoltaïque.pdfJTC 2024  Bâtiment et Photovoltaïque.pdf
JTC 2024 Bâtiment et Photovoltaïque.pdf
 
Algo II: les files cours + exercices corrigés
Algo II: les files cours + exercices corrigésAlgo II: les files cours + exercices corrigés
Algo II: les files cours + exercices corrigés
 
firefly algoriyhm sac a dos step by step .pdf
firefly algoriyhm sac a dos step by step .pdffirefly algoriyhm sac a dos step by step .pdf
firefly algoriyhm sac a dos step by step .pdf
 
optimisation logistique MLT_231102_155827.pdf
optimisation logistique  MLT_231102_155827.pdfoptimisation logistique  MLT_231102_155827.pdf
optimisation logistique MLT_231102_155827.pdf
 

Mesurer la performance : onload, pages

  • 1. Mesurer la performance Le temps de chargement c’est nul (mais on a mieux) Jean-pierre Vincent @theystolemynick
  • 2. « temps de chargement » • window.onload ou document.body.onload • Attend : – L’état document.ready (donc CSS/JS synchrones) – Images synchrones – des éléments asynchrones (des fois) @theystolemynick
  • 3. onload : trop tôt ou trop tard 5 secondes trop tard ? 5 secondes trop tôt ? @theystolemynick
  • 4. window.onload : verdict Représentatif … sur les pages de l’an 2000 @theystolemynick
  • 5. Mais les stats … Oui, poids et temps de chargement sont liés à l’UX Mais il y a mieux ! https://wpostats.com/
  • 6. COMMENT MESURER L’UX ? « La WebPerf est la réponse technique à un problème UX » Moi, dès que je peux. @theystolemynick
  • 7. Le temps de premier rendu « On n’a pas 2 occasions de faire une première bonne impression » (Captain Obvious) @theystolemynick
  • 8. Calculer le premier rendu • WebPageTest et d’autres • 2 API non officielles : – performance.timing.msFirstPaint – performance.getEntriesByType('paint') • Plus optimistes que WPT ! github.com/jpvincent/requestTracker ou SOASTA Boomerang
  • 9. Limites du 1er rendu Les premiers pixels vus sont ils satisfaisants ? First Paint First Contentful Paint @theystolemynick
  • 10. Premier rendu : verdict Cool • Métrique vitale • RUM et synthétique Moins cool • RUM bancal • Ne représente que la 1ère étape • Mais il y a mieux ! @theystolemynick
  • 11. Le SpeedIndex Inventé en 2012 Formule officielle https://sites.google.com/a/webpagetest.org/docs/using- webpagetest/metrics/speed-index
  • 12. SpeedIndex Plus c’est haut, moins c’est bon • Médiane France, top 40 : – Desktop : 3500 – Mobile : 6500 • Objectif Google : < 1000 – (donc 100% des pixels en 1s) Médiane top 40 juillet 2017 : http://www.journaldunet.com/solutions/dsi/1197334-classement-webperf-en-juillet-2017/
  • 13. Principe du speedIndex Image intermédiaire (63% visible 500 ms) Image finale de référence (100 – 63) X 5 = 185 @theystolemynick
  • 14. Exemple de calcul SpeedIndex final : 1602 @theystolemynick
  • 15. SpeedIndex Good • Très proche de la vision utilisateur • Comparaison : – Entre pages – Entre devices – Des concurrents • Chiffre unique Bad • Attends 3 slides @theystolemynick
  • 16. Les limites du speedIndex 60% à 2s Image de référence SpeedIndex : it’s over 9000 !!! @theystolemynick
  • 18. Les limites du speedIndex Carrousels, publicités, popins, vidéos …
  • 19. SpeedIndex Good • Très proche de la vision utilisateur • Comparaison : – Entre pages – Entre devices – Des concurrents • Chiffre unique Bad • Chiffre abstrait • Sensible aux mouvements de pixels • Mesuré seulement en labo @theystolemynick
  • 20. Faire mieux que le speedIndex ? First Meaningful paint, CPU, Time To Interactive Crédit image : https://renofswagzareth.deviantart.com/art/Here-comes-a-new-challenger-455618494
  • 21. First meaningful paint Le moment où le navigateur affiche le plus grand nombre de nouveaux « layouts » visibles, après les fonts. bit.ly/ttfmp-doc
  • 22. First meaningful paint • Disponible en CLI ou en plugin @theystolemynick
  • 23. First meaningful paint Positif Prends en compte : • Le viewport • Les fonts Disponible en CLI Négatif • Encore en discussion • Chrome only • Pas de RUM • Cas à la marge : transparence et fade-in bit.ly/ttfmp-doc @theystolemynick
  • 24. PRENDRE EN COMPTE LE CPU Parce que les utilisateurs n’ont pas tous acheté l’iPhone @theystolemynick
  • 25. Le CPU : c’est compliqué • Quelle métrique : – Charge CPU totale ? – Nombre de « forced reflow » ? – Plages de temps CPU non plafonné ? • Mesurer : – WPT monitor modifié – Analyse dev tools timeline Ces stats WPT – Chrome sont elles utiles ?@theystolemynick
  • 26. Time to Interactive : définition • Attend le first contentful paint • Attend que le navigateur ne soit pas interrompu pendant au moins 5 secondes, par une tâche de plus de 50 ms @theystolemynick
  • 27. Time to Interactive Site l’équipe, mais aussi leboncoin @theystolemynick
  • 28. Time to Interactive Positif • Enfin une prise en compte de l’utilisation CPU ! • Couplage avec une métrique visuelle (FMP) Défauts • Webpagetest only • Chrome only • Pas de RUM • Limites arbitraires • Beta – Testable depuis août – Peut disparaître https://github.com/WPO- Foundation/webpagetest/blob/master/docs/Metrics/TimeToInteractive.md
  • 29. FAIRE MIEUX QUE LES INGÉS G. ? @theystolemynick
  • 30. Les métriques custom First Meaningful Paint, Time To Interactive, Speed Index … sont des mesures génériques. Qu’est ce qui compte pour : • Vos utilisateurs ? • Votre business model ? @theystolemynick
  • 31. Mesurer ce qui compte
  • 32. Quand l’interface est elle prête ? • Méthode performance.mark() <img src="hero-image" onload="performance.mark('hero image')" /> Bonus: apparaît dans WPT @theystolemynick
  • 33. Quand arrive ma pub ? Ma font ? • Analyser les requêtes HTTP : – performance.getEntries() – PerformanceObserver() • Envoyer dans WPT ou un outil de RUM (type GA) Doc : https://developer.mozilla.org/en-US/docs/Web/API/Performance Librairies : github.com/jpvincent/requestTracker et github.com/SOASTA/boomerang
  • 34. Exemple d’implémentation • On attend un fichier en particulier • Fonts • Trackers • Pubs • On récupère son temps • On l’envoie dans l’outil de RUM • WPT pourrait aussi récupérer ce temps (custom metrics) Le code avec les API natives + le polyfill est trop gros pour une slide, donc j’utilise ma librairie : https://github.com/jpvincent/requestTracker
  • 35. Surveiller • Real User Monitoring (solutions commerciales, GA) • Synthétique (WPT monitor, sitespeed.io …) Évolution de la mise à disposition de la font, vu côté utilisateur. Graphique basilic.io Évolution du moment où l’A/B testing affiche la page, côté utilisateur. Graphique Google Analytics
  • 36. Métrique custom - bilan Pour • Au plus proche du métier • Marche sur toutes les plateformes • RUM Contre • Maintenance de code @theystolemynick
  • 38. Métrique Difficulté Utilité Temps de chargement X X First Paint, First Contentful Paint XXX XX SpeedIndex XXX XXX First Meaningful Paint XXX XXX ? Time To Interactive XXX XXXX ? Custom metrics XXXX XXXXXX CPU XXXXX ? XXX @theystolemynick
  • 39. Conclusion • Investir sur les mesures custom • Un seul indicateur, c’est trompeur Je surveille : custom + paint + CPU @theystolemynick

Notas del editor

  1. https://www.webpagetest.org/result/171017_DK_24704baabe8613fab6aa95262dc1b534/1/details/#waterfall_view_step1
  2. Date des débuts de WPT Test tablette https://www.webpagetest.org/video/compare.php?tests=171016_DB_1cd3a541199b6142ab552c1cead5767a-r:1-c:0
  3. Nexus 7 : ça rame au mauvais moment
  4. Médiane top 40 juillet 2017 : http://www.journaldunet.com/solutions/dsi/1197334-classement-webperf-en-juillet-2017/
  5. http://www.journaldunet.com/solutions/dsi/1197334-classement-webperf-en-juillet-2017/
  6. https://www.webpagetest.org/video/compare.php?tests=171017_B4_664f98f9a6a0bf577dd9f1467e153f56-r%3A1-c%3A0&thumbSize=200&ival=500&end=visual
  7. Depuis août sur webpagetest private + chrome
  8. Ce sont des outils externes à votre business qui calculent ça
  9. Chrome et Fx