Comment contrôler l’utilisation de la mémoire avec Vivaldi ?

Comment Vivaldi gère-t-il la mémoire et comment réduire sa consommation ?
Voici quelques astuces qui pourront accélérer un peu votre navigation.

On nous demande souvent comment Vivaldi gère la mémoire et des conseils pour en réduire la consommation, aussi, nous avons pensé qu’un article de blog serait pertinent. Mais avant de voir comment réduire la consommation de mémoire, voyons comment Vivaldi l’utilise.

Le modèle multi-processus

Avec la plupart des systèmes d’exploitation modernes, chaque application se voit allouer un processus dédié. Un processus peut être défini comme une instance d’un programme en cours d’exécution au sein de l’ordinateur. Ce choix d’architecture permet de s’assurer qu’un plantage d’une application ne provoquera pas l’arrêt d’autres applications, pas plus qu’il n’empêchera le bon fonctionnement de l’intégralité du système d’exploitation. Imaginez si un bug de votre lecteur audio le faisait planter et que, subitement, toutes les autres applications, comme votre tableur ou autre traitement de texte, plantaient aussi. Ça serait, comment dire, gênant. Heureusement, cela ne se produit plus avec des systèmes d’exploitation modernes dans lesquels tous les programmes sont bien isolés entre-eux. Le même choix d’architecture a été fait pour le projet Chromium, le moteur de rendu open-source autour duquel le navigateur Vivaldi est construit. Il dispose donc aussi d’une architecture dite « multi-processus ».

Des sites Web plus complexes induisent des processus plus lourds

Aux balbutiements du Web, les sites étaient très simplement codés et cela permettait aux navigateurs d’en assurer le rendu au sein d’un unique processus. De nos jours, la taille et la complexité des sites ont considérablement augmenté. D’après les statistiques fournies par httparchive.org, la taille moyenne d’une page Web en 2017 est de 2959 ko, à comparer avec une taille de seulement 702 ko en 2010.

Average bytes per page per content type.

Une solution évidente est de séparer toutes ces applications Web les unes des autres, de manière similaire à ce qui est fait au sein d’un système d’exploitation. Si un des sites Web contient un bug ou du code malicieux, il n’affectera pas les autres onglets, ni l’ensemble du fonctionnement du navigateur. Cette meilleure stabilité se fera par contre au détriment de la consommation mémoire. Quelques navigateurs ont opté pour un choix différent dans lequel les ressources et les données sont partagées entre les onglets et les extensions (modèle à processus unique). La consommation mémoire s’en trouvera plus réduite, mais cela causera potentiellement un risque de plantage global du navigateur en cas de problème d’affichage d’un des sites Web ou de dysfonctionnement d’une des extensions installées.

Donc, quand vous ouvrez un nouvel onglet dans Vivaldi, cela va créer un nouveau processus correspondant, dédié à l’affichage de cette page Web dans le navigateur. Imaginons maintenant que vous ayez ouvert 5 onglets et installé 2 extensions : Votre navigateur utilisera donc probablement un total de neuf processus différents (cela dépend du système). Cinq pour les onglets, deux pour les extensions, un pour le processus de traitements graphiques et un pour le navigateur lui-même. Comme vous le constatez, il existe différents types de processus. Nous pouvons les scinder en quatre catégories :

  • Le processus « Navigateur ». C’est le processus qui gère l’interface, les entrées / sorties (disque et réseau) et qui ordonnance tous les autres processus en dessous de lui. Un nouveau processus « Navigateur » est lancé au démarrage de Vivaldi et il n’y en aura pas d’autre.
  • Les processus de rendu. Ils gérent, individuellement, l’affichage de chaque onglet, donc l’interprétation des codes HTML, CSS, Javascript et autres, téléchargés depuis le serveur du site Web correspondant à l’onglet. Comme précisé précédemment, un nouveau processus de rendu est créé pour chaque nouveau site que vous ouvrez dans un onglet. Si vous entrez l’URL d’un site différent dans la barre d’adresses d’un onglet déjà ouvert, le moteur Chromium échangera le processus de rendu avec un nouveau, dédié à cet onglet. Plusieurs processus de rendu peuvent, par conséquent, être actifs en même temps, mais un nouvel onglet ne génère pas toujours un nouveau processus.
  • Les processus de Plugin. Chaque plugin, comme celui d’Adobe Flash, est exécuté au sein d’un processus séparé. Il y a un processus instancié pour chaque type de plugin actif. Par exemple, toutes les instances de Flash seront exécutées au sein du même processus, même si elles apparaissent dans différents sites ou onglets. Si vous fermez toutes les pages utilisant un plugin particulier, le processus correspondant sera détruit, après un certain temps.
  • Les processus « Extensions ». Les extensions, telles que les bloqueurs de pub ou les gestionnaires de mot de passe, possèdent aussi leurs propres processus.

