Вы должны войти, чтобы создавать сообщения и темы.

Trinity - Управление частотой процессора

1◄Страница 4 из 27► 27

Сибирь, привет и спасибо за предложение добавить всплывающие подсказки )
Правда, они были изначально, нужно навести курсор на слайдеры EPP и Парковка ядер

Возможно, я позже попрошу ИИ написать мануал для программы, пока неактуально )

Таймер опроса частоты и параметров системы теперь полностью отключается при сворачивании программы в трей.
Актуальные данные о частоте процессора и состоянии служб теперь собираются строго в момент наведения курсора мыши на иконку в трее.

disk.yandex.ru/d/E_vfHfAcbNM6gg

Улучшение механизма автозапуска (Переход на Планировщик заданий)

Автозапуск программы теперь настраивается через системный Планировщик заданий Windows с параметром наивысших прав (/rl highest).

Программа распознает как новый тип автозапуска, так и старый (через ветку реестра HKCU\...\Run).
При отключении автозапуска старые записи реестра автоматически и бесследно вычищаются.

Проверка статуса автозапуска переведена на прямое чтение дерева задач в реестре — это работает мгновенно и без создания лишних фоновых процессов cmd.exe / schtasks.exe.

Зачем это нужно

Так как для работы с частотами процессора и питанием программе требуются права администратора, встроенный механизм безопасности Windows (UAC) молча блокировал запуск приложения из классической ветки автозагрузки Run при старте системы.
Запуск через Планировщик заданий позволяет программе стартовать вместе с Windows от имени администратора без всплывающих окон подтверждения UAC.

disk.yandex.ru/d/E_vfHfAcbNM6gg

Есть такое предложение от ИИ:

Переход с settings.dat на стандартный settings.ini

Сейчас чтение настроек завязано на строгий fwscanf_s(f, L"%d %d %d...", ...). Если вы добавите 8-й или 9-й параметр, у пользователей со старым файлом настроек чтение сломается.
Использование встроенных функций Windows GetPrivateProfileIntW / WritePrivateProfileStringW делает файл настроек человекочитаемым и обратно совместимым.

Можно отказаться от старого варианта и перейти на этот с хранением файла настроек рядом с trinity.exe
Как думаете, стоит ли?

Лайкнули shim и Андрей
shimАндрей

В контекстное меню трея добавлен пункт "🔌 Перезагрузить сеть" для быстрого сброса и перезапуска только активных сетевых адаптеров.

Переход на системный пул потоков (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), очистка теперь строго централизована при закрытии окна.

disk.yandex.ru/d/E_vfHfAcbNM6gg

Лайкнул Сибирь
Сибирь

Исправлена ошибка, из-за которой переключение двухпозиционных слайдеров ("Файл подкачки", "Гибернация", "Turbo Boost", "Парковка ядер") с помощью колеса мыши изменяло только визуальное положение ползунка, но не применяло настройки в системе.

Инвертировано поведение прокрутки для двухпозиционных переключателей ("Файл подкачки", "Гибернация", "Turbo Boost", "Парковка ядер").
Прокрутка вверх теперь переводит ползунок вправо, а прокрутка вниз — влево.

disk.yandex.ru/d/E_vfHfAcbNM6gg

Переработан механизм перезапуска сетевых адаптеров

Медленный вызов PowerShell заменён на быстрый сброс сетевого стека (ipconfig /release + ipconfig /renew + ipconfig /flushdns).
Обеспечена одновременная работа со всеми типами подключений (проводной Ethernet, беспроводной Wi-Fi, USB-модемы).

Пункт в контекстном меню трея переименован с "🔌 Перезагрузить сеть" на "🔌 Перезагрузить сеть Ethernet/Wi-Fi".

Перезапуск Проводника

Реализована многоуровневая система получения токена пользователя (WTSQueryUserToken + TokenLinkedToken) и каскадный запуск explorer.exe, исключающие сбои при падении или зависании панели задач.

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

Улучшена перезагрузка сетевых адаптеров (Ethernet / Wi-Fi)

Добавлен сброс сокетов Winsock (netsh winsock reset).
Добавлен сброс и восстановление параметров стека TCP/IP (netsh int ip reset).
Сохранена очистка кэша DNS (ipconfig /flushdns) и обновление аренды DHCP (/release & /renew).
Позволяет эффективно решать проблемы с зависшим интернетом, остаточными сбоями после отключения VPN и ошибками DNS.

