J'ai du mal, beaucoup de mal à imaginer qu'incrémenter/décrémenter un entier est moins performant que de gérer un set (ce qui semble être le type basique de gestion des arbres d'objets par un GC). Du coup, j'aimerais beaucoup un exemple concret qui démontre le bénéfice d'un GC, et surtout le bénéfice là où on en a pas besoin.
Qu'il y ait des usages où un GC soit nécessaire, je peux l'admettre. Mon interrogation porte sur la nécessité pour toute variable allouée sur le tas d'être gérée par un coûteux GC.
En Rust, le ramasse-miettes est local par tâche (cf. le site officiel). Ça veut dire que si on en a besoin, il ne va pas arrêter complètement le programme mais seulement une partie ce qui est bien moins couteux. De plus, ça n’est pas comme en Java ou en Python, seules les données auxquelles on veut vraiment pouvoir accéder depuis plusieurs pointeurs devront être gérées, pas l’intégralité des données.
[^] # Re: Ramasse miette
Posté par ariasuni . En réponse à la dépêche Quelques nouvelles sur Rust à l’occasion de la 0.9. Évalué à 5.
Je ne suis pas du tout expert dans ce domaine mais cet article sur le ramasse-miettes dans D est intéressant.
En Rust, le ramasse-miettes est local par tâche (cf. le site officiel). Ça veut dire que si on en a besoin, il ne va pas arrêter complètement le programme mais seulement une partie ce qui est bien moins couteux. De plus, ça n’est pas comme en Java ou en Python, seules les données auxquelles on veut vraiment pouvoir accéder depuis plusieurs pointeurs devront être gérées, pas l’intégralité des données.
Écrit en Bépo selon l’orthographe de 1990