Лёгкий помощник: как я создал системный монитор без тормозов
Компактный виджет Aether Monitor+
Друзья, представляю Aether Monitor+ — элегантный и минималистичный монитор ресурсов, который стал для меня незаменимым помощником при работе за компьютером.
Зародыш идеи
Проводя по 10–12 часов в день за ПК, я постоянно возвращался к Диспетчеру задач: то ЦП полностью загружен, то ОЗУ на пределе, то диск вот-вот лопнет от данных. Встроенные утилиты Windows работают, но бесконечно переключаться между окнами — то ещё удовольствие.
Я перепробовал множество программ: одни поддерживают слишком много функций, другие «съедают» всю память, третьи выглядят так, будто их сделали ещё в середине нулевых. В итоге меня это утомило, и я подумал: «А не создать ли собственный монитор — простой, удобный и лёгкий?»
Результат работы
Aether Monitor+ — утилита, которая показывает в режиме реального времени ключевые показатели: загрузку процессора, использование оперативки, заполненность диска и текущую температуру. Всё это в компактном виджете поверх окон, без лишней «воды».
Особенность — минимальное потребление ресурсов. Мы со знакомым поспорили, что уложимся в 30 МБ оперативной памяти, и… справились! В среднем программа занимает около 20–25 МБ.
Внутреннее устройство
Под капотом — Python. Хотя этот язык не самый быстрый, грамотная оптимизация делает его идеальным для подобных задач.
Сбор данных реализован так:
def собрать_данные(self):
return {
'процессор': psutil.cpu_percent(interval=1),
'память': psutil.virtual_memory().percent,
'диск': psutil.disk_usage('C:').percent,
'здоровье': self.оценить_состояние_системы()
}
Интервалы обновления я подобрал экспериментально: процессор — каждые 3 сек, память — раз в 5 сек, диск — раз в 10 сек. Так информация всегда актуальна, а нагрузка минимальна.
Удобный виджет
Небольшое окно, закреплённое поверх всех приложений, отображает главное:
Его можно перетащить в любое место экрана, кликнуть для открытия главного окна или вызвать контекстное меню правой кнопкой мыши. Больше не нужно сворачивать рабочие приложения для быстрой проверки состояния системы.
Оценка «здоровья» системы
Я добавил метрику общего состояния компьютера. Формула простая:
здоровье = 100 - ((процессор * 0.3) + (память * 0.4) + (диск * 0.3))
Например, при загрузке ЦП на 50 %, ОЗУ на 80 % и диска на 90 % будет:
100 — ((50×0.3) + (80×0.4) + (90×0.3)) = 26 %
Цветовая индикация упрощает восприятие:
- Зелёный (80–100 %) — отлично
- Жёлтый (60–79 %) — в пределах нормы
- Оранжевый (40–59 %) — стоит присмотреться
- Красный (0–39 %) — критический уровень
Оптимизация потребления памяти
Главная головоломка — уложиться в лимит оперативки. Помогли следующие приёмы:
Ленивая инициализация — компоненты создаются только при необходимости.
Динамические интервалы — редкие опросы снижают нагрузку, но остаются достаточными для своевременного обновления.
Автоматическая уборка — при приближении к лимиту запускается сборщик мусора и очищаются кэши.
def оптимизировать_память(self):
if self.текущая_память() > 25: # МБ
import gc
gc.collect()
self.увеличить_интервалы_опроса()
Целевая аудитория
Разработчикам — следить за нагрузкой IDE, контейнеров и сборок;
Геймерам — контролировать температуру и загрузку во время игр;
Обычным пользователям — быстро выяснять причину тормозов.
Планы на будущее
- Поддержка Linux и macOS;
- Настройка внешнего вида интерфейса;
- Графики динамики нагрузки;
- Уведомления при критических значениях.
Установка и тестирование
Собрать и запустить можно так:
git clone https://github.com/sshcharacter-stack/aethermonitorplus-.git
cd aethermonitorplus-
pip install -r requirements.txt
python main.py
Готовый исполняемый файл доступен в релизах на GitHub. А обсуждения и предложения — в нашем Telegram-канале @shiosoftware.
Финальные мысли
Создание простого и удобного монитора оказалось куда менее трудозатратным, чем я ожидал. Главное — понять запросы пользователей и не перегружать функционал. А какие инструменты для мониторинга используете вы?
Супергеройская научно-фантастическая MMORPG Ship of Heroes закрывается спустя год после релиза
Аналитик: бойкот PS Blackout не повлиял на метрики вовлеченности PlayStation
Для Hearts of Iron IV выпустили мод, запускающий DOOM внутри глобальной стратегии Paradox
Рынок памяти не помешал Valve продолжить работу над Steam Deck 2
Специалисты протестировали ремейк The Legend of Zelda Ocarina of Time и зафиксировали 60 FPS без DLSS
Новые данные указали на то, что разработка Diablo 5 может вестись уже около трех лет
Финал аниме «Блич: Тысячелетняя кровавая война — Бедствие» перенесли на месяц
Blizzard официально представила экранизацию Diablo спустя восемь лет после первых слухов