Google compte réduire drastiquement la consommation de RAM de son navigateur. Chrome 55 consommera 40 % de mémoire en moins par rapport à Chrome 54.
Dans un billet publié sur Google+ en juin de l’année dernière, Peter Kasting, ingénieur dans l’équipe Chrome, avait écrit : « Une des grandes plaintes au sujet de Chrome est qu’actuellement, il utilise beaucoup de batteries, en particulier sur Mac où Safari semble faire mieux ». C’est à partir de ce constat que les ingénieurs de Google ont lancé plusieurs initiatives pour optimiser Chrome, notamment réduire la consommation de mémoire pour les versions pour Android, Mac et Windows.
C’est ainsi que de grosses économies de RAM sont prévues pour Chrome 55. C’est grâce à l’utilisation du moteur JavaScript V8 que Google compte réduire drastiquement la consommation de RAM. Le chiffre de 40 % d’économie est annoncé par rapport à Chrome 54 et même de 50 % par rapport à Chrome 53. Pour atteindre un tel niveau d’optimisation, les ingénieurs de Google se sont focalisés sur deux axes d’amélioration : la réduction de la taille du JavaScript et la réduction de la zone mémoire.
Google explique aussi qu’il existe un compromis entre le débit de collecte des miettes, la latence et la consommation de mémoire. Par exemple, la latence de la collecte des miettes peut être réduite en utilisant plus de mémoire pour éviter de plus fréquents appels de collecte des miettes. Dans le cas des appareils mobiles qui disposent de peu de mémoire, comme moins de 512 Mo de RAM, le fait de donner de la priorité à la latence et au débit sur la consommation de mémoire pourrait occasionner des plantages mémoires. « Pour mieux équilibrer les bons compromis sur ces appareils mobiles à faible mémoire, nous avons introduit un mode de réduction de mémoire spécial qui règle plusieurs heuristiques de collecte des miettes afin de réduire l’utilisation de mémoire des miettes collectées ».
Ce mode passe par trois phases : à la fin d’une collecte de miettes, le moteur V8 détermine quand la prochaine collecte aura lieu. Avec des collectes plus fréquentes, V8 va utiliser moins de mémoire. Cette estimation étant traitée comme une limite stricte, elle aura pour conséquence de forcer la phase de marquage incrémental non achevée à se finaliser durant la pause de la collecte principale de miettes. Pour finir, la fragmentation de la mémoire est encore plus réduite par l’exécution de compressions agressives de la mémoire.
Les ingénieurs de Google expliquent aussi que l’une des améliorations majeures de Chrome 55 et sa capacité à réduire la consommation de la mémoire utilisée lors de la décomposition analytique en arrière-plan. « La décomposition analytique en arrière-plan permet à V8 d’analyser des scripts tandis que les pages sont chargées. L’outil de visualisation de la mémoire nous a aidé à découvrir que le parser en arrière-plan gardait une zone entière active bien après la compilation du code. En libérant immédiatement la zone après la compilation, nous avons réduit le temps de vie des zones de façon significative, ce qui s’est traduit par la réduction de la moyenne ainsi que du pic d’utilisation de la mémoire ».