A program that automatically sets a high priority for game processes
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
lzrdblzzrd 203680a3d1 Game mode: drop a process after two low memory checks
A tracked game keeps its status through the first below-threshold scan and loses it on the second consecutive one; memory back at or above the threshold resets the wait. Mode stays on while any game remains.
2026-11-09 20:12:35 +03:00
.gitignore fix: ErrorAlreadyExists 1832->183, wrap syscall errors, signal handling, mutex cleanup, log sync 2026-06-20 23:41:59 +03:00
go.mod fix: ErrorAlreadyExists 1832->183, wrap syscall errors, signal handling, mutex cleanup, log sync 2026-06-20 23:41:59 +03:00
main.go Game mode: drop a process after two low memory checks 2026-11-09 20:12:35 +03:00
main_test.go Rewrite: compact log, tracked restore errors, tests 2026-11-08 21:52:26 +03:00
README.md Game mode: drop a process after two low memory checks 2026-11-09 20:12:35 +03:00

autopriority

Утилита для Windows: управляет приоритетом процессов по потреблению памяти. Тяжёлым процессам назначает HIGH, при запуске требовательной игры остальным — IDLE.

Как работает

Программа проверяет процессы при запуске и далее через заданный интервал.

Обычный режим. Процесс с памятью не ниже -mem получает HIGH. Если память опускается ниже порога, а приоритет был выше NORMAL (ABOVE_NORMAL, HIGH, REALTIME), возвращается NORMAL. Остальные процессы не трогаются.

Игровой режим. Если процесс занимает не меньше -game-mem, ему назначается HIGH, остальным доступным процессам — IDLE, прежние приоритеты запоминаются. Процесс теряет игровой статус, только если его память держится ниже порога две проверки подряд: одиночная просадка режим не выключает. Правило действует для каждого процесса отдельно, режим держится, пока есть хотя бы один игровой процесс, а процесс, снова превысивший порог, становится игровым заново. Порог считается по памяти, поэтому режим может включить любое приложение.

Возврат приоритетов. Когда не осталось игровых процессов — они завершились или потеряли игровой статус, — сохранённые приоритеты возвращаются. Если вернуть не удалось, попытка повторяется при следующей проверке.

Принудительное завершение программы не восстанавливает приоритеты, изменённые в игровом режиме.

Сборка

Нужен Go 1.26 или новее.

go build -o autopriority.exe .
go build -trimpath -buildvcs=false -ldflags="-H=windowsgui -s -w -buildid=" -o autopriority.exe .

Первая команда собирает консольную версию, вторая — фоновую без окна.

Запуск

autopriority [параметры]
Параметр По умолчанию Описание
-mem 512M Порог памяти для обычного режима
-game-mem 2G Порог игрового режима, должен быть больше -mem; 0 отключает режим
-interval 1 минута Интервал между проверками, минимум 10 секунд
-dry-run false Показать решения, не меняя приоритеты

Автозапуск

Win+R → shell:startup → положить в открывшуюся папку ярлык или копию autopriority.exe.

Журнал

%TEMP%\autopriority.log, перезаписывается при запуске.

  • start, stop — запуск с параметрами и завершение;
  • set имя[PID] СТАРЫЙ>НОВЫЙ — смена приоритета;
  • restore имя[PID] СТАРЫЙ>НОВЫЙ — возврат сохранённого приоритета;
  • enabling game mode: имя[PID] — процесс включил игровой режим;
  • game+ имя[PID] — ещё один процесс достиг игрового порога;
  • game mode enabled — приоритеты расставлены, режим действует;
  • disabling game mode — начат возврат приоритетов;
  • game mode disabled — приоритеты возвращены, режим выключен;
  • error — ошибка проверки, чтения процесса или восстановления;
  • dry имя[PID] СТАРЫЙ>НОВЫЙ — решение в режиме -dry-run.

Зависимости

Отсутствуют.