Hogar Redes sociales Cómo administrar la memoria de su aplicación para iOS - Dummies

Cómo administrar la memoria de su aplicación para iOS - Dummies

Tabla de contenido:

Video: ALMACENAMIENTO CASI LLENO | Solución 2025

Video: ALMACENAMIENTO CASI LLENO | Solución 2025
Anonim

Tan poderoso como es, el iPhone, e incluso el iPad, tienen recursos limitados, y el más crítico de estos recursos para las aplicaciones iOS es la memoria. realmente entiendo cómo administrar la memoria correctamente en su aplicación, necesita comprender cómo funciona la memoria iOS.

Administración de memoria

Siempre que usted (o un objeto marco) cree un objeto usando Objective-C, usted asigna memoria para el Aunque los dispositivos iOS y Mac usan lo que se conoce como memoria virtual, a diferencia de la Mac, la memoria virtual en iOS está limitada a la cantidad real de memoria física. Por lo tanto, cuando comienza a quedar poca memoria, el Administrador de memoria libera las páginas de memoria que contienen contenido de solo lectura (como el código).

De esta manera, todo lo que tiene que hacer es cargar los "originales" nuevamente en la memoria cuando son necesarios. A diferencia de lo que hace la Mac, iOS no almacena temporalmente la memoria "modificable" (como datos de objeto) en el disco para liberar espacio y Leer los datos más tarde cuando sea necesario. Este estado de cosas limita la cantidad de memoria disponible.

Entonces, como puede ver, cuando un objeto se hace usando la memoria, es crítico que la memoria se libere para que la usen otros objetos.

Si la memoria continúa siendo limitada, el sistema también puede enviar notificaciones a la aplicación en ejecución y pedirle que libere memoria adicional. Este es uno de los eventos críticos a los que todas las aplicaciones deben responder.

En Objective-C, la memoria se gestiona en las aplicaciones de iOS mediante recuento de referencias , lo que mantiene al sistema actualizado sobre si se está utilizando un objeto en la actualidad. Sigue leyendo para conocer todos los detalles.

Recuento de referencias

De hecho, la gestión de memoria es simplemente un ejercicio de contar. Cada objeto tiene su propia cuenta de referencia, o retención de conteo, que es el número de otros objetos que están usando el objeto actualmente. Siempre que el recuento de retención sea mayor que cero, el administrador de memoria supone que alguien se preocupa por ese objeto y lo deja en paz.

Cuando el recuento de retención de un objeto se reduce a cero, el administrador de memoria sabe que ya nadie lo necesita y envía un mensaje dealloc al objeto, y después de eso, su memoria vuelve al sistema para ser reutilizada.

Ese proceso parece bastante sencillo, pero ¿cómo se incrementa y disminuye el conteo de retención? Hasta Xcode 4. 2 y iOS 5. 0, tenías que administrar el conteo retenido en tu aplicación. Cuando se crea un objeto a través de alloc o nuevo oa través de una copia o un mensaje muteableCopy, el recuento de retención del objeto se establece en 1.

Cuando su aplicación utiliza uno de esos métodos, la propiedad se transfiere al objeto que envió el mensaje; es decir, el objeto se ha retenido y el objeto que envió el mensaje se convierte en un propietario no exclusivo del objeto. Propiedad aquí significa que el objeto estará allí para usarse hasta que se libere explícitamente enviándole un mensaje cuando ya no sea necesario.

Antes de Xcode 4. 2 e iOS 5. 0, si no creaste un objeto por uno de esos métodos, pero querías convertirte en propietario, asegúrate de que el objeto permanezca para que lo uses hasta que lo hayas hecho hecho con eso, depende de usted enviar un mensaje de retención para aumentar el conteo retenido, y cuando haya terminado, para enviar un mensaje de liberación.

Esto se debió a que el creador del objeto (que provocó que el recuento de retenciones se establezca en 1) puede haberlo liberado automáticamente; envió a un objeto un mensaje de lanzamiento que lo liberará más tarde (generalmente la próxima vez que se ejecute el ciclo) es ingresado).

Esto es útil en situaciones en las que desea renunciar a la propiedad de un objeto, pero evita la posibilidad de que se desasigne de inmediato (por ejemplo, cuando devuelve un objeto desde un método). En cualquier caso, estaba manteniendo un puntero al objeto para que pueda ser utilizado.

Aunque este enfoque era simple en teoría, era un verdadero dolor de cabeza para los programadores. La gran mayoría de los bloqueos del sistema se produjeron porque las aplicaciones se quedaron sin memoria y el sistema las cerró. En algunos de estos casos, la aplicación no respondía a los métodos de advertencia de memoria y administraba las advertencias de poca memoria.

Sin embargo, la mayoría de las veces, incluso si la aplicación respondía a las advertencias de memoria baja, se limitaba a lo que podía hacer porque la memoria estaba filtrada. La memoria estaba realmente disponible porque algunos objetos no se estaban utilizando, pero la memoria de esos objetos no se había liberado al sistema. Ya no había punteros a estos objetos, por lo que no podían ser liberados y luego desasignados y la memoria reutilizada.

Los desarrolladores han tenido varias formas de administrar la memoria automáticamente. Una es recolección de basura, que escanea la memoria y libera objetos que no tienen punteros.

