Odpověď na názor

Odpovídáte na názor ke článku Automatická správa paměti deterministicky.

  • 28. 9. 2011 11:19

    Sten (neregistrovaný)

    [3]
    1) Load-inc/dec-store lze dobře optimalizovat, pokud to podporuje hardware (dneska to umí už snad všechno), a je potom prakticky nezměřitelný ve srovnání se samotným tracingem (tou částí, kdy probíhá hledání smetí). Také se dá výrazně optimalizovat buď zavedením move sématiky (v C++ opět od C++11) nebo vhodným optimalizátorem (to je asi to, co má WinRT).

    2) Alokace i dealokace v dynamické paměti jsou stejné u jakéhokoliv přístupu, implementuje to totiž alokátor (malloc má problémy s paralelním výkonem kvůli globálnímu zámku, ale za to nemůže reference counting). Samotné ukazatele se ve většině implementací (a to jak u tracingu tak u reference countingu) alokují na zásobníku a taková alokace i dealokace je jenom posun pointeru (u reference countingu potom následuje ještě inc/dec). Reference counting neumožňuje provést compact, ale moderní alokátory jej stejně nepotřebují.

    3) Tracing vždycky žere víc než reference counting. To je prostě daň za to, že dokáže vyhledávat cykly a díky tomu nepotřebuje slabé ukazatele.