Терминал Linux пожирает память? Как навести порядок в процессах

Оказывается, даже пустой терминал может сожрать гигабайт RAM — разбираемся, кто виноват и что делать.
Если вы когда-нибудь заглядывали в htop и с ужасом обнаруживали, что ваш любимый терминал жрёт памяти как не в себя — вы не одиноки. Оказывается, современные эмуляторы терминалов с подсветкой синтаксиса, GPU-рендерингом и сотнями открытых вкладок могут запросто откусить гигабайт оперативки. И это не шутка.
Кто главный "прожорливый"?
Автор статьи провёл собственное расследование и выяснил, что лидерами по потреблению памяти среди терминалов являются:
- Alacritty (GPU-ускоренный) — до 300 МБ на пустое окно.
- Kitty — около 200 МБ.
- GNOME Terminal — скромные 50 МБ, но с кучей вкладок растёт как на дрожжах.
- iTerm2 (macOS) — легко переваливает за 500 МБ.
А вот старый добрый xterm или st (simple terminal) довольствуются 5-10 МБ. Как говорится, почувствуй разницу.
Почему так происходит?
Всё дело в "фичах": рендеринг шрифтов, поддержка Unicode, эмуляция древних терминалов, буферы прокрутки — каждый пакет тянет свою библиотеку. А если вы ещё и держите открытыми tmux с десятком панелей, то память утекает как вода из дырявого ведра.
Что делать?
- Заменить эмулятор — попробуйте
st,urxvtилиxterm. Да, они выглядят как из 90-х, но зато легковесны. - Ограничить историю — в bash/zsh поставьте
HISTSIZE=1000вместо бесконечности. - Использовать
htop— чтобы найти, кто именно жрёт память, и пристрелить его (в переносном смысле). - Перезагружать терминал — иногда проще закрыть и открыть заново, чем разбираться.
Комментарий студии METABYTE: Пока вы оптимизируете терминал, мы оптимизируем ваш код. Наши разработчики знают, как сделать так, чтобы приложение не жрало память как терминал с 50 вкладками. Шутка (но не совсем).