La recolección de basura se utiliza en muchas aplicaciones de calidad de producción. Xcode, Automator, Preferencias del Sistema y varias otras aplicaciones del sistema están sometidas a GC, y puede esperar que esa tendencia continúe a lo largo del tiempo.
Además, muchos desarrolladores han adoptado GC y lo están utilizando exclusivamente en sus aplicaciones. Las nuevas versiones de Intuit de Quicken y QuickBooks para Mac son basura recolectada, por ejemplo.
Hay una serie de ventajas de GC, también. Fuera de mi cabeza y de mi experiencia personal:
hace que sea más fácil el subprocesamiento; una asignación simple es una declaración atómica de propiedad
descarga una gran cantidad de administración de memoria a otros núcleos; es naturalmente concurrente y descarga a un cálculo montón desde el hilo principal (o hilos de cálculo)
En muchos casos, la asignación y desasignación puede suceder enteramente dentro del contexto de un hilo, eliminando así cualquier necesidad de sincronización global o de bloqueo
el colector se ha vuelto más rápido con cada versión de Mac OS X y esa tendencia continuará (al igual que con el resto del sistema). Al descargar más de la carga computacional de su aplicación a los marcos provistos por el sistema, su aplicación obtendrá más y más de las optimizaciones para el sistema subyacente.
porque el recopilador tiene un conocimiento profundo del gráfico de objetos (de los punteros entre los objetos), en la memoria hace que el análisis y la depuración sean mucho más fáciles. En lugar de "¿de dónde viene este puntero colgante?", La pregunta ahora es "¿Me da una lista de razones por las que este objeto se queda más tiempo del que creo que debería?".
Esto no quiere decir que no hay trabajo que hacer para que su aplicación funcione de manera óptima bajo GC. ¡Ciertamente hay tales tareas!
Buena información. ¡Gracias! – calvinlough
Vale la pena señalar que la recolección de basura ha quedado obsoleta en 10.8. –
Ahora vale la pena señalar que 10.11 será la última versión de OS X para incluir el tiempo de ejecución de la recolección de elementos no utilizados. Las aplicaciones que usan recolección de basura pueden no ejecutarse correctamente o no funcionar en 10.12. – Andrew