Come può la memoria virtuale essere maggiore dello spazio totale disponibile?

8

Perché il mio MBP a volte riporta VM Size: 300+ GB in Activity Monitor nella scheda Memoria di sistema, quando le dimensioni del mio disco rigido sono solo 250 GB (totale) e la RAM è 4 GB? So che non può ottenere magicamente quello spazio in più, ma cosa sta cercando di dirmi?

    
posta Joel Spolsky 24.06.2011 - 07:07
fonte

2 risposte

3

È tutto immaginario quindi una combinazione di programmi sta dicendo che potrebbe un giorno usarlo così tanto. Non preoccuparti, a meno che lo spazio di swap non superi la dimensione della RAM o che la RAM attiva + sia superiore al 75% della RAM fisica. (3 GB nel tuo caso)

Fondamentalmente, questa idea rende la gestione della memoria più veloce mentre il sistema è in esecuzione. Dato che i programmi continuano a chiedere sempre più memoria, il sistema distribuisce blocchi virtuali di RAM virtuale con tonnellate di spazio tra l'allocazione di ciascun processo. Questo rende alcuni calcoli molto comuni più facili e veloci e rende molto improbabile che le regioni si sovrappongano mai. Quando le regioni di memoria virtuale si sovrappongono, è più costoso mettere in pausa le cose e ri-mappare la memoria con un programma in esecuzione. Tutte queste olimpiadi mentali che coinvolgono la memoria virtuale rendono il tuo Mac più veloce.

    
risposta data 24.06.2011 - 07:25
fonte
3

Le librerie e i framework condivisi vengono conteggiati come parte della memoria virtuale per ogni applicazione che li utilizza.

Se hai 100 processi in esecuzione sul tuo computer e una libreria 5 MB utilizzata da tutti quei processi, allora quella libreria viene conteggiata come 500 MB della memoria virtuale.

Puoi anche sommare i numeri nella colonna Memoria virtuale dell'elenco dei processi - un nome più accurato per quella colonna è "Memoria Memoria privata". Non include dati condivisi.

100 processi non sono un numero così elevato come sembra (attualmente ne ho 75 sul mio MBP e sto lavorando molto meno del solito).

Alcune librerie sono utilizzate da quasi tutte le applicazioni del tuo sistema, anche quelle senza interfacce. Dopo aver aggiunto tutte le librerie condivise sul tuo sistema, hai una grande quantità di dati che in realtà richiede pochissima memoria.

Come menzionato da bmike, dovresti essere più preoccupato dello spazio di swap, o ram attivo + wired. In questo momento, Activity Monitor mi dice che ho 170 GB di memoria virtuale, ma sto usando solo 1,5 MB di spazio di swap.

    
risposta data 24.06.2011 - 08:14
fonte

Leggi altre domande sui tag