Comprendere i Low Memory Logs di iOS

Buona sera a tutti.
Vorrei avere maggiori informazioni riguardo i Low Memory Log generati da iOS. In particolare, se da essi è possibile sapere quanti MB di memoria virtuale / fisica sono usati dalle applicazioni attive e quanti sono invece liberi. Posto, a titolo informativo, una porzione di Low Memory Log generata da un iPhone 4S.

Incident Identifier: 00BD3979-BCFA-4782-8779-79EE02C2F201
CrashReporter Key: b87d95849b10d140962d1ab6d40b2c2c55b164d4
Hardware Model: iPhone4,1
OS Version: iPhone OS 6.0.1 (10A523)
Kernel Version: Darwin Kernel Version 13.0.0: Wed Oct 10 23:29:31 PDT 2012; root:xnu-2107.2.34~2/RELEASE_ARM_S5L8940X
Date: 2013-01-07 14:38:11 +0100
Time since snapshot: 90 ms

Free pages: 1170
Active pages: 7442
Inactive pages: 3825
Throttled pages: 84492
Purgeable pages: 35
Wired pages: 31221
Largest process: Maps

Processes
Name <UUID> rpages recent_max [reason] (state)

MobileSafari &lt;59f54bfabe173e29b52157710132e709&gt;         9293             9293         [vm]         (suspended)
     assetsd &lt;5b7ed0ca90943bb2b1c567c2936f0e0a&gt;         1164             1164         [vm]         (daemon) (idle)
Music~iphone &lt;86cd7ce1f96d3df895afc65c51a8a22c&gt;         1107             1107         [vm]         (suspended)
    AppStore &lt;92f46ec0f05935ab81d688ce34acbc0a&gt;        11679            11679                      (suspended)

ecc… con la lista degli altri processi.

E’ possibile ricavare dalla parte :
Free pages: 1170
Active pages: 7442
Inactive pages: 3825
ecc.
il quantitativo di memoria occupata e quella libera? So che ciascuna pagina ha una grandezza di 4KB, quindi, moltiplicando tale valore per il numero di Free pages dovrei ottenere lo spazio di memoria virtuale libera sul dispositivo. Come faccio invece a calcolare lo spazio occupato? E’ una somma tra le restanti pagine?

Grazie a tutti.

sposto in “altri prodotti apple” :wink: è la sezione più idonea

Che programma hai usato per fare il report?

Comprendere i Low Memory Logs di iOS

I processi sono in tutto 128185 ed infatti se moltiplichi questo numero per 4 (Kb) ottieni 512740 Kb ovvero 512 Mb che sarebbe il quantitativo di RAM presente sul tuo iPhone 4.
Il quantitativo di memoria libera dovrebbe essere pari a (1170+3825)*4(Kb) ovvero circa 20 Mb.

Comunque sin dalle prime versioni, iOS dealocava liberamente memoria in casi estremi, ovvero nel caso in cui non fosse più memoria disponibile. Spero di non sbagliare.

Grazie infinite, è proprio il tipo di informazione che cercavo! Non riuscivo a capire che tipo di calcoli fare per ottenere le informazioni che desideravo.
Non vorrei approfittare della tua cortesia, ma avrei un’altra domanda rapida: quando, nel log, sotto “Processes” elenca tutti i processi, il valore numerico sotto “rpages” indica il numero di pagine effettivamente allocate nella memoria fisica, ovvero ciò che fa parte della resident memory?
Ad esempio, prendendo la prima linea dal file precedente:
Processes
Name <UUID> rpages recent_max [reason] (state)

MobileSafari &lt;59f54bfabe173e29b52157710132e709&gt;         9293             9293         [vm]         (suspended)

Quel “9293” sotto “rpages” indica che ci sono (9293*4)/1024= 36 MB occupati dalla app in RAM?

Grazie in anticipo!

La gestione RAM di iOS è come su Mac OS X; abbiamo Free pages, Active pages e Inactive pages.
La prima corrisponde alla RAM effettivamente libera, non usata da nessun processo o applicazione; la seconda corrisponde alla RAM che è in uso al momento, mentre per la terza il discorso è più complicato. Si tratta di RAM occupata in precedenza da un’app che invece di essere subito resa “disponibile” rimane occupata in caso volessimo riusarla per far qualcosa già fatto di recente (inutile dire che se la RAM disponibile è poca la RAM inattiva verrà resa subito disponibile in modo da non creare problemi).

Esempio pratico dell’ultimo tipo di RAM: Ho Safari che occupa 100MB di RAM. Chiudo Safari (premendo solo una volta il tasto home): invece di rendere subito disponibili i 100MB di RAM (come tutti gli altri SO sia mobili che desktop), questa RAM rimane “inattiva”, ed equivale a dire che se non c’è effettivo bisogno di tale RAM da parte di un’altra applicazione dato che magari c’è poca RAM disponibile nel sistema, quest’ultima rimarrà in questo stato finché l’app non verrà chiusa dal task manager (premere due volte il tasto home e trascinare l’app verso l’alto).
Concretamente, l’apertura di Safari sarà più veloce dato che quella RAM ora segnalata come “inattiva” era già attiva precedentemente e “dedicata” a Safari :wink:

Grazie ancora una volta per la risposta.
Hai risolto tutti i miei dubbi, e con chiarezza.
Grazie mille! Buona giornata!