Oui c'est vrai, j'ai tendance à plus me concentrer sur la réponse qu'autre chose ^^
Sally> c'est justement de ce cas là que je parlais en fait. Je disais ça :
En principe, si tu ouvres 200 onglets, tu vas voir le processus Firefox grossir. En les fermant, il ne diminuera pas. En revanche, si tu ouvres à nouveau 200 onglets, sa taille devrait rester à peu près identique. Si c'est le cas, il n'y a pas de fuite de mémoire, c'est un comportement normal, inhérent au manque d'interaction entre les garbage collectors et les systèmes d'exploitation actuels (que ce soit unix, ou windows).
Uther Le 26/06/2007 à 12:44 Il n'y a pas que un éventuel problème de garbage collector, mais aussi le fait que FF met beaucoup de chose en cache dans la mémoire pour la restauration des onglets fermés et le retour en arrière rapide en particulier.
Dans un bon gc, il y a une partie faite très régulièrement qui fait ce que vous décrivez : simplement nettoyer la mémoire interne pour la réutiliser, et un second comportement, plus coûteux donc déclenché peu souvent, qui compacte la mémoire pour rendre la partie inutilisée à l'OS.
C'est normal que si un processus consomme énormément de mémoire il ne la rende pas tout de suite.
Mais si ça ne la rend jamais ou extrêmement rarement, c'est que le GC est pourri ou que le système d'exécution rend cette phase trop complexe à mettre en œuvre.
Lorsqu'on compacte le tas, on modifie les pointeurs sur la pile, ce qui n'est pas trivial du tout suivant le modèle d'exécution, par exemple si on mélange plein de langages ou qu'on appelle des modules externes avec des pointeurs. Dans le dernier cas, il est possible soit de tout boxer (passer par une indirection supplémentaire) soit de garder un tas pour les références "externes", mais si ça na pas été prévu dès le départ, c'est le merdier.

fabetal_ > Hier, je me suis fait monter par un pote
redangel > et en chevals, ça donne quoi?
Nil> OMG I think I'm gay