2012-07-23 8 views
13

Cuando perfilo mi aplicación en un iPad 2, se carga con poco menos de 1 MB de memoria asignada. Cuando hago lo mismo en un iPad 1, se carga con aproximadamente 4 MB asignados. Ambos se actualizan a la misma versión de iOS. ¿Es este comportamiento normal? Si es así, ¿hay algo que pueda hacer al respecto?La asignación para la aplicación en el iPad 1 es 4 veces mayor que la del iPad 2

+0

Eso suena realmente extraño, ¿la aplicación utiliza algún código/matriz de coma flotante, etc.? – Con

+0

No cuando la aplicación se carga por primera vez, y muy poco después de eso. –

+0

Así que la mayor cantidad de registros está fuera. Al final del día, la memoria solo se asigna y la mayor parte probablemente no se use activamente. Entonces no debería hacer mucha diferencia. – Con

Respuesta

0

Sí, este es el tipo de comportamiento normal. Depende también del tipo de dispositivo. Como ejemplo, si analiza la memoria en un teléfono 3G, 3GS, 4, 4S obtendrá diferentes resultados. Esto no debería ser un problema a menos que crezca con frecuencia con el uso de la aplicación. ¿Cuál es el sistema operativo que estás usando? ¿Ha habilitado ARC?

2

Una posibilidad que investigaría es dónde la aplicación está almacenando sus recursos. El iPad2 sin duda tiene más vram para texturas, sonido ram, etc. por lo que podría estar almacenando esos recursos en el hardware, mientras que el iPad1 tendría que almacenarlos en la memoria del host y cargarlos según sea necesario. Una manera rápida de probar esto es bajar la muestra de sus recursos y ver si tiene un mayor impacto en iPad1 que en iPad2, si es así, esta es una explicación plausible.

Por ejemplo, si tiene 8MB de gráficos, y el iPad1 tiene 4MB vram disponible para texturas, mientras que el iPad2 tiene 7MB disponibles, entonces iPad1 almacenará 4MB de sus texturas en vram y dejará los otros 4MB en host ram, mientras el iPad2 almacenará 7MB de tus texturas en vram y dejará el otro 1MB en el host ram.

Cuestiones relacionadas