So, what's the point of using garbage collection?
Estou supondo que você quer dizer ponteiros inteligentes contados de referência e observarei que eles são uma forma (rudimentar) de coleta de lixo, então vou responder à pergunta "quais são as vantagens de outras formas de coleta de lixo sobre a referência contada ponteiros inteligentes "em vez disso.
-
Precisão . Somente a contagem de referência vaza os ciclos para que os ponteiros inteligentes contados na referência vazem memória em geral, a menos que outras técnicas sejam adicionadas aos ciclos de captura. Uma vez que essas técnicas são adicionadas, o benefício da simplicidade da contagem de referência desapareceu. Além disso, observe que os GCs de contagem e rastreamento de referência baseados em escopo coletam valores em momentos diferentes, às vezes, a contagem de referência coleta antes e às vezes rastreia os GCs coletados anteriormente.
-
Taxa de transferência . Os ponteiros inteligentes são uma das formas menos eficientes de coleta de lixo, especialmente no contexto de aplicativos multithread quando as contagens de referência são colididas atomicamente. Existem técnicas avançadas de contagem de referências projetadas para aliviar isso, mas o rastreamento de GCs ainda é o algoritmo escolhido em ambientes de produção.
-
Latência . Implementações típicas de ponteiros inteligentes permitem que os destruidores avaliem, resultando em tempos de pausa ilimitados. Outras formas de coleta de lixo são muito mais incrementais e podem até ser em tempo real, por ex. Esteira de Baker.