Journal

В какой момент мы согласились платить своей оперативной памятью за удобство разработки чужих приложений?

Performance • DeveloperTools • Electron • ProductQuality
В какой момент мы согласились платить своей оперативной памятью за удобство разработки чужих приложений?

В моём рабочем наборе — Slack, Trello, Figma, Visual Studio Code и Lens. Обсуждения, задачи, макеты, код и работа с кластерами. Всё это нужно мне одновременно.

Но периодически приходится закрывать нужные приложения, чтобы компьютер снова начал нормально отвечать.

Какого чёрта я должен закрывать рабочие приложения, чтобы работать?

Я сталкивался с зависаниями на MacBook M1 с 8 ГБ памяти и на Mac mini M4 с 24 ГБ. Когда памяти не хватает, а SSD почти заполнен, свопу тоже почти некуда расти.

В «Мониторинге системы» я лично видел Slack, потребляющий около 3 ГБ памяти. Lens — сопоставимо. Trello в один момент занимал 7 ГБ. А про Visual Studio Code я вообще молчу.

Семь гигабайт. Доска с задачами. 🤯

Возможно, утечка. А возможно, за доской с задачами идёт расчёт ядерного взрыва — иначе аппетит объяснить трудно. Даже если это баг, память расходуется настоящая. Последствия разгребаю я.

Как разработчик, я понимаю выбор Electron: знакомый веб-стек, одна кодовая база, не нужна отдельная команда под каждую ОС. Проще поддержка, быстрее выход на разные платформы. Польза и для команды, и для пользователей.

Но после релиза среда исполнения, процессы и кэши работают уже на моём компьютере. Их расход зависит от реализации. Название технологии не объясняет конкретное зависание.

Поэтому вопрос остаётся: почему чат и доска задач требуют столько памяти? Что делают эти гигабайты? Можно ли выполнять ту же работу экономнее?

У каждой команды свой roadmap. У меня один компьютер. Каждое приложение отдельно может считаться «нормальным», но работать мне приходится со всеми сразу. Их требования складываются. Моё железо от этого не умножается.

Оптимизация стоит времени инженеров. Новую функцию проще показать в анонсе. А если расход ресурсов остаётся без внимания, расплачиваться приходится пользователю: ждать, перезапускать, закрывать нужное. Потом покупать больше памяти.

От тяжёлого редактора я в итоге ушёл на Zed. Его разработчикам — отдельный низкий поклон. Возможно, их тоже достали тяжёлые инструменты. Хорошо, когда есть выбор. Плохо, когда уход из приложения становится способом вернуть себе возможность работать.

Я не требую нулевого потребления ресурсов. Я требую считать их частью качества продукта. Приложение должно нормально жить после нескольких часов работы, с реальными данными и рядом с другими инструментами. За это его создатели отвечают так же, как за работающие кнопки.

Я уже купил компьютер. Следующий не должен становиться обязательным исправлением чужого приложения.

Удобство вашей разработки оплачивается моей памятью и моим временем. Не называйте это экономией. Вы просто выставили счёт мне.