2012-11-18 12 views
8

Qualcuno può dirmi, che tipo di memoria è sporca/residente e da dove vengono? La memoria residente significa la stessa cosa con "memoria cablata" di Mac OS?Che cos'è la memoria residente e sporca di iOS?

questo è quello che ho visto su Mac OS memoria:

Wired: Questo si riferisce al codice del kernel e così via. La memoria che non dovrebbe mai essere spostata dalla RAM. Conosci anche come memoria residente.

Shared: memoria condivisa tra due o più processi. Entrambi i processi mostrerebbero questa quantità di memoria in modo che possa essere un po 'ingannevole in merito alla quantità di memoria effettivamente in uso.

reale: Questo è il "vero" utilizzo della memoria per un'applicazione come riportato da task_info() - un conteggio approssimativo del numero di pagine fisiche che l'attuale processo ha. (RSIZE)

Private: questa è la memoria che un processo utilizza esclusivamente sul proprio utilizzato nella memoria residente. (RPRVT)

virtuale: La quantità totale di spazio di indirizzamento del processo che è mappato a qualsiasi cosa - se questo è un numero arbitrariamente grande spazio per variabili o qualsiasi cosa - che non equivale a uso effettivo VM. (VSIZE)

Attivo: memoria attualmente etichettata come attiva e utilizzata come RAM.

Inattivo: "Memoria inattiva non viene più utilizzato ed è stato memorizzati nella cache su disco e resterà in RAM fino a quando un'altra applicazione ha bisogno lo spazio Lasciando queste informazioni in RAM è a vostro vantaggio, se si (o un.. client del tuo computer) torna più tardi. " - Aiuto Mac OS X

Libero: la quantità di RAM effettivamente disponibile senza dati.

risposta

27

È quasi un anno e l'ho capito.

memoria pulita

memoria pulita sono i ricordi che possono essere ricreati, su iOS è la memoria di:

  • quadro del sistema
  • binario eseguibile della vostra applicazione
  • file mappati in memoria

Anche notare è la situazione: quando l'app si collega a un framework, la memoria pulita aumenterà in base alla dimensione del file binario del framework. Ma la maggior parte del tempo, solo una parte del binario è veramente caricata nella memoria fisica.

memoria sporca

Tutto memoria che non è la memoria pulita è la memoria sporca, sporca la memoria non può essere ricreati dal sistema.

Quando c'è una pressione di memoria, il sistema scaricherà parte della memoria pulita, quando la memoria sarà nuovamente necessaria, il sistema le ricreerà.

Ma per la memoria sporca, il sistema non può scaricarli e iOS non ha un meccanismo di scambio, quindi la memoria sporca verrà sempre conservata nella memoria fisica, fino a quando raggiungerà un certo limite, quindi l'App verrà terminata e tutta la memoria perché è riciclato dal sistema.

memoria virtuale

virtual memory = clean memory + dirty memory. 

Ciò significa che la memoria virtuale è tutta la memoria vostra app vuole.

memoria residente

resident memory = dirty memory + clean memory that loaded in physical memory 

memoria residente è la memoria realmente caricata nella memoria fisica, che significa tutta la memoria sporco e parti della vostra memoria pulita.

conclusione

In qualsiasi momento, questo è sempre vero:

virtual memory == (clean memory + dirty memory) > resident memory > dirty memory 

Se siete preoccuparsi della memoria fisica vostra applicazione sta prendendo (che è la ragione principale per la vostra applicazione è terminato a causa a memoria bassa), si dovrebbe concentrarsi principalmente sulla memoria residente.

7

La memoria residente è la memoria allocata per l'app. La memoria sporca è la memoria residente che non può essere automaticamente deallocata a causa della mancanza di un sistema di paging in iOS. Ho trovato queste informazioni allo http://liam.flookes.com/wp/2012/05/03/finding-ios-memory/. Quindi, per i tipi di memoria che hai elencato, la memoria residente in iOS è più vicina a quella reale o privata. Da quanto ho capito, è la memoria sporca che dovresti essere maggiormente preoccupata in iOS in quanto può determinare se la tua app viene uccisa quando è sospesa in background se c'è una condizione di memoria insufficiente.

Problemi correlati