bonjour, dans un projet je doix realiser un garbage collector, j ai cru comprendre qu'il y a plusieurs algorithme, lequel me conseillez vous ???
Merci
bonjour, dans un projet je doix realiser un garbage collector, j ai cru comprendre qu'il y a plusieurs algorithme, lequel me conseillez vous ???
Merci
Tu peux donner plus de détails ?
Qu'est-ce que tu as déjà fait ? Qu'as-tu lu sur le sujet ?
Mon blog anglais - Mes articles et critiques de livres - FAQ C++0x, avec liste des nouveautés - Conseils sur le C++ - La meilleure FAQ du monde - Avant de créer des classes que vous réutiliserez, regardez si ça n'existe pas déjà - Le site du comité de normalisation du C++
Le guide pour bien débuter en C++ - Cours et tutoriels pour apprendre C++
Alors voila je sais que pour creer un grabage collector, il y a deux phase,
1 il faut trouver les objets inutilisés
2 récuperer l espace libéré par construction d'une liste ou par copie
le truc c est que je ne sais pas comment commencer ???
Tu peux commencer par regarder comment fonctionne le garbage collector de java....
Il sagit de partir des "threads"...
Chaque thread a une liste de reference (dans la pile), tous ces objets sont marqués "utilisés"
De même ces objets utilisent des références sur d'autres objets qui sont a leur tour marqués "utilisés".
Ensuite, tu peux peaufiner... à la manière de Java avec les classes qui héritent de "Reference", (WeakReference, PhantomReference, SoftReference).
est particulièrement volubile sur le sujet...
Pour commencer:
http://fr.wikipedia.org/wiki/Ramasse-miettes
La liste des liens externe te fera tomber en peu de temps sur:
http://www.memorymanagement.org/articles/recycle.html
Et en peu de temps également sur:
http://www.cs.kent.ac.uk/people/staf....html#Software
Bon lecture et bon courage !![]()
Les algorithmes de base c'est mark and sweep et stop and copy.
C'est relativement simple à coder, à moins que tu tiennes à avoir une version incrémentale ou pire, concurrente.
Après le fin du fin c'est de faire deux générations, une avec stop and copy pour les objets jeunes et l'autre avec mark and sweep pour les objets vieux.
Tu peux aussi tenter de déplacer les données pour éviter la fragmentation, mais c'est assez problématique ce genre de trucs.
Merci d'avoir donné les noms des algorithmes décrits dans la version américaine de wikipedia... Aucun intérêt dans la discussion en cours.
Partager