Поделиться через


!memusage

Расширение !memusage отображает сводную статистику использования физической памяти.

Синтаксис

!memusage [Flags]

Параметры

Flags
Может быть любым из следующих значений. Значение по умолчанию — 0x0.

0x0
Отображает общие сводные сведения, а также более подробное описание страниц в базе данных PFN. Пример этого типа выходных данных см. в разделе "Примечания".

0x1
Отображает только сводные сведения об измененных страницах без записи в базе данных PFN.

0x2
Отображает только подробные сведения об измененных страницах без записи в базе данных PFN.

0x8
Отображает только общие сводные сведения об использовании памяти.

Среда

Режимы: только режим ядра

DLL-библиотеки

Kdexts.dll

Дополнительная информация

Статистика физической памяти собирается из таблицы страницы диспетчера памяти (PFN).

Эта команда занимает много времени, особенно если целевой компьютер работает в 64-разрядном режиме, из-за большего объема данных для получения. При загрузке базы данных PFN счетчик показывает его ход выполнения. Чтобы ускорить загрузку, используйте сетевое подключение или увеличьте скорость COM-порта с помощью клавиш CTRL+A (переключение скорости Baud) или используйте команду кэша (задать размер кэша) для увеличения размера кэша (возможно, около 10 МБ).

Команду !memusage также можно использовать при выполнении локальной отладки ядра.

Ниже приведен пример выходных данных из этого расширения:

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) 

...

Кроме того, в отчете содержатся подробные сведения об использовании памяти, видимой отладчику.

  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 )

...

Первый столбец отображает адрес структуры области управления, описывающей каждую сопоставленную структуру. Используйте команду расширения !ca для отображения этих областей управления.

Замечания

Для анализа использования виртуальной памяти можно использовать команду расширения !vm . Обычно это расширение более полезно, чем !memusage. Дополнительные сведения об управлении памятью см. в статье Microsoft Windows Internals, Павел Yosifovich, Андреа Allievi, Алекс Ионеску, Марк Руссинович и Дэвид Соломон.

Команда расширения !pfn может использоваться для отображения определенной записи кадра страницы в базе данных PFN.

Расширение !pool отображает сведения о выделении определенного пула или о всем системном пуле.