2012-07-23 7 views
13

Quando profilo la mia app su un iPad 2, carica con poco meno di 1 MB di memoria allocata. Quando faccio lo stesso su un iPad 1, carica con circa 4 MB allocati. Entrambi sono aggiornati alla stessa versione di iOS. Questo comportamento normale? Se è così, c'è qualcosa che posso fare al riguardo?L'allocazione per l'app su iPad 1 è 4x quella di iPad 2

+0

Sembra davvero strano, l'applicazione utilizza qualsiasi codice/matrici in virgola mobile ecc.? – Con

+0

Non quando l'app viene caricata per la prima volta, e molto poco dopo. –

+0

Quindi il numero più grande di registri è fuori. Alla fine della giornata la memoria viene allocata e la maggior parte di essa probabilmente non verrà utilizzata attivamente. Quindi non dovrebbe fare molta differenza. – Con

risposta

0

Sì, questo è un tipo di comportamento normale. Dipende anche dal tipo di dispositivo. Ad esempio, se analizzi la memoria in un telefono 3G, 3GS, 4, 4S otterrai risultati diversi. Questo non dovrebbe essere un problema a meno che non stia crescendo frequentemente con l'utilizzo dell'app. Qual è il sistema operativo che stai utilizzando? Hai abilitato ARC?

2

Una possibilità che vorrei esaminare è dove l'app sta memorizzando le sue risorse. L'iPad2 ha indubbiamente più vram per textures, sound ram, ecc. Quindi potrebbe immagazzinare quelle risorse sull'hardware, mentre l'iPad1 dovrebbe memorizzarle nella memoria host e caricarle secondo necessità. Un modo rapido per testare questo è di campionare le risorse e vedere se ha un impatto maggiore su iPad1 che su iPad2, in tal caso questa è una spiegazione plausibile. Ad esempio, se hai 8MB di grafica e l'iPad1 ha 4MB di vram disponibili per le trame mentre l'iPad2 ha 7MB disponibili, iPad1 memorizzerà 4MB delle tue trame in vram e lascerà gli altri 4MB nella ram host, mentre l'iPad2 memorizzerà 7MB delle tue trame in vram e lascerà l'altro 1MB nella ram dell'host.