La version Windows de Chrome propose depuis la dernière mouture une série d’optimisations permettant d’accélérer de nombreux aspects du navigateur. Il utilise pour cela la PGO de Microsoft. Google s’en explique dans un récent billet, même si le changement est intervenu il y a plusieurs semaines.
Google parle désormais beaucoup de performances pour Chrome, ce qui est finalement un retour aux origines. Quand le navigateur venait de sortir, il n’était question que de rapidité. Mais certains utilisateurs ont fait la grimace avec le temps, notamment sur le gouffre que Chrome pouvait représenter pour la mémoire vive. Des efforts ont été annoncés en ce sens, et l’éditeur en dévoile de nouveaux, déjà actifs.
De la télémétrie pour guider les optimisations
Depuis les deux dernières versions de Chrome, le navigateur se sert de la PGO de Microsoft. Cette « Profile Guided Optimization » est une technique qui n’est pas neuve et qu'on retrouve dans Visual Studio. Elle permet de recompiler le code en tenant compte de paramètres particuliers. Ces derniers proviennent de données télémétriques qui mettent en avant les fonctions les plus utilisées.
La télémétrie est récupérée via les versions Developer de Chrome, compilées chaque nuit. La recompilation influe sur la taille du binaire en l’augmentant pour les fonctions les plus utilisées et en la compressant pour celles qui servent moins souvent. La gestion de la mémoire est affectée de la même manière, les fonctions moins utilisées étant séparées. Le but est de maintenir dans le cache d’instruction du processeur celles qui servent constamment.
Chrome s'ouvre 17 % plus rapidement
Les résultats sont « palpables » affirme Google. Le temps de lancement a ainsi été raccourci de 16,8 %, tandis que l’ouverture de la page Nouvel onglet se fait 14,8 % plus rapidement. Globalement, le chargement d’une page enregistre un petit gain de performances de 6 %.
Curieusement, même si Google en parle dans un billet publié lundi, ces changements sont déjà présents dans Chrome. Ils ont été introduits dans la version 53 pour Windows 64 bits, mais tout le monde peut en profiter depuis la version 54.
Commentaires (40)
#1
" />[troll alert] Allez Firefox, tu peux faire pareil !
#2
Intéressante cette PGO. Est-ce propre à Visual Studio ?
#3
On va dire que je nourris le Troll mais pour utiliser FFox tout les jours sous Ubuntu, c’est lent à ça bouffe de la mémoire en pagaille…Mais bon c’est prix à payer pour réduire ma dépendance à Google. :)
#4
#5
Du tout
#6
La télémétrie est récupérée via les versions Developer de Chrome,
compilées chaque nuit. La recompilation influe sur la taille du binaire
en l’augmentant pour les fonctions les plus utilisées et en la
compressant pour celles qui servent moins souvent. La gestion de la
mémoire est affectée de la même manière, les fonctions moins utilisées
étant séparées. Le but est de maintenir dans le cache d’instruction du
processeur celles qui servent constamment.
ça veut dire qu’il faut le réinstaller tous les jours pour bénéficier de la recompilation nocturne ?
ça va vite devenir lourdingue ce genre de manip … " />
#7
à priori pas
edit : ah bah grillé avec une réponse plus claire " />
#8
pas forcément.
À moins que tes comportements d’utilisation ne changent très fréquemment, une fois que tu as une version optimisée “suffisamment” à ton goût, tu peux la garder en version définitive, je suppose. (quid des mise à jour majeures, en revanche ?)
#9
Non, ça veut dire que les données retournées par les utilisateurs de la version dev sont utilisées pour optimiser la compilation de la version finale.
Quand tu installes la version finale, tu bénéficies de la compilation optimisée finale alors que pour les utilisateurs de la dev, la compilation est optimisée quotidiennement.
#10
#11
17% plus rapidement, ça fait combien de ms, voire ns, en valeur absolue ? Parce que dans le genre optimisation de l’inclinaison d’un poil de cul de mouche…
#12
Je crois bien que c’est déjà fait : https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Build_Instructi…
#13
Non ce n’est pas propre à VS, GCC permet le même type d’optimisation via l’option -fprofile-generate.
#14
#15
#16
Si c’est juste pour éviter Google, tu peux utiliser Chromium.
#17
#18
Ou plutôt, Iron !
#19
Ouaip aussi. En tout cas, pour l’amélioration de Chrome, c’est pas du côté de la rapidité de démarrage qu’il y a du boulot.
Perso, j’utilise principalement FF, et même sur des SSD capables de débiter plus 1.5GB/sec, il prend entre 1 et 2 secondes à démarrer, parfois plus, là où Chrome démarre instantanément (les 2 à vide, avec google comme page d’accueil). Edge va pas mal non plus, ouverture instantanée, mais la page d’accueil met aussi un temps à s’afficher.
#20
A part un anti-pub intégré, Iron apporte quoi à Chromium ?
#21
#22
Eh mais c’est sympa cette recompilation personnelle, je ne connaissais pas ce système.
#23
idem je suis aussi aller voir sur leur site par curiosité mais j’ai pas vraiment trouvé non plus
#24
Personnelle ?
Tu as la même compilation que tout le monde. C’est juste qu’elle est optimisé par le retour des testeurs via la télémétrie.
#25
#26
Utilise Firefox sous Windows, c’est rapide et pas plus gourmand qu’un autre navigateur " />
#27
Un peu dans le même esprit que toi perso je m’en fout pas mal de gagner 15% sur le temps de lancement (que ce soit une appli ou un OS), quand je bosse sur le PC je passe pas mon temps à relancer mes outils en boucle (sauf plantages à répétition mais là le soucis principal c’est plus vraiment la rapidité de lancement mais plutôt les “pédicodeurs” à l’origine du bouzin)
Par contre la vitesse d’exécution des taches les plus fréquentes et la conso mémoire pour les accomplir m’intéressent nettement plus mais là curieusement les éditeurs communiquent tout de suite beaucoup moins et pour cause les gains sont tellement réduits que “ça claque” tout de suite moins (les 6% annoncés par Google, surement mesurés dans des conditions hyper optimales, pour l’ouverture d’une nouvelle page il en reste quoi dans le monde réel ?)
#28
Ils enlèvent tout le code qui remonter quelque chose, même les mises à jour automatiques " />
#29
Google chrome… " />
#30
Ça fait 17% d’économie d’énergie au démarrage. Et mis bout à bout, ces optim finissent par être un gain visible par l’utilisateur.
#31
#32
Pour moi ils ont tous le même problème: 50 onglets: 4Go de RAM.
Ou pire: 20 onglets Facebook = 4Go de RAM…
#33
Hum je veux pas dire mais firefox dispose du flag pgo pour ceux qui utilise une version compilé à la main.
Ok pas vu que Neurones67 en parlais déjà. Ce flag est la depuis pas mal de temps.
#34
#35
oui j’ai vu ça après coup " />
#36
Active Skia et e10s
#37
Merci (ainsi qu’aux autres qui ont répondu). J’ai plus qu’à chercher si on peut faire pareil sur Android Studio " />
#38
On ne réduit pas la dépendance à Google en activant Skia. Skia est développée par Google.
#39