Garbage Collection è utilizzato in molte applicazioni di qualità di produzione. Xcode, Automator, Preferenze di sistema e molte altre applicazioni di sistema sono GC, e puoi aspettarti che questa tendenza continui nel tempo.
Inoltre, molti sviluppatori hanno adottato GC e lo stanno utilizzando esclusivamente nelle loro applicazioni. Ad esempio, le nuove versioni di Intuit di Quicken e QuickBooks per Mac sono spazzate via.
Ci sono anche molti vantaggi del GC. In cima alla mia testa e per esperienza personale:
rende più facile il multithreading; un'assegnazione semplice è una dichiarazione di proprietà atomica
scarica una serie di gestione della memoria su altri core; è naturalmente concorrente e alleggerisce un calcolo mazzo dal thread principale (o thread di calcolo)
in molti casi, l'allocazione e deallocazione può accadere interamente all'interno del contesto di un thread, eliminando così la necessità di sincronizzazione globale o bloccare
il raccoglitore è diventato più veloce con ogni versione di Mac OS X e tale tendenza continuerà (proprio come con il resto del sistema). Scaricando più carichi di calcolo della tua app sui framework forniti dal sistema, l'app guadagnerà sempre di più dalle ottimizzazioni al sistema sottostante.
poiché il collezionista ha una conoscenza approfondita del grafico dell'oggetto - dei puntatori tra gli oggetti - in memoria, rende l'analisi e il debugging molto più semplici. Invece di "da dove viene questo puntatore penzolante?", La domanda ora è "Dammi una lista di ragioni per cui questo oggetto si attacca più a lungo di quanto penso debba essere?".
Questo non vuol dire che non ci sia lavoro da fare per far funzionare correttamente l'applicazione in GC. Certamente ci sono tali compiti!
Buone informazioni. Grazie! – calvinlough
Vale la pena notare che la garbage collection è stata deprecata in 10.8. –
Vale la pena notare che il 10.11 sarà l'ultima versione di OS X per includere il runtime della garbage collection. Le app che utilizzano la garbage collection potrebbero non funzionare correttamente o non funzionare affatto il 10.12. – Andrew