MEM — команда вывода информации о памяти в MS-DOS

MEM — команда MS-DOS для отображения статистики использования оперативной памяти. В Windows 10/11 недоступна, но работает в DOS-среде и виртуальных машинах.

Команда MEM отображает статистику использования оперативной памяти в операционных системах семейства MS-DOS: общий объём, свободную и занятую область, распределение по блокам и список загруженных программ. В Windows NT/XP/10/11 команда недоступна — она осталась инструментом для работы в DOS-среде, включая виртуальные машины с DOS или программу NTVDM.

Синтаксис команды MEM

MEM [/C] [/D] [/F] [/M модуль] [/P]

Параметры:

  • /C — вывести список программ, загруженных в обычную и верхнюю память, с размерами.
  • /D — подробный листинг всех блоков памяти (debug-информация).
  • /F — показать области свободной памяти и их размеры.
  • /M модуль — показать, сколько памяти занимает конкретный модуль/программа.
  • /P — постраничный вывод (пауза после каждого экрана).

Без параметров команда выводит краткую сводку: общая память, верхняя память (UMA), доступная обычная память.

Ключи и параметры

Ключ Описание Пример
/C Список программ в обычной и верхней памяти с их размерами MEM /C
/D Подробный вывод всех блоков памяти (диагностический режим) MEM /D
/F Показать свободные блоки памяти и их размеры MEM /F
/M модуль Объём памяти, занятой конкретным модулем или программой MEM /M MOUSE
/P Постраничный вывод с паузой после каждого экрана MEM /D /P
(без ключей) Краткая сводка: общая, верхняя, свободная память MEM

Примеры использования

Краткая сводка по памяти

Получить общий обзор использования памяти в DOS:

MEM

Вывод покажет три строки: общий объём обычной памяти (до 640 КБ), доступную свободную память и размер верхней памяти (HMA).

Список загруженных программ

Увидеть, какие программы и драйверы загружены и сколько памяти они занимают:

MEM /C

Вывод содержит две таблицы: программы в обычной памяти (<0–640 КБ) и программы в верхней памяти (UMB). Полезно для оптимизации загрузки DOS-конфигурации.

Диагностика всех блоков памяти

Для детального анализа распределения памяти по блокам:

MEM /D

Вывод показывает каждый блок памяти с адресом, размером и именем владельца — удобно при отладке конфликтов между драйверами.

Проверка свободных блоков

Если программа отказывается запускаться из-за нехватки памяти, проверьте доступные свободные блоки:

MEM /F

Будут показаны все незанятые области в обычной памяти. Наибольший свободный блок (Largest executable program size) — это максимум, доступный для запуска программы.

Память конкретного модуля

Проверить, сколько памяти занимает драйвер мыши:

MEM /M MOUSE

Вывод покажет адрес и размер блоков памяти, занятых модулем MOUSE.

Длинный вывод с паузой

Если содержимое не помещается на один экран, используйте пагинацию:

MEM /D /P

После каждого экрана вывод приостановится с ожиданием нажатия клавиши.

Сохранение результата в файл

Перенаправить вывод в текстовый файл для последующего анализа:

MEM /C > mem-report.txt

Файл mem-report.txt создаётся в текущем каталоге и содержит полный вывод команды.

Частые ошибки и решения

Ошибка / поведение Причина Решение
‘MEM’ is not recognized в Windows 10/11 Команда недоступна в 64-разрядных Windows Используйте wmic memorychip, systeminfo или Get-CimInstance Win32_PhysicalMemory в PowerShell
Команда зависает без вывода NTVDM (32-разрядная подсистема DOS) недоступна или отключена Включите компонент «Поддержка NTVDM» в функциях Windows или используйте эмулятор DOSBox
Вывод прокручивается, ничего не прочитать Много блоков памяти — вывод превышает размер экрана Добавьте ключ /P для постраничного вывода или перенаправьте в файл
Module not found при использовании /M Модуль с указанным именем не загружен в память Проверьте точное имя модуля через MEM /C
Показывает только 640 КБ общей памяти Штатное поведение — DOS видит только «обычную» память до 640 КБ Для расширенной памяти (XMS/EMS) нужен менеджер памяти: HIMEM.SYS или EMM386.EXE

Когда применять, а когда нет

MEM актуальна исключительно в среде MS-DOS и DOS-совместимых систем (FreeDOS, DOSBox, Windows 9x в режиме DOS). В Windows начиная с XP и тем более в Windows 10/11 команда отсутствует, поскольку модель плоской памяти 32/64-разрядных систем не имеет деления на «обычную» и «верхнюю» память. Если вам нужна информация об оперативной памяти в современной Windows, используйте systeminfo (суммарные данные), wmic memorychip list full (физические модули) или PowerShell-командлет Get-CimInstance -ClassName Win32_PhysicalMemory. Для мониторинга использования памяти запущенными процессами подходит tasklist или диспетчер задач.

FAQ

Работает ли MEM в Windows 10?

Нет. Команда MEM недоступна в Windows NT-систeмах начиная с Windows XP (64-разрядные версии). В 32-разрядных версиях Windows XP/7 теоретически доступна через NTVDM, но в Windows 10 64-bit отсутствует полностью.

Чем заменить MEM в современной Windows?

Для сводки по памяти: systeminfo | findstr /C:"Total Physical Memory". Для деталей по физическим планкам: wmic memorychip list full. В PowerShell: Get-CimInstance Win32_PhysicalMemory | Select-Object Capacity,Speed.

Как запустить MEM в DOSBox?

Запустите DOSBox, смонтируйте нужную папку командой MOUNT C C:\DOSFOLDER, перейдите в неё и введите MEM. DOSBox эмулирует DOS-окружение, в котором команда работает штатно.

Что такое «Largest executable program size»?

Это максимальный непрерывный свободный блок обычной памяти (до 640 КБ), доступный для запуска программы. Если приложение требует больше этого значения, оно не запустится.

Чем отличается /C от /D?

Ключ /C показывает только загруженные программы с суммарным объёмом памяти — удобно для оптимизации. Ключ /D выводит все блоки памяти с адресами — нужен для диагностики конфликтов и отладки.

Оцените статью
( Пока оценок нет )
MW10
Добавить комментарий

Нажимая на кнопку "Отправить комментарий", я даю согласие на обработку персональных данных и принимаю политику конфиденциальности.