Byte privati ​​VS Working Set in Process Explorer


39

So che il working set è la quantità effettiva di memoria utilizzata dal processo e anche che i byte privati ​​sono la quantità riservata nel caso in cui abbia bisogno di più.

Quindi aggiungerei i due per capire quanta memoria viene REALMENTE portata via da altri processi sul sistema?

Risposte:


52

Temo che non sia così semplice. In particolare i byte privati ​​non sono molto utili per rispondere alla domanda che poni.

La prima cosa da tenere a mente è che potrebbe esistere una pagina di memoria nella memoria principale o nella memoria esterna (in questi giorni "paging del disco" o "scambio"). Il secondo è che un processo avrà pagine private di memoria nel suo footprint, ma utilizzerà anche oggetti in pagine condivise, che altri processi stanno usando contemporaneamente.

Il set di lavoro è la dimensione delle pagine appartenenti al processo, che sono attualmente archiviate nella memoria principale. Quando una pagina di memoria utilizzata da un processo viene spostata nel file di paging, viene rimossa dalla metrica del set di lavoro e quando viene richiamata nella memoria principale, viene nuovamente aggiunta.

Il working set non si riferisce esclusivamente alla memoria posseduta dal processo. i processi utilizzano molti oggetti di memoria condivisa e la dimensione di questi oggetti si riflette nella stat. sfortunatamente, quando due processi condividono un oggetto da 1 MB, entrambi i processi mostrano un'allocazione di 1 MB nel set di lavoro, quindi se si sommano tutti i set di lavoro, l'oggetto da 1 MB verrà registrato due volte, quindi l'accumulo di tutte le dimensioni del set di lavoro potrebbe in casi estremi, sembrano superare le dimensioni della ram disponibile. vedi di più qui: http://cybernetnews.com/cybernotes-windows-memory-usage-explained/

Byte privati ​​si riferisce alla quantità di spazio del file di paging allocato al processo (non necessariamente utilizzato) nel caso in cui l'impronta della memoria privata del processo sia completamente paginata per lo scambio. il più delle volte, il processo non è interamente (o affatto) residente in file di paging, quindi è per questo che i byte privati ​​sembrano avere "spazio" per un'ulteriore allocazione. Non è comunque il caso.

I byte privati ​​si riferiscono tuttavia solo alla memoria privata dei processi, quindi questo valore potrebbe non riflettere le risorse condivise (anche se la risorsa condivisa è attualmente utilizzata solo da questo processo).

"Working set Private" ("Byte WS privati" o "WS privato" in Esplora processi a seconda della versione) è probabilmente la metrica migliore per l'uso. non si occupa del file di paging, quindi ottieni una rappresentazione accurata dell'impatto dei processi sul tuo ram fisico e non conta doppiamente gli oggetti condivisi. gli oggetti condivisi vengono conteggiati una volta (solo per il processo che li ha creati), ma ciò significa anche che dal punto di vista di un singolo processo non stai registrando che il tuo processo utilizza oggetti condivisi creati da un altro processo, quindi il tuo processo potrebbe usare più ram su un altro macchina o in una situazione in cui era necessario creare l'oggetto condiviso stesso invece di utilizzare un'altra istanza di processi di esso. Il Task Manager di Windows utilizza working set private come metrica di utilizzo della memoria.

spero che sia d'aiuto


1
Quindi, avrei ragione nel dire che "Byte privati" è la quantità di memoria richiesta dal processo e "Working Set" sono i Byte privati ​​più una piccola memoria condivisa aggiuntiva che altri processi possono utilizzare? Inoltre, "Private Working Set" è la quantità di memoria privata attualmente nella RAM fisica, che è la rappresentazione più accurata di quanta memoria sta effettivamente utilizzando?
Scandalista,

4
sì, praticamente. se sei preoccupato per il set di lavoro privato gratuito ram è la strada da percorrere. se sei preoccupato per il file di paging o il commit completo (ram + memoria virtuale), i byte privati ​​sono una buona metrica.
Frank Thomas,

"Byte privati" è lo spazio degli indirizzi virtuali privati ​​impegnati del processo. Alcuni di questi potrebbero trovarsi nel file di paging, altri nella RAM, altri in entrambi i posti, alcuni - forse la maggior parte - potrebbero non avere alcun archivio fisico assegnato (ancora). È il contributo del processo al "commit charge" complessivo del sistema. Il "set di lavoro privato" è il sottoinsieme di "byte privati" che si trova nella RAM. nb: non troverai "byte privati" o simili nei display di RAMmap perché RAMmap si occupa solo della memoria fisica (RAM), non virtuale.
Jamie Hanrahan,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.