2010-10-25 12 views
6

Estoy trabajando en una aplicación con xml parser, uiwebview, navigationcontroller, que muestra una gran cantidad de imágenes en el controlador principal, que permanece en la memoria durante toda la vida de la aplicación. Almaceno mis datos usando datos centrales.
Traté de averiguar la huella de memoria de la aplicación ya que estoy recibiendo las siguientes advertencias:Advertencia de memoria recibida

Advertencia de memoria recibida. Nivel 1 =
aplicación delegado recibido la memoria de advertencia
controlador de memoria principal recibida advertencia
controlador de memoria principal recibida advertencia
RSSItem recibido la memoria de advertencia

advertencia de memoria recibida. Level = 2
aplicación delegado recibido la memoria de advertencia
controlador de memoria principal recibida advertencia
controlador de memoria principal recibida advertencia
RSSItem recibido la memoria de advertencia

La huella es de alrededor de 4 MB, y salta hasta alrededor de quizá 10 cuando Desglosar y mostrar UIWebViews con una cantidad significativa de imágenes. ¿Es esa huella demasiado grande? Supongo que hay aplicaciones que son considerablemente más complicadas. Por lo que entiendo, las aplicaciones tienen 40-70 MB disponibles, más o menos, pero definitivamente no tienen un límite de 10 MB. Alguien tiene alguna idea de qué puedo hacer para solucionarlo o solucionar el problema. No tengo fugas. Me temo que el problema real no es la huella, sino algo más de lo que no tengo conocimiento. Gracias por cualquier ayuda.

Respuesta

5

tiene herramientas de análisis de memoria en Instruments.app - esto le mostrará muchos datos relacionados con las asignaciones en su aplicación.

si tuviera que adivinar: destruir las imágenes que no son visibles.

+1

Gracias Justin. Definitivamente es una buena idea minimizar el uso de memoria si es posible, y estoy trabajando en eso. Pero aún así, 3-10MB no es mucho. Mientras tanto, acabo de comentar el [super didReceiveMemoryWarning] en didReceiveMemoryWarning. Parece que funciona, aunque estoy seguro de que esta no es la forma correcta de solucionar el problema. – Zsolt

+0

yw. también, usted * debe * llamar a través de 'super' en su anulación. llame a través de 'super' primero si no necesita un comportamiento específico. – justin

Cuestiones relacionadas