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. Його розробникам — окремий низький уклін. Можливо, їх теж дістали важкі інструменти. Добре, коли є вибір. Погано, коли відмова від застосунку стає способом повернути собі можливість працювати.

Я не вимагаю нульового споживання ресурсів. Я вимагаю вважати їх частиною якості продукту. Застосунок має нормально працювати після кількох годин роботи, з реальними даними й поруч з іншими інструментами. За це його творці відповідають так само, як за кнопки, що працюють.

Я вже купив комп’ютер. Наступний не має ставати обов’язковим виправленням чужого застосунку.

Зручність вашої розробки оплачується моєю пам’яттю й моїм часом. Не називайте це економією. Ви просто виставили рахунок мені.