Comprobación del uso de la memory mientras la aplicación se está ejecutando

Mientras ejecuto mi aplicación, a veces recibo Advertencia de memory. No siempre sucede en el mismo lugar en el código, pero sospecho que tiene algo que ver con la memory asignada desde el exterior de mi aplicación; es decir, si hay muchas aplicaciones que se ejecutan en el iPhone en segundo plano, recibiré la advertencia de memory antes, y si no hay aplicaciones ejecutándose en segundo plano, no recibiré la advertencia.

  1. ¿Hay algún método que pueda usar para verificar cuánta memory está usando mi aplicación en un cierto punto?
  2. ¿Hay algún método que pueda usar para verificar cuánta memory está usando la máquina (iPhone / iPad) en un cierto punto? tal vez incluso para comprobar cuánta memory aún está disponible para usar?
  3. En general, tal vez alguien sabe dónde puedo encontrar datos sobre las limitaciones de memory para las diferentes máquinas basadas en iOS?

Gracias ohad

Usando los Instruments , puede verificar cuánta memory está usando su aplicación. En Xcode4, usa la compilation 'Perfil', elige Leaks , luego haz clic en el button Biblioteca en la barra de herramientas y agrega el instrumento del Memory Monitor .

Se mostrará una descripción general de cada aplicación que se está ejecutando y la cantidad de memory que cada uno está usando.

Si no desea utilizar Instruments, en realidad hay una class de utilidad que Giulio Petek escribió que obtiene el uso de memory actual.

Pruébelo aquí: http://forrst.com/posts/Get_current_Memory_usage-hzw

Puede verificar el uso de la memory utilizando el object vm_statistics_data_t . Por favor, encuentre los detalles y la implementación aquí:

  1. http://gamesfromwithin.com/whenetworking-that-memory-go
  2. http://landonf.bikemonkey.org/code/iphone/Determining_Available_Memory.20081203.html

No debe preocuparse por comprobar cuánta memory está disponible. El sistema operativo gestiona la memory y emitirá advertencias a los principales consumidores de memory cuando la memory se está agotando. Lo que debe hacer es asegurarse de que está manejando didReceiveMemoryWarning posts de didReceiveMemoryWarning y deshacerse de los datos que se pueden volver a cargar a petición más adelante. Además, si su aplicación está experimentando problemas de performance, debe usar Instruments para verificar el uso de sus aplicaciones en situaciones comunes y asegúrese de usar la memory de manera eficiente y solo cargar objects grandes que DEBEN estar en la memory en ese momento.