Skip to content

Onzis/ExtraLowLatencyMod

Repository files navigation

ExtraLowLatencyMod

Windows Hardware Latency & Kernel Optimization Suite — высокоэффективный программно-аппаратный комплекс тонкой настройки системных таймеров, планировщика мультимедиа (MMCSS) и шины прерываний PCI Express для операционных систем Windows 10 & 11. Предназначен для критического снижения задержки ввода (Input Lag), ликвидации микро-фризов планировщика и стабилизации времени кадра (Frametime) в соревновательных дисциплинах и системах реального времени.


Основной функционал и принцип действия

Утилита объединяет как статические низкоуровневые твики операционной системы, так и динамический движок непрерывного удержания разрешения системного таймера, функционирующий в режиме интерактивной консоли или защищенной фоновой службы Windows.

┌────────────────────────────────────────────────────────────────────────┐
│                        ExtraLowLatencyMod Suite                        │
└───────────────────────────────────┬────────────────────────────────────┘
                                    │
         ┌──────────────────────────┼──────────────────────────┐
         ▼                          ▼                          ▼
 ┌───────────────┐          ┌───────────────┐          ┌───────────────┐
 │ SYSTEM TIMER  │          │   SCHEDULER   │          │ PCI INTERRUPT │
 │ 0.50 ms / 2KHz│          │  MMCSS Tuning │          │  MSI-Mode forced 
 └───────────────┘          └───────────────┘          └───────────────┘
Модуль оптимизации Механизм воздействия на систему Ожидаемый результат
Глобальный таймер ядра (TSC) Переопределение NtSetTimerResolution до жестких 0.50 мс (2000 Гц), синхронизация TSC-тактов кремния, деактивация Dynamic Tick. Исправление джиттера планировщика ОС, идеально плавная отрисовка мыши, стабильный фреймтайм без провалов.
MMCSS & Network De-Throttling Исключение резервирования CPU фоновым процессам, отключение пакетного сетевого тромбоза (Coalescing), приоритезация задач "Games" до класса High. Стабилизация Ping в сети, сохранение высокого 1% и 0.1% Min FPS во время фоновых обновлений Windows.
Интеллектуальный MSI-Mode Авто-сканирование топологии физической шины PCI и перевод хост-контроллеров (GPU, USB, Network, NVMe) в режим Message Signaled Interrupts. Устранение классических IRQ-конфликтов. Снижение задержки отклика периферии (мыши/клавиатуры) на 30-50%.

Подробная анатомия системного тюнинга

1. Фиксация шага ядра (System Timer Resolution)

По умолчанию Windows переводит ядра процессора в энергосберегающие интервалы ожидания до 15.6 мс. Это вызывает задержку запуска потоков.

  • GlobalTimerResolutionRequests (1): Принудительно разрешает ядру Windows 11 принимать глобальный запрос на прерывания 0.5 мс.
  • bcdedit /set disabledynamictick yes: Запрещает процессору пропускать такты аппаратного таймера (интервалы времени становятся монотонными и предсказуемыми).
  • bcdedit /set useplatformclock no: Блокирует медленный HPET (High Precision Event Timer) на материнской плате, переводя синхронизацию задач на аппаратный TSC счетчик процессора.

2. Освобождение пропускной способности MMCSS

  • SystemResponsiveness = 0: По умолчанию Windows резервирует до 20% ресурсов процессора под фоновые системные процессы. Этот параметр принудительно перераспределяет 100% ресурсов активному (игровому) приложению.
  • NetworkThrottlingIndex = 0xFFFFFFFF: Полностью отключает ограничительный троттлинг сетевой карты, предотвращая буферизацию пакетов Windows для борьбы с лагами и скрытыми пиками задержки (Network Spikes).
  • MMCSS Games Task Customization: Задает видеокарте (GPU Priority = 8), обработчику потоков (Priority = 6) и файловому вводу-выводу (SFIO Priority = High) высший приоритет планирования в обход общего пользовательского пула.

3. Message Signaled Interrupts (MSI-Mode) для шины PCI-E

В традиционном режиме прерываний Line-Based IRQ несколько аппаратных узлов вынуждены разделять одну физическую линию прерывания, ожидая своей очереди.

  • Программа осуществляет парсинг улья HKLM\SYSTEM\CurrentControlSet\Enum\PCI.
  • Для каждого совместимого контроллера (аппаратного чипа) прописывается логическая структура Interrupt Management\MessageSignaledInterruptProperties.
  • Устанавливается флаг MSISupported = 1 и лимитируется количество сообщений MessageNumberLimit = 1. Это позволяет периферии писать прерывания ввода напрямую в кэш процессора, минуя медленный опрос оборудования.

Архитектурная структура модулей

