2012-02-03 26 views
6

Al perfilar mi aplicación de iOS, realizo una tarea simple varias veces donde pulso y saco una vista de la pila, y luego tomo una foto. El mismo código se ejecuta cada vez y la vista presionada solo contiene algunas imágenes que se eliminan tan pronto como se muestra la vista.Asignaciones de iOS: recuento persistente en montones no siempre 0

screenshot of instruments

Ahora porque el recuento persistente es 0 para casi la mitad de los heapshots, sería seguro asumir que no hay memoria abandonado?

He oído que las filas con un recuento persistente mayor que cero podrían deberse a un almacenamiento en caché interno.

Estoy usando Xcode 4.2.1 y la aplicación está usando ARC.

Editar:

Gracias a Kendall Helmstetter Gelner que he conseguido depurar este problema adicional. Probablemente no debería haber estado usando el simulador para depurar esto. Ahora he ejecuto en el dispositivo y ahora parece que hay un objeto que no está siendo puesto en libertad:

Heapshots of app running on device

Después de mirar a través de la vista de detalle ampliada Creo que he encontrado sólo de la causa del problema.

+6

¡A la persona que acaba de votar mi pregunta, al menos podría haberme dado una respuesta! Estoy seguro de que hay otros que son nuevos en los instrumentos y tienen la misma pregunta. – RohinNZ

Respuesta

2

Es difícil decir con solo esa captura de pantalla lo que se puede almacenar en caché o no: UIImage almacenará en caché las cosas, posiblemente otros elementos del sistema también. Parece que podrías estar ejecutando eso en el simulador, ¿has probado el disparo en un dispositivo?

También puede seleccionar "Ocultar bibliotecas de sistema" a un lado y obtener una mejor idea de cuánto de su propio código se trata.

Cuestiones relacionadas