Мониторинг памяти
НаблюдениеЧетыре показателя обновляются по таймеру: занятая память, свободная, кеш файлов и выделенная память. Этого хватает, чтобы понять, машине правда не хватает ОЗУ или она просто держит много кеша.
MemCleaner — небольшая программа для Windows, которая возвращает системе занятую память. Она следит за ОЗУ, очищает выбранные области и умеет работать по таймеру или при превышении порога. Четыре установщика покрывают всё от Windows XP до 11, включая версии, до которых у Microsoft больше не доходят руки.
01 / Возможности
Здесь ничего не спрятано в трёх уровнях меню. Окно после установки — это вся программа, а настройки открываются одной комбинацией клавиш.
Коротко о главном
Монитор памяти, который умеет чистить, или чистильщик, который умеет следить. Подходит и то и другое описание. Окно тёмное, потому что график памяти часто живёт на втором мониторе ночью, а интерфейс компактный, потому что это утилита, а не дашборд.
Исходники на GitHubЧетыре показателя обновляются по таймеру: занятая память, свободная, кеш файлов и выделенная память. Этого хватает, чтобы понять, машине правда не хватает ОЗУ или она просто держит много кеша.
Рабочие наборы процессов, standby-список, изменённые страницы, системный кеш файлов. Ненужные области можно отключить. Недоступные остаются неактивными, а не делают вид, что работают.
Запуск каждые N минут, при превышении порога или и то и другое сразу. Условия независимы, так что один порог — вполне рабочий вариант.
У каждого запуска есть время, причина и примерный объём освобождённой памяти. Удобно, когда ищешь, что съедает ОЗУ за ночь.
Игра, виртуалка или сборочный сервер могут сохранить свой рабочий набор, пока всё остальное вычищается.
Автозапуск, сворачивание в трей и вызов очистки откуда угодно по Ctrl+Alt+M. Комбинация глобальная, работает даже когда фокус в другом окне.
Английский, русский или язык системы. Тёмная тема здесь единственная, и это осознанно.
02 / Внутренности
Память, которая выглядит свободной, не всегда свободна, а занятая не всегда нужна. Вот пулы, до которых дотягивается MemCleaner, и что каждый из них делает.
Каждый запущенный процесс держит страницы, к которым недавно обращался. EmptyWorkingSet просит отдать те, что больше не используются. Windows подгрузит их с диска при следующем обращении, поэтому первый клик по старому окну может ощущаться медленнее.
EmptyWorkingSet
Закрытые программы оставляют свои страницы в кеше, готовыми к повторному использованию. Кеш полезен, пока не разрастается настолько, что системе начинает не хватать места. Очистка standby освобождает его сразу.
NtSetSystemInformation
Грязные страницы, которые ждут записи на диск. Их сброс освобождает память и может сократить следующую очередь записи, но прямо сейчас добавит немного дисковых операций.
NtSetSystemInformation
Windows кеширует чтение файлов в ОЗУ. На рабочей станции с большим объёмом дисковых операций кеш может разрастись непропорционально. Из четырёх вариантов это самый ситуативный.
SetSystemFileCacheSize
Windows кеширует не просто так. Чистильщик не лечит машину, которой правда не хватает памяти. Если вы весь день сидите на 95%, больше ОЗУ или меньше фоновых программ дадут больше, чем любая кнопка. MemCleaner нужен для промежуточных случаев и для того, чтобы видеть, что происходит. Standby-список, изменённые страницы и кеш файлов доступны только привилегированному процессу, так что Windows попросит права администратора.
| Область памяти | XP SP3 | Vista SP2 | 7 и 8.1 | 10 и 11 |
|---|---|---|---|---|
| Рабочие наборы процессовEmptyWorkingSet | Да | Да | Да | Да |
| Standby-список и изменённые страницыNtSetSystemInformation | Нет | Да | Да | Да |
| Системный кеш файловSetSystemFileCacheSize | Только x64 | Да | Да | Да |
| Автозапуск с правамиПланировщик задач | Ключ Run | Да | Да | Да |
Сборка для XP только 32-битная, поэтому пункт кеша файлов там скрыт. На XP автозапуск использует ключ Run текущего пользователя, а не задачу в планировщике. В legacy-сборках недоступные области помечены и не включаются.
03 / Сборки
.NET 10 никогда не появится на Windows XP. Поэтому современная версия — WPF, а старым системам достаётся WinForms на .NET Framework 3.5: те же функции, где позволяет ОС, более простой интерфейс и меньше анимации.
WPF · 1809 или новее
Основная сборка. Полный интерфейс, живой мониторинг, все области очистки, которые даёт ОС, и задача планировщика для автозапуска.
MemCleaner-Setup-1.0.0.0.exe СкачатьWinForms · SP1
Для 7 SP1 и 8.1. .NET Framework 3.5 входит в обе системы, так что установщику нечего докачивать.
MemCleaner-Legacy-7-8.1-Setup-1.0.0.0.exe СкачатьWinForms · SP2
Тот же legacy-исходник для Vista SP2. Сначала поставьте .NET Framework 3.5, в образе Vista его нет.
MemCleaner-Legacy-Vista-Setup-1.0.0.0.exe СкачатьWinForms · SP3
XP SP3, 32 бита. Только рабочие наборы плюс мониторинг и автозапуск через ключ Run. Самый честный пример «делаем то, что ОС реально умеет».
MemCleaner-Legacy-XP-Setup-1.0.0.0.exe Скачать04 / Установка
Установщик проверяет версию Windows до того, как что-либо записать. Несовместимая система отвалится сразу, а не оставит после себя половину программы.
В релизах по одному файлу на семейство Windows. Размеры небольшие, веб-установщика нет, ничего не докачивается в фоне.
Начните с рабочих наборов и standby-списка. Кеш файлов стоит чистить только если вы понимаете, зачем.
Процентов 80–85 — разумная отправная точка. Сверните в трей и забудьте о программе.
Ни чистки реестра, ни удаления временных файлов, ни драйвера, ни патчей ядра, ни встроенного антивируса, ни модуля «ускорения ПК». Только документированные API Windows и NtSetSystemInformation — недокументированный, но стабильный уже двадцать лет.
Современная версия собирается через .NET SDK. Legacy-сборки используют reference assemblies .NET Framework 3.5, установщики — скрипты Inno Setup.
# Windows 10 / 11
dotnet publish windows-10-11/source/src/MemCleaner/MemCleaner.csproj -c Release -o publish
# Windows XP / Vista / 7 / 8.1
dotnet build windows-xp/source/MemCleanerLegacy/MemCleanerLegacy.csproj -c Release
05 / Скачать
Установщики лежат в GitHub Releases. Бинарники небольшие, тулбаров в комплекте нет, а исходники рядом — если хочется собрать самому. Версия 1.0.0 — первый публичный релиз.
06 / Вопросы
Короткие ответы на то, что спрашивают перед установкой чистильщика памяти. Если вашего вопроса нет, трекер открыт.
Спросить на GitHubДа. Лицензия MIT, полный исходный код на GitHub. Платной версии, пробного периода и рекламы внутри приложения нет.
Для standby-списка, изменённых страниц и кеша файлов — да. Windows отдаёт эти интерфейсы только привилегированному процессу, так что UAC появится. Если отказаться, рабочие наборы всё равно можно почистить.
Иногда. Если машина близка к пределу и standby-список большой, его очистка может прекратить подкачку и переключение между программами станет бодрее. Когда свободной памяти много, разница будет небольшой и заметной скорее в цифрах, чем на ощупь. Windows неплохо управляет памятью, так что обещания «ускорить ПК на 300%» должны вызывать подозрение.
Windows XP SP3, Vista SP2, 7 SP1, 8.1, Windows 10 1809 и новее, Windows 11. Современная сборка только x64. XP, Vista и 7/8.1 получают отдельные WinForms-установщики на .NET Framework 3.5.
Аккаунтов и телеметрии нет. Настройки, исключения и история очисток хранятся в AppData текущего пользователя.
RAMMap — диагностическая утилита Microsoft: показывает, что занимает физическую память, и позволяет чистить вручную. MemCleaner — маленькая постоянно включённая версия этой идеи: мониторинг, порог, значок в трее, глобальная комбинация и журнал запусков.