Moc nechapu, o cem se tu hadate - nekde jsem cetl clanek, ze tracing a reference counting jsou navzajem dualni (analogicke) pristupy, a tudiz pro ne existuji stejne optimalizace, a u obou lze dosahnout stejnych vysledku za stejnych kompromisu.
To je ovšem velmi mylné. Jde udělat hybridní GC kombinující oba přístupy, ale stejné optimalizace opravdu nemohou mít. Jako zdroj základních informací nechť poslouží wiki, tam se můžeš o kopě různých optimalizací dočíst. Přičemž pouze jedna z nich vyžaduje statickou analýzu, ty ostatní sou záležitostí běhu. Jako příklad uvedu slučování operací na counterem, pozdržování provedení operací nad counterem, RC bez nutnosti atomických INC a DEC v paralelním prostředí, RC v provedení pro distribuované systémy. Je toho prostě strašná kopa, ale záměrně všichni RC opomíjejí a omlacují všem okolo benchmarky s naivním RC. Je to na stejné úrovni jako dokazovat že tracing GC je pomalí na příkladu naivního mark & sweep ...
Jediný místo kde se RC dnes více používají sou realtime systémy, protože tam je prostě latence kritická.
Další výhoda RC je velmi snadná hardwarová akcelerace. U tracing řešení by to šlo také udělat, bylo by to ale mnohem více složitější ( == dražší procesor)