Pas de bol, ça reste généralement plus efficace que beaucoup d'autres méthodes.
Avec un GC stop-the-world du style mark-and-sweep, tu dois stopper tous les threads à chaque fois que le collecteur ce met en route, au final c'est pas forcément mieux. De plus, la grosse majorité des objets ne changent pas de threads, donc avec un refcount, tu ne passe au opération atomiques que pour une partie des objets. Avec un stop-the-world, tu stop toujours tout le monde.
Avec un GC on-the-flow ou incrémental tu te tapes aussi des opérations atomiques et pour certains elles sont même plus lourdes que pour le refcount.
Bref, le refcount reste un bon algol de GC qu'il faut toujours considérer avant de s'engager dans des choses plus compliquées, même dans le cas du multi-threading.
[^] # Re: templates variadiques
Posté par beagf . En réponse à la dépêche Le standard C++0x a enfin été voté. Évalué à 5.
Pas de bol, ça reste généralement plus efficace que beaucoup d'autres méthodes.
Avec un GC stop-the-world du style mark-and-sweep, tu dois stopper tous les threads à chaque fois que le collecteur ce met en route, au final c'est pas forcément mieux. De plus, la grosse majorité des objets ne changent pas de threads, donc avec un refcount, tu ne passe au opération atomiques que pour une partie des objets. Avec un stop-the-world, tu stop toujours tout le monde.
Avec un GC on-the-flow ou incrémental tu te tapes aussi des opérations atomiques et pour certains elles sont même plus lourdes que pour le refcount.
Bref, le refcount reste un bon algol de GC qu'il faut toujours considérer avant de s'engager dans des choses plus compliquées, même dans le cas du multi-threading.