disk.yandex.ru/d/E_vfHfAcbNM6gg

Переход на формат настроек .INI

Хранение настроек программы переведено со старого формата settings.dat на наглядный settings.ini.

Если у вас уже был файл settings.dat, программа при первом запуске автоматически считает из него все ваши параметры, перенесёт в новый settings.ini и удалит устаревший .dat-файл.

В чём плюсы

Все параметры теперь имеют понятные имена в формате Ключ = Значение (например, CpuSliderPos=100, AlwaysOnTop=1, TimerSliderPos=10 и т.д.).
Настройки можно легко открыть и изменить в обычном Блокноте.

Теперь можно вручную задать значение сброса частоты — например, прописать DefaultCpuPos=60, и при сбросе слайдера процессора (клик ПКМ) будет выставляться именно 60%, без необходимости лезть в системные схемы питания Windows.

Чтобы открыть папку с файлом конфигурации settings.ini, дважды кликните левой кнопкой мыши (ЛКМ) по любой свободной области окна программы.

disk.yandex.ru/d/E_vfHfAcbNM6gg

Лайкнул Сибирь
Сибирь

Супер! Очень удобно👍👍.

Огромное спасибо, dehote9223.

Устранена ошибка, из-за которой при разворачивании приложения через повторный запуск внутренний таймер оставался неактивным, а показатели частоты процессора и системного таймера замирали.
Управление жизненным циклом таймера мониторинга переведено на нативное системное сообщение 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

Пожалуйста, Сибирь!
Делаю, пока мне это интересно )

Для главного окна включён расширенный стиль WS_EX_COMPOSITED.
Все дочерние элементы управления (ползунки, рамки, текст) теперь отрисовываются с аппаратной двойной буферизацией без артефактов и мигания при перерисовке.

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

disk.yandex.ru/d/E_vfHfAcbNM6gg

Качественное масштабирование иконки

Устранена пикселизация и эффект "лесенок" у иконки приложения в системном трее, заголовке окна и на панели задач.
Добавлен программный алгоритм бикубического сглаживания (High Quality Bicubic), который на лету адаптирует мастер-иконку 256×256 под любые системные разрешения (16×16, 24×24, 32×32) с сохранением плавности линий и альфа-прозрачности.

Это избавило от необходимости внедрения многослойной иконки со всеми промежуточными разрешениями (16, 24, 32, 48, 64, 128 и 256 пикселей), что привело бы к увеличению размера исполняемого файла программы почти до 400 КБ.

disk.yandex.ru/d/E_vfHfAcbNM6gg

Лайкнул Сибирь
Сибирь

В контекстное меню трея добавлены два специализированных режима очистки ОЗУ

"⚡ Лёгкая очистка ОЗУ" — быстрый режим.
"🧹 Тяжёлая очистка ОЗУ" — режим максимального освобождения физической памяти.

"Лёгкая очистка ОЗУ" оптимизирует рабочие наборы процессов (Working Sets), системный файловый кэш, кэш реестра и дедуплицирует страницы памяти, но очищает только низкоприоритетный кэш ожидания (Standby List Priority 0).
Память мгновенно освобождается на 20–50%, при этом важные кэшированные данные не выгружаются на диск.

При нажатии правой кнопки мыши (ПКМ) по свободной области главного окна программы выполняется "Лёгкая очистка ОЗУ".

"Тяжёлая очистка ОЗУ" в дополнение ко всем шагам лёгкой очистки, принудительно выгружает весь кэш ожидания без исключения (Standby List Priority 0–7).
Освобождает абсолютно весь доступный объём физической памяти.

Когда лучше применять "Тяжёлую очистку"

- ПЕРЕД запуском требовательных программ (монтаж видео в 4K, 3D-рендеринг, компиляция больших проектов, виртуальные машины) или тяжелых игр, которым с первых секунд требуется монопольно 16–32+ ГБ свободной памяти.

- После закрытия ресурсоёмкого софта, чтобы быстро и начисто вернуть всю память системе.

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

disk.yandex.ru/d/E_vfHfAcbNM6gg

Лайкнул Сибирь
Сибирь
1◄Страница 4 из 27► 27