Al escribir un código Mac bastante típico en un entorno OS X 10.5+, ¿cuáles son las desventajas de usar la recolección de basura?¿Debo usar la recolección de basura Objective-C cuando escribo para 10.5+?
Hasta ahora todo lo demás que he escrito ha sido compatible con 10.4 o en el iPhone, así que me he vuelto bastante cómodo con retener/liberar, pero ahora que estoy trabajando en un proyecto más grande que es 10.5 solo ' Me pregunto si hay algún inconveniente al seguir adelante y utilizar el recolector de basura Objective-C 2.0.
¿Qué piensan?
¡En teoría, GC podría ser más rápido! Es el caso cuando el sistema no necesita liberar memoria antes de que se cierre el programa; luego obtiene una asignación más rápida (justo después del montón) y nunca pierde tiempo en liberar memoria. – Kornel
Sí, claro. Pero, en teoría, siempre puede escribir un GC que gestione su memoria en un entorno que no sea de GC. ;) –
no, un GC no puede recuperar memoria como un sistema que no es de GC. Nunca sabe cuándo reclamar hasta que realiza la recolección. Es posible tener una combinación de ambos, asignando desde el montón y liberando cuando se sale del alcance (similar a usar construcciones using), pero no usando GC "puro". – gbjbaanb