Проект спроектирован по принципу модульной избыточности и предлагает 3 способа конфигурирования системы:

  1. Program.cs — Консольная утилита и фоновая служба Windows в одном исходном файле. Реализована на C# с использованием P/Invoke (ntdll.dll, kernel32.dll, user32.dll) для моментального доступа к API ядра операционной системы.
  2. latency_tweaks_admin.bat — Автономный инсталляционный Batch-скрипт. Служит запасным средством развертывания реестра и BCD-параметров в одно касание перед первой перезагрузкой.
  3. latency_tweaks.reg — Экспортируемый файл реестра. Описывает чистые изменения системных сущностей без вмешательства исполняемого кода.
  4. app.manifest — Управляющий манифест сборки, требующий от Windows обязательного запроса прав Администратора (requireAdministrator) при запуске .exe.

Руководство по эксплуатации

КРИТИЧЕСКОЕ ТРЕБОВАНИЕ: Все компоненты комплекса вносят низкоуровневые изменения в ядро ОС и конфигурационные ветки реестра HKEY_LOCAL_MACHINE, в связи с чем требуют обязательного запуска с Правами Администратора.

Вариант А: Интерактивная консоль администратора (ExtraLowLatencyMod.exe)

Запустите скомпилированный файл ExtraLowLatencyMod.exe от имени Администратора. Откроется адаптивный интерфейс терминала со следующими сценариями:

  • Пункт 1: Автоматическое применение системных BCD-параметров, отключение сиквенса HPET, разблокировка глобальных лимитов таймера Windows и конфигурация MMCSS.
  • Пункт 2: Безопасный перевод PCI-E архитектуры и USB-контроллеров в высокоскоростной MSI-Mode.
  • Пункт 3: Непосредственная фиксация таймера на планке 0.50 мс в текущем потоке (Процесс должен оставаться открытым).
  • Пункт 6: Запуск диагностического модуля ядра. Отображает реальную точность тиков в реальном времени и выводит вердикт о наличии "рваного" таймера в системе.

Вариант Б: Установка в качестве постоянно действующей службы Windows (Рекомендуется)

Для устранения необходимости держать открытым консольное окно, вы можете интегрировать программу прямо во внутренний менеджер служб Windows (Service Control Manager). Программа зарегистрирует себя в роли службы автозагрузки, запускающейся на этапе раннего рендеринга ОС.

Установка службы:

ExtraLowLatencyMod.exe --install

Или выберите Пункт 4 в интерактивном меню. Служба ExtraLowLatencyModService будет добавлена с флагом start= auto (Запуск до входа пользователя в систему) и выполнит первичный микро-захват таймеров в энергоэффективном фоновом потоке, потребляющем 0.00% ресурсов CPU.

Удаление службы:

ExtraLowLatencyMod.exe --uninstall

Или выберите Пункт 5 в интерактивном меню. Служба будет корректно остановлена, таймер ядра сброшен в заводские спецификации, а её бинарная регистрация полностью стерта из базы данных Windows Services.


Компиляция и развертывание

Продукт написан на базе современного .NET 8.0 SDK и оптимизирован под архитектуру Windows 64-bit.

Требования для сборки:

  • .NET SDK 8.0 или новее.

Команда сборки в единый, полностью автономный дистрибутив (Standalone single-file EXE):

Для того чтобы запустить программу на компьютерах без предустановленной среды .NET Runtime, соберите проект со следующими ключами оптимизации:

dotnet publish -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true -p:PublishTrimmed=true

Пояснение параметров:

  • -r win-x64: Жесткая компиляция машинного кода под 64-разрядные процессоры x86-64.
  • --self-contained true: Все необходимые системные библиотеки .NET упаковываются прямо в исполняемый файл.
  • -p:PublishSingleFile=true: Сборка компилирует на выходе ровно один легковесный файл .exe без сопутствующих библиотек.
  • -p:PublishTrimmed=true: Активирует обрезку неиспользуемых метаданных среды выполнения для минимизации занимаемой памяти и ускорения холодного старта процесса.

Диагностика и проверка результатов

После применения настроек и перезагрузки ПК запустите Пункт 6 (Подробный статус-отчет) в консоли ExtraLowLatencyMod.

Анализатор считывает системную точность ядра в реальном времени:

  1. Нормальное значение (Оптимизировано): 0.5000 мс — Внутренний Timer Resolution зафиксирован. FPS плавный, прерывания сбалансированы.
  2. Дефолтное значение (Заводское): 15.6250 мс — Таймер ядра отключен / сброшен. Система функционирует в режиме повышенного энергосбережения за счет точности задержек ввода.

Безопасность и откат изменений

Все изменения, реализованные комплексом, полностью обратимы. Для сброса параметров в заводские достаточно:

  1. Зайти в интерактивное меню и последовательно удалить службу (Пункт 5).
  2. Выполнить сброс системного таймера, закрыв активную консоль удержания по сочетанию клавиш Ctrl + C.
  3. Для отката статических параметров BCD в терминале Администратора введите:
    bcdedit /deletevalue disabledynamictick
    bcdedit /deletevalue useplatformclock
    bcdedit /deletevalue tscsyncpolicy
  4. Вернуть параметры реестра в изначальные можно стандартным средством восстановления Windows (созданием точки восстановления перед первым применением утилиты).

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors