Лёгкий помощник: как я создал системный монитор без тормозов

Друзья, представляю 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 сек. Так информация всегда актуальна, а нагрузка минимальна.

Удобный виджет

Небольшое окно, закреплённое поверх всех приложений, отображает главное:

Лёгкий помощник: как я создал системный монитор без тормозов
Компактный виджет Aether Monitor+

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

Оценка «здоровья» системы

Я добавил метрику общего состояния компьютера. Формула простая:

здоровье = 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.

Финальные мысли

Создание простого и удобного монитора оказалось куда менее трудозатратным, чем я ожидал. Главное — понять запросы пользователей и не перегружать функционал. А какие инструменты для мониторинга используете вы?

 

Источник

Читайте также