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

Почему Monosnap стал таким медленным — и решение

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

Холодный запуск до готовности первого снимка
Monosnap3.2 s
Maxisnap1.1 s
Задержка от захвата до редактора
Monosnap1.5–5 с
Maxisnap< 200 мс
Оперативная память в режиме ожидания через 8 часов
Monosnap~800 MB
Maxisnap~50 MB
Задержка при аннотировании в редакторе
MonosnapЗаметная
MaxisnapНезаметная

Налог Electron, усугубленный

Monosnap не’начинал как приложение Electron. В начале своего существования большая часть кода для захвата и редактирования была нативной. Со временем компоненты пользовательского интерфейса были перестроены на основе рендерера Chromium — что упростило их итерацию, но добавило значительные, постоянные затраты на запуск.

Electron со временем не’становится легче. Каждый год Chromium добавляет функции, поставляя больше кода, увеличивая базовое потребление памяти и усложняя инициализацию. Приложение, которое было приемлемым 60 МБ в 2019 году, теперь занимает минимум 180 МБ при запуске, и это число растет. Это’без учета утечки памяти, которую мы рассмотрели на странице об утечке памяти.

Когда вы нажимаете Ctrl+Alt+5, Monosnap должен прогреть рендерер Chromium, чтобы отобразить оверлей захвата. В холодном приложении это’занимает несколько сотен миллисекунд. В уже запущенном приложении, которое уже заняло сотни мегабайт, это’дольше. К пятому часу рабочего дня наложение отрисовывается достаточно медленно, чтобы пользователи могли заметить разницу.

Редактор аннотаций — самая проблемная часть

Окно редактора после захвата почти полностью представляет собой веб-представление Chromium. Когда вы добавляете стрелку или рисуете прямоугольник, инструмент отправляет события через Electron’через границу IPC в нативный процесс и обратно. Этот круговой путь быстр в свежем процессе и заметно замедляется, когда процесс загружен.

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

Maxisnap: без Electron, без накладных расходов

Maxisnap’редактор — это нативное окно PyQt6. Холст для аннотаций использует QPainter непосредственно на QPixmap.’нет веб-представления, нет границы IPC между логикой инструмента и поверхностью рендеринга. Когда вы добавляете стрелку, она появляется в следующем цикле отрисовки. Нет кругового пути.

Холодный запуск из трея до готовности к захвату занимает около секунды на типичной машине. Захват-в-редактор занимает менее 200 мс. Эти показатели остаются неизменными через 1, 4, 8 и 72 часа. Приложение не’деградирует со временем, потому что’нечего накапливать.

Переключение за 60 секунд

Верните себе скорость

  1. 1
    Загрузите установщик. Страница загрузки, 63 МБ, бесплатно.
  2. 2
    Выйдите из Monosnap из трея, чтобы оба приложения не’конфликтовали из-за горячей клавиши.
  3. 3
    Установить. Настройки по умолчанию подходят. Перезагрузка не требуется.
  4. 4
    Нажмите Ctrl+Alt+5. Обратите внимание, редактор открывается до того, как вы’отпустите клавиши.
FAQ

Вопросы производительности

Могу ли я ускорить Monosnap без переключения?

Незначительно. Закрывайте приложение в конце дня вместо того, чтобы держать его запущенным. Снимите флажок "Запускать свернутым". Отключите любые функции облачной синхронизации, которые вы не’используете. Ничто из этого не устраняет структурные накладные расходы, но немного помогает.

Является ли Maxisnap’Качество захвата такое же?

Идентично. Вывод PNG в полном разрешении, без потерь. JPEG также поддерживается с настраиваемым качеством. Там’нет даунсэмплинга или изменения размера, если вы не добавите это самостоятельно с помощью инструмента обрезки.

Поддерживает ли Maxisnap захват прокручиваемой области?

Пока нет. Если захват прокручиваемой области является неотъемлемой частью вашего рабочего процесса, ShareX или Snagit подходят лучше. Для стандартного захвата области / полного экрана / окна с аннотациями Maxisnap быстрее и легче.

Инструмент для скриншотов, который остается быстрым.

Без разогрева. Без задержек. Без ритуальных перезапусков.

Скачать Maxisnap

Похожие статьи: утечка памяти · зависает · он мертв?