La recolección de basura para Objective-C estaba disponible en la Mac, pero la recolección de basura tiene algunos problemas. Puede iniciar y pausar sus aplicaciones en el momento más inoportuno, y afecta el rendimiento y la experiencia del usuario porque no tiene control ni idea de cuándo ocurrirá. Nunca se implementó en iOS y está en desuso, comenzando con OS X 10. 8 (Mountain Lion).

Tener que hacer toda esta gestión de memoria en su aplicación ha cambiado con las últimas versiones del compilador Objective-C, que ahora viene con conteo automático de referencias (ARC), que está habilitado por defecto cada vez que crea un proyecto ARC hace por usted en el compilador lo que solía hacer por su cuenta. Maneja todos los lanzamientos, autorreleases y retiene para usted.

Cómo administrar la memoria de su aplicación para iOS - Dummies

Selección del editor

ASVAB Auto & Shop Información Subtest: The Engine - Dummies

ASVAB Auto & Shop Información Subtest: The Engine - Dummies

Los militares quieren saber la extensión de sus conocimientos mecánicos y descubren esto con la subprueba de información Auto & Shop de ASVAB. ¿Cómo funciona un motor? Gira la llave, y si no se inicia, llama a su mecánico o a su gente, ¿verdad? Bueno, no del todo. El motor de combustión interna arde ...

Subtest de información electrónica de aSVAB: Fundamentos de electricidad: simulacros

Subtest de información electrónica de aSVAB: Fundamentos de electricidad: simulacros

Necesitará información básica sobre electricidad y cómo funciona para la subprueba de información electrónica de ASVAB. Un día de 1752, Benjamin Franklin estaba ocupándose de sus asuntos, volando una cometa en medio de una tormenta. Una llave estaba atada a la cuerda de la cometa y cuando un rayo golpeó la tecla de metal, Ben ...

Subtest de información de Auto & Shop de aSVAB: Sujetadores - maniquíes

Subtest de información de Auto & Shop de aSVAB: Sujetadores - maniquíes

Probará la subprueba de información de ASVAB Auto & Shop su conocimiento de los sujetadores. Aunque la madera y el metal (y otros materiales) se pueden unir con pegamento, correas, cinta adhesiva y otros métodos de fijación brillantes, las personas usualmente sujetan este tipo de materiales con clavos, tornillos, pernos y remaches. Estos sujetadores ofrecen más resistencia y estabilidad que ...

Selección del editor

Tu bandeja de entrada de Spotify: dummies

Tu bandeja de entrada de Spotify: dummies

Tu bandeja de entrada de Spotify es una función de Spotify que te permite enviar y recibir música casi de la misma forma en que intercambias correos electrónicos. Incluso puede agregar un pequeño mensaje a cualquier pista, página de artista o lista de reproducción que envíe a sus amigos. La ventaja de enviar música a las personas mediante el uso de su propio ...

Las muchas versiones de Spotify: dummies

Las muchas versiones de Spotify: dummies

Spotify ofrece una variedad de diferentes enfoques de suscripción y niveles de suscripción. Spotify ofrece una versión gratuita que te permite jugar con Spotify y utilizarla para descubrir nueva música, con algunos límites. Después de compilar algunas listas de reproducción, compartir pistas y relacionarse con amigos, se le recomienda actualizar para deshacerse de los anuncios, ...

Transmisión inalámbrica sin Spotify Premium: tontos

Transmisión inalámbrica sin Spotify Premium: tontos

La comunidad de Spotify nunca deja de sorprender, siempre presentando formas innovadoras de transmitir de forma inalámbrica música de Spotify a través de altavoces. Algunos métodos requieren soluciones geeky, y otros requieren que compre una pieza adicional de software que hará un esfuerzo adicional y entregará contenido a través de altavoces remotos. Pero ¿qué le parece usar una configuración inalámbrica ...

Selección del editor

Reglas para el uso de la calculadora en el PSAT / NMSQT - dummies

Reglas para el uso de la calculadora en el PSAT / NMSQT - dummies

Puede traer una calculadora al PSAT / NMSQT. Los evaluadores le dicen, con precisión, que puede resolver todos los problemas en la prueba sin una calculadora. Pero, ¿por qué querría agregar y dividir cuando tiene una máquina para hacer la aritmética por usted? El factor clave es usar la calculadora ...

5 Formas de maximizar su puntaje en la SAT - Dummies

5 Formas de maximizar su puntaje en la SAT - Dummies

Quiere que su día de la prueba SAT sea lleno de confianza y alegría? Aquí hay cinco maneras de ayudarlo a asegurarse de que asuma la prueba. Mantenga sus espacios en blanco en la fila correcta Mientras toma el SAT, puede omitir una pregunta aquí y allá. No hay problema. Solo asegúrese de que las respuestas que hace ...

Triángulos a la derecha en la PSAT / NMSQT - Dummies

Triángulos a la derecha en la PSAT / NMSQT - Dummies

Encontrará muchos triángulos en la PSAT / NMSQT, especialmente triángulos rectángulos. Los griegos no fueron los únicos matemáticos en el mundo antiguo, pero lograron colocar su "marca" en la geometría, una palabra que, dicho sea de paso, proviene de las palabras griegas para "medida de la tierra". "Específicamente, un matemático llamado Pitágoras escribió el Teorema de Pitágoras: a2 + ...