EnglishРусский Map
GPU-accelerated terminal

Расход батареи терминалами с GPU-ускорением на macOS

title
Расход батареи терминалами с GPU-ускорением на macOS
type
summary
summary
Почему терминалы с GPU (Ghostty, Alacritty, Kitty) сажают батарею MacBook и что с этим делать
tags
macos, terminal, battery, claude-code
created
2026-04-29
updated
2026-04-29
lang
ru
source_updated
2026-04-29
translated
2026-09-01
translator
lllm/antigravity/gemini-3.7-flash-medium

Фернандо работал в кафе Сарагосы на MacBook Air M3 и открыл Activity Monitor, когда батарея села до 15% всего за два часа использования Claude Code. Вкладка Energy показала у Ghostty 3600 накопленных единиц за последние 12 часов. У Brave было 125. У Zoom с видео - 99. У десктопного приложения Claude - 46. Терминал - программа, чья единственная задача показывать буквы, - сжёг в 30 раз больше энергии, чем веб-браузер.

Почему терминалы с GPU потребляют так много

Терминалы с GPU-ускорением, такие как Ghostty, Alacritty и Kitty, рекламируют более плавный рендеринг и чёткие шрифты. Расплата за это - каждый появляющийся на экране символ проходит через Metal, шейдеры и композицию кадров. А поскольку Claude Code непрерывно выводит поток данных - спиннеры, строки логов, результаты вызова инструментов, - конвейер GPU не простаивает ни секунды. Затраты на отрисовку одного git status превышают затраты на видеозвонок.

Второй удар наносит App Nap. macOS приостанавливает фоновые процессы, которые выглядят неактивными, но окно с крутящимся спиннером неактивным не выглядит. Терминал продолжает бодрствовать, даже когда пользователь на него не смотрит.

Три варианта по возрастанию трудозатрат

Terminal.app. Штатный терминал macOS выполняет рендеринг на CPU, корректно засыпает и работает с Claude Code без какой-либо заметной разницы. Простой и старый, без лигатур и анимаций. Работает.

iTerm2 с профилем "Battery". В iTerm2 переключатель GPU-рендеринга пока остался. Сдублируйте существующий профиль, назовите его Battery и снимите флажок с Terminal -> GPU Rendering. Переключаться можно вручную через Profiles -> Battery или автоматически при работе от батареи через инициализацию shell:

# ~/.zshrc
if [[ $(pmset -g batt | grep -c "Battery Power") -gt 0 ]]; then
    echo -e "\033]50;SetProfile=Battery\a"
fi

Escape-последовательность \033]50;SetProfile=Battery\a - это протокол смены профиля iTerm2: каждый новый экземпляр shell выполняет её.

Ghostty. Переключателя GPU здесь нет. Единственные варианты смягчить проблему - уменьшить объём того, что GPU приходится перерисовывать: cursor-style-blink = false, mouse-hide-while-typing = true, сворачивание неиспользуемых окон. Вердикт Фернандо: Ghostty создан для производительности, а не для энергоэффективности, и это не тот инструмент, который подходит для регулярной работы от батареи.

Параллель с 1978 годом

VT100 с его ЭЛТ потреблял 30 Вт. Созданный с прицелом на энергоэффективность MacBook Air образца 2026 года превосходит эту цифру, чтобы показать тот же самый текст. Суть не в ностальгии - "современный" и "оптимизированный" могут означать оптимизацию под метрику (задержка от ввода до пикселя в миллисекундах), которая обходится слишком дорого по метрикам, важным при работе от батареи.

Связь с Claude Code

Это скорее проблема рабочего процесса с Claude Code, чем общая проблема терминалов. Сессии в редакторе к ней не приводят, потому что объём вывода ограничен. Агентские сессии транслируют символы непрерывно, поэтому и конвейер GPU работает без остановки. Простейшее решение - выбрать для работы с агентами терминал с рендерингом на CPU.

По материалам your-terminal-is-burning-battery-like-it-s-mining-bitcoin.