Команда MEM отображает статистику использования оперативной памяти в операционных системах семейства MS-DOS: общий объём, свободную и занятую область, распределение по блокам и список загруженных программ. В Windows NT/XP/10/11 команда недоступна — она осталась инструментом для работы в DOS-среде, включая виртуальные машины с DOS или программу NTVDM.
- Синтаксис команды MEM
- Ключи и параметры
- Примеры использования
- Краткая сводка по памяти
- Список загруженных программ
- Диагностика всех блоков памяти
- Проверка свободных блоков
- Память конкретного модуля
- Длинный вывод с паузой
- Сохранение результата в файл
- Частые ошибки и решения
- Когда применять, а когда нет
- FAQ
- Работает ли MEM в Windows 10?
- Чем заменить MEM в современной Windows?
- Как запустить MEM в DOSBox?
- Что такое «Largest executable program size»?
- Чем отличается /C от /D?
Синтаксис команды 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 выводит все блоки памяти с адресами — нужен для диагностики конфликтов и отладки.


