!memusage
L'estensione !memusage visualizza statistiche di riepilogo sull'uso della memoria fisica.
Sintassi
!memusage [Flags]
Parametri
Bandiere
Può essere uno dei valori seguenti. Il valore predefinito è 0x0.
0x0
Visualizza informazioni di riepilogo generali, insieme a una descrizione più dettagliata delle pagine nel database PFN. Per un esempio di questo tipo di output, vedere la sezione Osservazioni.
0x1
Visualizza solo informazioni di riepilogo sulle pagine di tipo no-write modificate nel database PFN.
0x2
Visualizza solo informazioni dettagliate sulle pagine senza scrittura modificate nel database PFN.
0x8
Visualizza solo informazioni di riepilogo generali sull'utilizzo della memoria.
Ambiente
Modalità: solo modalità kernel
DLL
Kdexts.dll
Informazioni aggiuntive
Le statistiche sulla memoria fisica vengono raccolte dalla tabella di database PFN (Memory Manager page frame number).
L'esecuzione di questo comando richiede molto tempo, soprattutto se il computer di destinazione è in esecuzione in modalità a 64 bit, a causa della maggiore quantità di dati da ottenere. Durante il caricamento del database PFN, un contatore mostra lo stato di avanzamento. Per velocizzare il caricamento, usare una connessione di rete o aumentare la velocità della porta COM con il tasto CTRL+A (Toggle Baud Rate) oppure usare il comando .cache (Imposta dimensioni cache) per aumentare le dimensioni della cache (ad esempio a circa 10 MB).
Il comando !memusage può essere usato anche durante l'esecuzione del debug del kernel locale.
Ecco un esempio dell'output di questa estensione:
kd> !memusage
loading PFN database
loading (100% complete)
Compiling memory usage data (99% Complete).
Zeroed: 218 ( 872 kb)
Free: 831 ( 3324 kb)
Standby: 124049 ( 496196 kb)
Modified: 55101 ( 220404 kb)
ModifiedNoWrite: 58 ( 232 kb)
Active/Valid: 321846 ( 1287384 kb)
Transition: 8 ( 32 kb)
SLIST/Temp: 1533 ( 6132 kb)
Bad: 0 ( 0 kb)
Unknown: 0 ( 0 kb)
TOTAL: 503644 ( 2014576 kb)
Dangling Yes Commit: 184 ( 736 kb)
Dangling No Commit: 81706 ( 326824 kb)
Building kernel map
Finished building kernel map
Scanning PFN database - (100% complete)
...
Il report include anche informazioni dettagliate sull'utilizzo della memoria visibile al debugger.
Usage Summary (in Kb):
Control Valid Standby Dirty Shared Locked PageTables name
ffffaf0fb369f010 204 956 0 32 204 0 mapped_file( shell32.dll )
ffffaf0fb369f270 492 60 0 252 492 0 mapped_file( KernelBase.dll )
ffffaf0fb36ad050 20 36 0 0 20 0 mapped_file( WMIsvc.dll )
ffffaf0fb36adad0 88 144 0 40 88 0 mapped_file( Can't read file name buffer at ffffc10e0497e170 )
ffffaf0fb36b5670 780 1012 0 560 780 0 mapped_file( KernelBase.dll )
ffffaf0fb36b5910 44 144 0 28 44 0 mapped_file( cfgmgr32.dll )
ffffaf0fb36bc270 8 0 0 0 8 0 mapped_file( Can't read file name buffer at ffffc10e061a17d0 )
ffffaf0fb36bc520 24 56 0 4 24 0 mapped_file( ShareHost.dll )
...
Nella prima colonna viene visualizzato l'indirizzo della struttura dell'area di controllo che descrive ogni struttura mappata. Usare il comando !ca extension per visualizzare queste aree di controllo.
Osservazioni:
È possibile usare il comando !vm extension per analizzare l'uso della memoria virtuale. Questa estensione è in genere più utile di !memusage. Per altre informazioni sulla gestione della memoria, vedi Microsoft Windows Internals, di Paolo Yosifovich, Andrea Allievi, Alex Ionovich, Mark Russinovich e David Solomon.
Il comando !pfn extension può essere usato per visualizzare una particolare voce di frame di pagina nel database PFN.
L'estensione !pool visualizza informazioni su un'allocazione del pool specifica o sull'intero pool a livello di sistema.