Estoy desarrollando una aplicación de iPhone que utiliza principalmente la libreta de direcciones y la base de datos. Después de buscar unos 3000 contactos de la libreta de direcciones, adjunto etiquetas de cadena a los contactos (5 para cada uno). Estoy guardando mis etiquetas en la base de datos.Fugas de memoria causadas por CoreFoundation Framework
Para fines de prueba de carga he agregado 10.000 etiquetas a la aplicación. Pero durante la prueba de carga de mi aplicación, observé algunas pérdidas de memoria que no estaban relacionadas con el código de la Aplicación, pero representan un conjunto de conjuntos de instrucciones. También Instruments mostró Foundation como la biblioteca responsable de la pérdida (uso extensivo de NSString
, NSDictionary
, NSArray
que pertenece al marco de Foundation). Mi aplicación se bloquea después de 10 a 15 minutos de uso. El informe de Crash menciona que la aplicación se bloqueó debido a la poca memoria.
La creación de perfiles de memoria con CLANG muestra cero fugas. ¿Cómo resuelvo estas fugas de memoria? ¿Estas fugas son las verdaderas culpables del accidente? ¿Hay otras herramientas disponibles para controlar fugas de memoria?
Esto podría ser un problema de liberación automática. ¿Todavía sucede si lo haces en lotes? Es decir, en diferentes iteraciones del runloop? Tal vez envolver la operación con su propio grupo. – Eiko
Sí, traté de drenar el grupo de versiones automáticas una vez que la aplicación recibe una advertencia de memoria, pero agotar el conjunto tampoco sirve. – Aditya
Debe saber si las fugas son las culpables, ¿cuánta memoria dicen los instrumentos que está filtrando? – hooleyhoop