L’un des principaux défauts de Chrome, c’est sa gestion de la mémoire vive. Certains qualifient même le navigateur de Google de « mangeur de RAM ». Cela est sur le point de changer grâce aux améliorations apportées par Microsoft sur la version 2004 de Windows 10. Son propre navigateur Edge profite déjà d’une utilisation de la mémoire vive inférieure de 27%. Microsoft a introduit avec la ...
Il y a 20 ans on avait testé des séquences d'allocations/désallocations "pathologiques", qui montraient notamment que certains unix (à l'époque il y avait encore Solaris, AIX, HP-UX, IRIX...) géraient bien la fragmentation, alors que d'autres n'arrivaient plus à allouer de la mémoire alors qu'il en restait.
Inversement si une appli gaspille de la mémoire parce que les développeurs ne se cassent pas la tête, l'OS n'a aucun moyen de "dire stop à cette anarchie" (et heureusement d'ailleurs).
Et oui, pratiquement tous les langages actuels permettent de faire de l'allocation dynamique, et donc ?
Deux programmes strictement identiques peuvent ne pas consommer la même quantité de RAM
Cela pour deux raisons en particulier :
1 : Certains programmeurs réservent plus qu’ils n’ont besoin et ne libèrent pas leurs différentes ressources quand elles ne sont plus nécessaires…
2 : D’autres programmeurs n’utilisent que ce qu’ils ont besoin et libèrent leurs ressources inutiles pour ne pas saturer la ram…
Donc oui, c’est bien au programmeur de gérer un minimum la mémoire et peu importe si Windows fait sa vaisselle en arrière-plan sur la mémoire physique…
Si la mémoire vient à manquer, un troisième programme ne pourra réserver ce qu’il demande de toute façon si la RAM visible n'est pas disponible
Les API de gestion de la ram existent et il faut les utiliser intelligemment
Peut être que Google se fout royalement des autres programmes et pour faire tourner tous ses services dans son navigateur de façon fluide, Google s’accapare volontairement un maximum de RAM
MS vient de dire stop à cette anarchie…
Pour Firefox, c'est exact, c'est un goinfre aussi, mais j'ai eu moins tendance à avoir ce problème avec lui. Pour lui, vous devriez essayer ce que je propose dans un autre post ici.
C'est donc bien un problème de Windows et l'amélioration est en lui. Les applis ne faisant que demander à Windows d'utiliser le nouveau mécanisme du système.
C'est pour ça qu'il existe des programmes qui ne bouffes que quelque mégaoctet alors d'autre en bouffe des centaines voir des giga. C'est le programme qui va s'occuper de demander la mémoire au système d'exploitation.
Je sais qu'en C, on peut faire de l'allocation dynamique. Au lieu de réserver de la mémoire, on peut le faire dynamiquement.
Donc si les développeurs ne l'implémente pas, ça ne va rien changer.
Ben non. L'amélioration est dans Windows et pour toutes apps, pas spécifiquement Chrome. Pour ne citer que l'article ici :
"En clair, cela permet aux applications de réduire leur consommation de RAM et ainsi de tourner plus efficacement sur les PC aux capacités mémoires plus limitées. A l’origine, cette amélioration ne concernait que les applications modernes (UWP). Cependant, les application Win32 profitent également de cette meilleure gestion de la mémoire depuis la version 2004 de Windows 10."
Aux applications de réduire... les applications win32 profitent..
"Microsoft a introduit avec la dernière version de Windows 10 (2004) une amélioration liée à l’allocation de la mémoire vive."
C'est bien une amélioration dans Windows qui permet "aux applications" de consommer moins en indiquant à Windows d'utiliser ce mécanisme.
Le bug a été ouvert pour Chrome juste pour qu'il puisse dire à Windows de le laisser utiliser le nouveau mécanisme d'allocation de mémoire.
La gestion de la ram se fait par le développeur du logiciel en premier. Microsoft ajoute des API pour les aider dans ce sens.
"Google Chrome mangera 27% de RAM en moins… grâce à Microsoft"
mais
"Microsoft corrige enfin la gestion calamiteuse de la RAM dans Windows"
Après c'est toujours bon à prendre comme amélioration.
À propos, pour Firefox vous devriez utiliser https://www.rizonesoft.com/downloads/firemin/
chrome://discards/