Disposer de tous ces processus séparés augmente la fiabilité et la sécurité du navigateur et c’est un des avantages principaux du modèle « multi-processus ». Les processus de rendu de Chromium sont exécutés dans des instances sécurisées dites « bacs-à-sable » qui ont un accès limité vis-à-vis de la machine de l’utilisateur.  L’image du « bac-à-sable » symbolise l’environnement d’activité restreinte de chaque processus. Par exemple, si vous ouvrez une page Web contenant du code malveillant destiné à endommager votre ordinateur, le bac-à-sable empêchera tout dommage aux autres onglets, aux fonctionnalités du navigateur lui même, et à tout le reste de l’ordinateur et de son système. Ces processus ne peuvent accéder qu’à un ensemble limité de ressources, et uniquement au travers du processus « Navigateur ».

Comment réduire l’empreinte mémoire

Utiliser souvent le gestionnaire de tâches 

Un autre avantage du modèle « multi-processus » est que vous pouvez contrôler la consommation mémoire du navigateur. Si vous jetez un œil à la barre de menu et cliquez sur Outils -> Gestionnaire de tâches, vous pourrez accéder à la liste de tous les processus actifs de Vivaldi et visualiser leur consommation mémoire. Ici, vous pourrez mettre en évidence une page ou application Web particulièrement gourmande en ressources, cela pouvant aussi bien être causé par un réel besoin de ressource ou par une éventuelle fuite de mémoire (si vous constatez qu’un onglet consomme progressivement de plus en plus de mémoire, il peut s’agir d’une fuite). Vous pouvez simplement sélectionner l’onglet ou l’extension dans le gestionnaire de tâches et simplement cliquer sur le bouton [Arrêter le processus] pour le tuer. Vous disposerez toujours de l’onglet dans la barre d’onglets, mais si vous l’activez, vous ne verrez qu’un écran noir (NDT : avec un « oiseau mort ») indiquant que le processus n’est plus exécuté.

Placer des onglets en hibernation pour économiser des ressources 

Vivaldi supporte l’hibernation aussi bien pour un onglet unique que pour une pile d’onglets, ce qui vous permet de choisir précisément à partir de quels onglets vous désirez libérer de la mémoire. Effectuez simplement un clic-droit sur un onglet inactif ou sur une pile d’onglets et sélectionnez Mettre l’onglet en hibernation / Mettre les onglets empilés en hibernation. L’onglet ou les onglets choisis seront alors déchargés du traitement par le navigateur, donc son contenu sera détruit et remplacé par une page vide. Dès que vous activerez de nouveau l’onglet en hibernation, vous constaterez un rechargement complet de la page. Globalement, ce procédé permettra de réduire l’empreinte mémoire du navigateur. Si, par exemple, vous avez ouvert une douzaine d’onglets pour effectuer des recherches sur un sujet précis mais dont vous n’avez plus tellement besoin à un autre moment, il pourra être judicieux de les regrouper au sein d’une pile d’onglets et de mettre en hibernation cet ensemble d’onglets. Ils resteront rapidement accessibles en cas de besoin mais utiliseront bien moins de ressources que s’ils restaient « ouverts ».

Faites attention aux extensions et aux plugins

Vivaldi étant basé sur le moteur Chromium, les extensions disponibles dans le Chrome Web Store peuvent aussi être installées au sein de Vivaldi. Si vous en installez énormément, elles monopoliseront une quantité non négligeable de mémoire, même si vous ne les utilisez que très rarement, voire pas du tout.

Au lieu de les désinstaller radicalement, essayez, dans un premier temps, de les désactiver. Vous ferez cela en vous rendant dans le Menu Vivaldi -> Outils -> Extensions. Repérez l’extension dont vous souhaitez vous passer temporairement et décochez la petite case « Activée » correspondante. Si vous souhaitez vraiment récupérer de la mémoire, vous pouvez aussi désactiver certains plugins, afin de réduire le nombre de processus actifs. Par défaut, le plugin Flash est désactivé mais il pourra être remis en service temporairement dès que le navigateur rencontrera un contenu en ayant besoin.

Prompt to disable an extension.

Tous les utilisateurs n’imaginent pas à quel point le comportement de leur navigateur et sa personnalisation peut impacter la consommation mémoire. Aussi, la prochaine fois que vous rencontrerez un navigateur affublé de dizaines d’extensions (NDT : inutiles ou) inutilisées, n’hésitez pas à indiquer à son utilisateur comment « faire des économies ».

Bon surf, avec Vivaldi !

Comment

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *