RamScope

Маленькая программа для Windows: показывает, что съедает оперативную память, объясняет почему и освобождает её одной кнопкой. A small Windows tool that shows what fills your RAM, explains why, and frees it with one button.

RamScope
The RamScope window: memory in use, a warning, the Free memory button and a list of apps by memory

readme.txt - БлокнотNotepad

  • Сколько занятоHow much is used Полоса загрузки, свободная память, файловый кэш и выделенная память — всё в одну строку. A usage bar, available memory, file cache and commit charge on one line.
  • Кто съел памятьWho ate it Все программы с той же цифрой памяти, что в Диспетчере задач. 17 процессов chrome.exe собраны в одну строку «Google Chrome». Every app with the same memory figure Task Manager shows. 17 chrome.exe processes become one “Google Chrome” row.
  • Почему так многоWhy so much Предупреждает, если программа забрала большую долю памяти, если что-то растёт и не останавливается (утечка), если драйвер раздул память ядра или выделенная память подходит к пределу. Warns when an app takes a big share of RAM, when something keeps growing (a leak), when a driver bloats kernel memory, or when commit charge nears its limit.
  • ОсвободитьFree it Кнопка Free memory выгружает из RAM страницы, которыми программы не пользуются. С правами администратора — ещё системные процессы и устаревший кэш. The Free memory button pushes idle pages out of every program. As administrator it also trims system processes and drops stale cache.

Как запуститьHow to run it

  1. Скачай RamScope.exe.Download RamScope.exe.
  2. Запусти. Установка не нужна, Python тоже. Работает на Windows 10 и 11.Run it. Nothing to install, no Python needed. Works on Windows 10 and 11.
  3. Нажми правой кнопкой на программу в списке, чтобы освободить её память или завершить её.Right-click an app in the list to free its memory or end it.

Программа portable: ничего не пишет в реестр и на диск, удаляется вместе с файлом. Файл без цифровой подписи, поэтому Windows может показать предупреждение — нажми «Подробнее», затем «Выполнить в любом случае». It’s portable: nothing is written to the registry or disk, and deleting the file removes it. The file isn’t digitally signed, so Windows may show a warning: click “More info”, then “Run anyway”.

Честно об очистке памятиThe honest bit about freeing RAM

Выгруженные страницы никуда не пропадают: если программе они снова понадобятся, Windows вернёт их из памяти или с диска, и это может вызвать короткое подтормаживание. Поэтому очистка полезнее всего прямо перед запуском чего-то тяжёлого, например игры. А если память съедает конкретная программа, лучше её перезапустить — RamScope покажет, какая.

Trimmed pages aren’t lost: when a program needs them again, Windows brings them back from RAM or disk, which can cause a brief stutter. So freeing memory helps most right before launching something heavy, like a game. And if one app is eating your RAM, restarting it is the real fix — RamScope shows you which one.

Файловый кэш (standby) RamScope по умолчанию не трогает: Windows и так отдаёт его программам мгновенно, а сброс кэша только заставит перечитывать файлы с диска.

RamScope leaves the file cache (standby) alone by default: Windows already hands it to programs instantly, and purging it would only make files load from disk again.

Как сделанаHow it’s made

Python и PyQt6, около 1 350 строк кода. Никаких вспомогательных библиотек для работы с памятью: все цифры RamScope берёт прямо у Windows.

Python and PyQt6, about 1,350 lines of code. No helper libraries for memory: RamScope reads every figure straight from Windows.

  • Прямо из ядраStraight from the kernel Список процессов с их личной памятью — через NtQuerySystemInformation, ту же цифру показывает Диспетчер задач. Списки страниц — через счётчики производительности PDH, выделенная память и пулы ядра — через GetPerformanceInfo. Всё на ctypes, без psutil. The process list with each one’s private memory comes from NtQuerySystemInformation — the same figure Task Manager shows. Page lists come from PDH performance counters, commit charge and kernel pools from GetPerformanceInfo. All through ctypes, no psutil.
  • Как освобождаетHow it frees memory EmptyWorkingSet для каждого процесса. С правами администратора программа включает себе нужную привилегию и командами NtSetSystemInformation сбрасывает изменённые страницы и устаревший кэш. Память замеряется до и после, так что результат честный. EmptyWorkingSet on every process. As administrator it enables the privilege it needs and uses NtSetSystemInformation commands to flush modified pages and stale cache. Memory is measured before and after, so the result is honest.
  • Откуда предупрежденияWhere warnings come from RamScope помнит последние 5 минут каждой программы. Дальше простые правила: больше 10% памяти — заметно, рост на 400 МБ за 5 минут — похоже на утечку, пул ядра больше 768 МБ — течёт драйвер, выделено 90% предела — скоро будут вылеты. RamScope keeps the last 5 minutes of every app. Then simple rules: over 10% of RAM gets a note, 400 MB of growth in 5 minutes looks like a leak, a kernel pool over 768 MB means a leaking driver, commit at 90% of its limit means crashes are near.
  • Минимализм нарочноPlain on purpose Первая версия была тёмной панелью с циферблатом, графиком и значком в трее. Её урезали до обычного окна Windows: одна полоса, две кнопки, список. Иконку с планкой памяти тоже рисует код. The first version was a dark dashboard with a gauge, a chart and a tray icon. It was cut down to a stock Windows window: one bar, two buttons, a list. Even the memory-stick icon is drawn by code.
  • Один файлOne file PyInstaller собирает всё в один EXE, из Qt выброшено то, что не нужно: программный OpenGL, переводы, сеть, PDF. После сборки EXE проверяет себя, и сборка не пройдёт, если он не может прочитать данные о памяти. PyInstaller packs everything into one EXE, with the unused parts of Qt thrown out: software OpenGL, translations, networking, PDF. After the build the EXE runs a self-check, and the build fails if it can’t read memory data.