Trinity - Управление частотой процессора
Цитата: dehote9223 от 18.08.2026, 15:49Сибирь, привет и спасибо за предложение добавить всплывающие подсказки )
Правда, они были изначально, нужно навести курсор на слайдеры EPP и Парковка ядерВозможно, я позже попрошу ИИ написать мануал для программы, пока неактуально )
Таймер опроса частоты и параметров системы теперь полностью отключается при сворачивании программы в трей.
Актуальные данные о частоте процессора и состоянии служб теперь собираются строго в момент наведения курсора мыши на иконку в трее.
Сибирь, привет и спасибо за предложение добавить всплывающие подсказки )
Правда, они были изначально, нужно навести курсор на слайдеры EPP и Парковка ядер
Возможно, я позже попрошу ИИ написать мануал для программы, пока неактуально )
Таймер опроса частоты и параметров системы теперь полностью отключается при сворачивании программы в трей.
Актуальные данные о частоте процессора и состоянии служб теперь собираются строго в момент наведения курсора мыши на иконку в трее.
Цитата: dehote9223 от 18.08.2026, 19:16Улучшение механизма автозапуска (Переход на Планировщик заданий)
Автозапуск программы теперь настраивается через системный Планировщик заданий Windows с параметром наивысших прав (/rl highest).
Программа распознает как новый тип автозапуска, так и старый (через ветку реестра HKCU\...\Run).
При отключении автозапуска старые записи реестра автоматически и бесследно вычищаются.Проверка статуса автозапуска переведена на прямое чтение дерева задач в реестре — это работает мгновенно и без создания лишних фоновых процессов cmd.exe / schtasks.exe.
Зачем это нужно
Так как для работы с частотами процессора и питанием программе требуются права администратора, встроенный механизм безопасности Windows (UAC) молча блокировал запуск приложения из классической ветки автозагрузки Run при старте системы.
Запуск через Планировщик заданий позволяет программе стартовать вместе с Windows от имени администратора без всплывающих окон подтверждения UAC.
Улучшение механизма автозапуска (Переход на Планировщик заданий)
Автозапуск программы теперь настраивается через системный Планировщик заданий Windows с параметром наивысших прав (/rl highest).
Программа распознает как новый тип автозапуска, так и старый (через ветку реестра HKCU\...\Run).
При отключении автозапуска старые записи реестра автоматически и бесследно вычищаются.
Проверка статуса автозапуска переведена на прямое чтение дерева задач в реестре — это работает мгновенно и без создания лишних фоновых процессов cmd.exe / schtasks.exe.
Зачем это нужно
Так как для работы с частотами процессора и питанием программе требуются права администратора, встроенный механизм безопасности Windows (UAC) молча блокировал запуск приложения из классической ветки автозагрузки Run при старте системы.
Запуск через Планировщик заданий позволяет программе стартовать вместе с Windows от имени администратора без всплывающих окон подтверждения UAC.
Цитата: dehote9223 от 18.08.2026, 19:25Есть такое предложение от ИИ:
Переход с settings.dat на стандартный settings.ini
Сейчас чтение настроек завязано на строгий fwscanf_s(f, L"%d %d %d...", ...). Если вы добавите 8-й или 9-й параметр, у пользователей со старым файлом настроек чтение сломается.
Использование встроенных функций Windows GetPrivateProfileIntW / WritePrivateProfileStringW делает файл настроек человекочитаемым и обратно совместимым.Можно отказаться от старого варианта и перейти на этот с хранением файла настроек рядом с trinity.exe
Как думаете, стоит ли?
Есть такое предложение от ИИ:
Переход с settings.dat на стандартный settings.ini
Сейчас чтение настроек завязано на строгий fwscanf_s(f, L"%d %d %d...", ...). Если вы добавите 8-й или 9-й параметр, у пользователей со старым файлом настроек чтение сломается.
Использование встроенных функций Windows GetPrivateProfileIntW / WritePrivateProfileStringW делает файл настроек человекочитаемым и обратно совместимым.
Можно отказаться от старого варианта и перейти на этот с хранением файла настроек рядом с trinity.exe
Как думаете, стоит ли?
Цитата: dehote9223 от 19.08.2026, 19:01В контекстное меню трея добавлен пункт "🔌 Перезагрузить сеть" для быстрого сброса и перезапуска только активных сетевых адаптеров.
Переход на системный пул потоков (Windows Thread Pool)
Механизм фонового выполнения переведён с "тяжёлого" создания потоков (CreateThread) на системный пул потоков Windows (QueueUserWorkItem с флагом WT_EXECUTELONGFUNCTION).
Это снижает нагрузку на процессор и исключает выделение лишней памяти под новые стеки.На выполнение в пуле потоков переведены все ресурсоёмкие и блокирующие операции:
🔌 Перезагрузка сетевых адаптеров
🔊 Перезагрузка аудиодрайвера (AudioSrv / AudioEndpointBuilder)
📶 Перезагрузка службы Bluetooth (bthserv)
🖨 Очистка и перезапуск очереди печати (Spooler)
🔄 Перезапуск проводника (Explorer)
🖼 Сброс кэша иконок и 🌄 эскизов
🛑 Принудительное закрытие зависших процессов (taskkill)
⚡ Очистка системной памяти (RAM / Standby List / Working Sets)
🌐 Сброс кэша DNS (ipconfig /flushdns)
🕒 Синхронизация системного времени по HTTPS (как при запуске, так и по кнопке в меню)Повышение плавности и стабильности интерфейса
Быстрая очистка ОЗУ по правому клику мыши по окну переведена в асинхронный режим — интерфейс больше не замирает в момент сброса кэша памяти.
Удалены дублирующие вызовы выгрузки библиотек питания (powrprof.dll), очистка теперь строго централизована при закрытии окна.
В контекстное меню трея добавлен пункт "🔌 Перезагрузить сеть" для быстрого сброса и перезапуска только активных сетевых адаптеров.
Переход на системный пул потоков (Windows Thread Pool)
Механизм фонового выполнения переведён с "тяжёлого" создания потоков (CreateThread) на системный пул потоков Windows (QueueUserWorkItem с флагом WT_EXECUTELONGFUNCTION).
Это снижает нагрузку на процессор и исключает выделение лишней памяти под новые стеки.
На выполнение в пуле потоков переведены все ресурсоёмкие и блокирующие операции:
🔌 Перезагрузка сетевых адаптеров
🔊 Перезагрузка аудиодрайвера (AudioSrv / AudioEndpointBuilder)
📶 Перезагрузка службы Bluetooth (bthserv)
🖨 Очистка и перезапуск очереди печати (Spooler)
🔄 Перезапуск проводника (Explorer)
🖼 Сброс кэша иконок и 🌄 эскизов
🛑 Принудительное закрытие зависших процессов (taskkill)
⚡ Очистка системной памяти (RAM / Standby List / Working Sets)
🌐 Сброс кэша DNS (ipconfig /flushdns)
🕒 Синхронизация системного времени по HTTPS (как при запуске, так и по кнопке в меню)
Повышение плавности и стабильности интерфейса
Быстрая очистка ОЗУ по правому клику мыши по окну переведена в асинхронный режим — интерфейс больше не замирает в момент сброса кэша памяти.
Удалены дублирующие вызовы выгрузки библиотек питания (powrprof.dll), очистка теперь строго централизована при закрытии окна.
Цитата: dehote9223 от 20.08.2026, 07:33Исправлена ошибка, из-за которой переключение двухпозиционных слайдеров ("Файл подкачки", "Гибернация", "Turbo Boost", "Парковка ядер") с помощью колеса мыши изменяло только визуальное положение ползунка, но не применяло настройки в системе.
Инвертировано поведение прокрутки для двухпозиционных переключателей ("Файл подкачки", "Гибернация", "Turbo Boost", "Парковка ядер").
Прокрутка вверх теперь переводит ползунок вправо, а прокрутка вниз — влево.
Исправлена ошибка, из-за которой переключение двухпозиционных слайдеров ("Файл подкачки", "Гибернация", "Turbo Boost", "Парковка ядер") с помощью колеса мыши изменяло только визуальное положение ползунка, но не применяло настройки в системе.
Инвертировано поведение прокрутки для двухпозиционных переключателей ("Файл подкачки", "Гибернация", "Turbo Boost", "Парковка ядер").
Прокрутка вверх теперь переводит ползунок вправо, а прокрутка вниз — влево.
Цитата: dehote9223 от 21.08.2026, 06:18Переработан механизм перезапуска сетевых адаптеров
Медленный вызов PowerShell заменён на быстрый сброс сетевого стека (ipconfig /release + ipconfig /renew + ipconfig /flushdns).
Обеспечена одновременная работа со всеми типами подключений (проводной Ethernet, беспроводной Wi-Fi, USB-модемы).Пункт в контекстном меню трея переименован с "🔌 Перезагрузить сеть" на "🔌 Перезагрузить сеть Ethernet/Wi-Fi".
Перезапуск Проводника
Реализована многоуровневая система получения токена пользователя (WTSQueryUserToken + TokenLinkedToken) и каскадный запуск explorer.exe, исключающие сбои при падении или зависании панели задач.
Переработан механизм перезапуска сетевых адаптеров
Медленный вызов PowerShell заменён на быстрый сброс сетевого стека (ipconfig /release + ipconfig /renew + ipconfig /flushdns).
Обеспечена одновременная работа со всеми типами подключений (проводной Ethernet, беспроводной Wi-Fi, USB-модемы).
Пункт в контекстном меню трея переименован с "🔌 Перезагрузить сеть" на "🔌 Перезагрузить сеть Ethernet/Wi-Fi".
Перезапуск Проводника
Реализована многоуровневая система получения токена пользователя (WTSQueryUserToken + TokenLinkedToken) и каскадный запуск explorer.exe, исключающие сбои при падении или зависании панели задач.
Цитата: dehote9223 от 21.08.2026, 08:15В интерфейс добавлен слайдер "Таймер" (Windows Timer Resolution) для прямого управления системным таймером Windows (квантом времени прерываний ядра ОС)
По умолчанию в Windows квант таймера составляет ~15.6 мс (64 прерывания в секунду) — это стандартный режим для экономии энергии.
Снижение кванта до 0.5 – 1.0 мс заставляет процессор чаще опрашивать системные события.
Это существенно снижает задержки ввода (инпут-лаг), делает отклик мыши и клавиатуры быстрее, а также сглаживает график времени кадра (frametime) в соревновательных и требовательных играх.Возможности и управление
Диапазон регулировки от 0.5 мс (максимальная отзывчивость) до 15.6 мс (стандартное энергосбережение) с шагом 0.1 мс.
Сброс на стандарт (15.6 мс) щелчком правой кнопкой мыши (ПКМ) по бегунку.Особенность работы
В Windows квант таймера является глобальным для всей ОС — ядро всегда выбирает наименьшее (самое точное) значение среди всех запущенных программ.
Если вы выставили, например, 10.0 мс, а затем запустили браузер (Chrome, Edge, Яндекс) — эти программы автоматически запросят у Windows таймер 1.0 мс.
Бегунок и заголовок в "Троице" автоматически перепрыгнут на 1.0 мс, отражая реальное текущее состояние системы.
Как только вы закроете браузер, программа вернёт таймер к вашему выбранному значению (10.0 мс).disk.yandex.ru/d/E_vfHfAcbNM6gg
В интерфейс добавлен слайдер "Таймер" (Windows Timer Resolution) для прямого управления системным таймером Windows (квантом времени прерываний ядра ОС)
По умолчанию в Windows квант таймера составляет ~15.6 мс (64 прерывания в секунду) — это стандартный режим для экономии энергии.
Снижение кванта до 0.5 – 1.0 мс заставляет процессор чаще опрашивать системные события.
Это существенно снижает задержки ввода (инпут-лаг), делает отклик мыши и клавиатуры быстрее, а также сглаживает график времени кадра (frametime) в соревновательных и требовательных играх.
Возможности и управление
Диапазон регулировки от 0.5 мс (максимальная отзывчивость) до 15.6 мс (стандартное энергосбережение) с шагом 0.1 мс.
Сброс на стандарт (15.6 мс) щелчком правой кнопкой мыши (ПКМ) по бегунку.
Особенность работы
В Windows квант таймера является глобальным для всей ОС — ядро всегда выбирает наименьшее (самое точное) значение среди всех запущенных программ.
Если вы выставили, например, 10.0 мс, а затем запустили браузер (Chrome, Edge, Яндекс) — эти программы автоматически запросят у Windows таймер 1.0 мс.
Бегунок и заголовок в "Троице" автоматически перепрыгнут на 1.0 мс, отражая реальное текущее состояние системы.
Как только вы закроете браузер, программа вернёт таймер к вашему выбранному значению (10.0 мс).
disk.yandex.ru/d/E_vfHfAcbNM6gg
Цитата: dehote9223 от 21.08.2026, 09:18Улучшена перезагрузка сетевых адаптеров (Ethernet / Wi-Fi)
Добавлен сброс сокетов Winsock (netsh winsock reset).
Добавлен сброс и восстановление параметров стека TCP/IP (netsh int ip reset).
Сохранена очистка кэша DNS (ipconfig /flushdns) и обновление аренды DHCP (/release & /renew).
Позволяет эффективно решать проблемы с зависшим интернетом, остаточными сбоями после отключения VPN и ошибками DNS.
Улучшена перезагрузка сетевых адаптеров (Ethernet / Wi-Fi)
Добавлен сброс сокетов Winsock (netsh winsock reset).
Добавлен сброс и восстановление параметров стека TCP/IP (netsh int ip reset).
Сохранена очистка кэша DNS (ipconfig /flushdns) и обновление аренды DHCP (/release & /renew).
Позволяет эффективно решать проблемы с зависшим интернетом, остаточными сбоями после отключения VPN и ошибками DNS.
Цитата: dehote9223 от 21.08.2026, 15:15Переход на формат настроек .INI
Хранение настроек программы переведено со старого формата settings.dat на наглядный settings.ini.
Если у вас уже был файл settings.dat, программа при первом запуске автоматически считает из него все ваши параметры, перенесёт в новый settings.ini и удалит устаревший .dat-файл.
В чём плюсы
Все параметры теперь имеют понятные имена в формате Ключ = Значение (например, CpuSliderPos=100, AlwaysOnTop=1, TimerSliderPos=10 и т.д.).
Настройки можно легко открыть и изменить в обычном Блокноте.Теперь можно вручную задать значение сброса частоты — например, прописать DefaultCpuPos=60, и при сбросе слайдера процессора (клик ПКМ) будет выставляться именно 60%, без необходимости лезть в системные схемы питания Windows.
Чтобы открыть папку с файлом конфигурации settings.ini, дважды кликните левой кнопкой мыши (ЛКМ) по любой свободной области окна программы.
Переход на формат настроек .INI
Хранение настроек программы переведено со старого формата settings.dat на наглядный settings.ini.
Если у вас уже был файл settings.dat, программа при первом запуске автоматически считает из него все ваши параметры, перенесёт в новый settings.ini и удалит устаревший .dat-файл.
В чём плюсы
Все параметры теперь имеют понятные имена в формате Ключ = Значение (например, CpuSliderPos=100, AlwaysOnTop=1, TimerSliderPos=10 и т.д.).
Настройки можно легко открыть и изменить в обычном Блокноте.
Теперь можно вручную задать значение сброса частоты — например, прописать DefaultCpuPos=60, и при сбросе слайдера процессора (клик ПКМ) будет выставляться именно 60%, без необходимости лезть в системные схемы питания Windows.
Чтобы открыть папку с файлом конфигурации settings.ini, дважды кликните левой кнопкой мыши (ЛКМ) по любой свободной области окна программы.
Цитата: Сибирь от 21.08.2026, 19:23Супер! Очень удобно👍👍.
Огромное спасибо, dehote9223.
Супер! Очень удобно👍👍.
Огромное спасибо, dehote9223.
Цитата: dehote9223 от 22.08.2026, 06:09Устранена ошибка, из-за которой при разворачивании приложения через повторный запуск внутренний таймер оставался неактивным, а показатели частоты процессора и системного таймера замирали.
Управление жизненным циклом таймера мониторинга переведено на нативное системное сообщение WM_SHOWWINDOW.
Это гарантирует 100% включение и обновление данных при любом способе открытия окна (через трей или запуск второй копии).Автоматическое управление засыпанием системного таймера (Dynamic Tick)
При установке слайдера "Таймер" на значение 1.0 мс и ниже (вплоть до 0.5 мс) автоматически включается запрет на засыпание системного таймера (disabledynamictick yes).
Это предотвращает микрозадержки таймера Windows, обеспечивает минимальный инпут-лаг и стабилизирует время кадра (Frame Time) в играх.
При выборе значения выше 1.0 мс стандартное поведение и энергосбережение таймера Windows автоматически восстанавливаются (disabledynamictick no).Добавлен пункт "🛠 Сбросить Центр обновления" в контекстное меню трея
Позволяет решить проблемы с "зависшим" или сбоящим Центром обновления Windows (когда скачивание бесконечно висит на 0% или 99%, возникают ошибки загрузки обновлений, либо фоновый процесс svchost.exe аномально нагружает процессор и диск).
Что делает функция
Останавливает службы обновления (wuauserv, bits, cryptSvc).
Очищает временный кэш повреждённых загрузок (SoftwareDistribution\Download).
Перезапускает службы в штатном режиме для чистой повторной проверки обновлений без необходимости перезагрузки ПК.disk.yandex.ru/d/E_vfHfAcbNM6gg
Пожалуйста, Сибирь!
Делаю, пока мне это интересно )
Устранена ошибка, из-за которой при разворачивании приложения через повторный запуск внутренний таймер оставался неактивным, а показатели частоты процессора и системного таймера замирали.
Управление жизненным циклом таймера мониторинга переведено на нативное системное сообщение WM_SHOWWINDOW.
Это гарантирует 100% включение и обновление данных при любом способе открытия окна (через трей или запуск второй копии).
Автоматическое управление засыпанием системного таймера (Dynamic Tick)
При установке слайдера "Таймер" на значение 1.0 мс и ниже (вплоть до 0.5 мс) автоматически включается запрет на засыпание системного таймера (disabledynamictick yes).
Это предотвращает микрозадержки таймера Windows, обеспечивает минимальный инпут-лаг и стабилизирует время кадра (Frame Time) в играх.
При выборе значения выше 1.0 мс стандартное поведение и энергосбережение таймера Windows автоматически восстанавливаются (disabledynamictick no).
Добавлен пункт "🛠 Сбросить Центр обновления" в контекстное меню трея
Позволяет решить проблемы с "зависшим" или сбоящим Центром обновления Windows (когда скачивание бесконечно висит на 0% или 99%, возникают ошибки загрузки обновлений, либо фоновый процесс svchost.exe аномально нагружает процессор и диск).
Что делает функция
Останавливает службы обновления (wuauserv, bits, cryptSvc).
Очищает временный кэш повреждённых загрузок (SoftwareDistribution\Download).
Перезапускает службы в штатном режиме для чистой повторной проверки обновлений без необходимости перезагрузки ПК.
disk.yandex.ru/d/E_vfHfAcbNM6gg
Пожалуйста, Сибирь!
Делаю, пока мне это интересно )
Цитата: dehote9223 от 22.08.2026, 07:59Для главного окна включён расширенный стиль WS_EX_COMPOSITED.
Все дочерние элементы управления (ползунки, рамки, текст) теперь отрисовываются с аппаратной двойной буферизацией без артефактов и мигания при перерисовке.Изменение частоты процессора, EPP и разрешения таймера теперь фиксируется строго в момент отпускания ползунка.
Устранена повторная отправка команд при промежуточном событии, что снизило нагрузку на реестр и подсистему питания Windows при взаимодействии с интерфейсом.
Для главного окна включён расширенный стиль WS_EX_COMPOSITED.
Все дочерние элементы управления (ползунки, рамки, текст) теперь отрисовываются с аппаратной двойной буферизацией без артефактов и мигания при перерисовке.
Изменение частоты процессора, EPP и разрешения таймера теперь фиксируется строго в момент отпускания ползунка.
Устранена повторная отправка команд при промежуточном событии, что снизило нагрузку на реестр и подсистему питания Windows при взаимодействии с интерфейсом.
Цитата: dehote9223 от 22.08.2026, 08:43Качественное масштабирование иконки
Устранена пикселизация и эффект "лесенок" у иконки приложения в системном трее, заголовке окна и на панели задач.
Добавлен программный алгоритм бикубического сглаживания (High Quality Bicubic), который на лету адаптирует мастер-иконку 256×256 под любые системные разрешения (16×16, 24×24, 32×32) с сохранением плавности линий и альфа-прозрачности.Это избавило от необходимости внедрения многослойной иконки со всеми промежуточными разрешениями (16, 24, 32, 48, 64, 128 и 256 пикселей), что привело бы к увеличению размера исполняемого файла программы почти до 400 КБ.
Качественное масштабирование иконки
Устранена пикселизация и эффект "лесенок" у иконки приложения в системном трее, заголовке окна и на панели задач.
Добавлен программный алгоритм бикубического сглаживания (High Quality Bicubic), который на лету адаптирует мастер-иконку 256×256 под любые системные разрешения (16×16, 24×24, 32×32) с сохранением плавности линий и альфа-прозрачности.
Это избавило от необходимости внедрения многослойной иконки со всеми промежуточными разрешениями (16, 24, 32, 48, 64, 128 и 256 пикселей), что привело бы к увеличению размера исполняемого файла программы почти до 400 КБ.
Цитата: dehote9223 от 22.08.2026, 12:15В контекстное меню трея добавлены два специализированных режима очистки ОЗУ
"⚡ Лёгкая очистка ОЗУ" — быстрый режим.
"🧹 Тяжёлая очистка ОЗУ" — режим максимального освобождения физической памяти."Лёгкая очистка ОЗУ" оптимизирует рабочие наборы процессов (Working Sets), системный файловый кэш, кэш реестра и дедуплицирует страницы памяти, но очищает только низкоприоритетный кэш ожидания (Standby List Priority 0).
Память мгновенно освобождается на 20–50%, при этом важные кэшированные данные не выгружаются на диск.При нажатии правой кнопки мыши (ПКМ) по свободной области главного окна программы выполняется "Лёгкая очистка ОЗУ".
"Тяжёлая очистка ОЗУ" в дополнение ко всем шагам лёгкой очистки, принудительно выгружает весь кэш ожидания без исключения (Standby List Priority 0–7).
Освобождает абсолютно весь доступный объём физической памяти.Когда лучше применять "Тяжёлую очистку"
- ПЕРЕД запуском требовательных программ (монтаж видео в 4K, 3D-рендеринг, компиляция больших проектов, виртуальные машины) или тяжелых игр, которым с первых секунд требуется монопольно 16–32+ ГБ свободной памяти.
- После закрытия ресурсоёмкого софта, чтобы быстро и начисто вернуть всю память системе.
Не рекомендуется вызывать во время активного игрового процесса, так как полная очистка кэша может вызвать кратковременное обращение к накопителю для повторной подгрузки ресурсов.
В контекстное меню трея добавлены два специализированных режима очистки ОЗУ
"⚡ Лёгкая очистка ОЗУ" — быстрый режим.
"🧹 Тяжёлая очистка ОЗУ" — режим максимального освобождения физической памяти.
"Лёгкая очистка ОЗУ" оптимизирует рабочие наборы процессов (Working Sets), системный файловый кэш, кэш реестра и дедуплицирует страницы памяти, но очищает только низкоприоритетный кэш ожидания (Standby List Priority 0).
Память мгновенно освобождается на 20–50%, при этом важные кэшированные данные не выгружаются на диск.
При нажатии правой кнопки мыши (ПКМ) по свободной области главного окна программы выполняется "Лёгкая очистка ОЗУ".
"Тяжёлая очистка ОЗУ" в дополнение ко всем шагам лёгкой очистки, принудительно выгружает весь кэш ожидания без исключения (Standby List Priority 0–7).
Освобождает абсолютно весь доступный объём физической памяти.
Когда лучше применять "Тяжёлую очистку"
- ПЕРЕД запуском требовательных программ (монтаж видео в 4K, 3D-рендеринг, компиляция больших проектов, виртуальные машины) или тяжелых игр, которым с первых секунд требуется монопольно 16–32+ ГБ свободной памяти.
- После закрытия ресурсоёмкого софта, чтобы быстро и начисто вернуть всю память системе.
Не рекомендуется вызывать во время активного игрового процесса, так как полная очистка кэша может вызвать кратковременное обращение к накопителю для повторной подгрузки ресурсов.
