Как наш плеер на 196 МБ за ночь раздулся до 450 МБ при нуле утечек: 168 забытых вебсокетов и налог SwiftUI
В первой части истории про Kinrox мы радовались как дети: написали открытый нативный видео- и Spotify-плеер для macOS на Swift 6 и SwiftUI ( kinrox.app , GitHub ), закрыли двухгигабайтный Electron-клиент Spotify.app , прикрутили консольный бинарник Spotify Soloist (который ест скромные 27 МиБ ), починили жадный VStack в боковой панели и с гордостью показали скриншот Activity Monitor на 196 МБ оперативки . А во второй серии собрали собственный движок поиска редкой музыки Similar & Discovery в обход закрытых эндпоинтов Spotify. Вечером я подключил MacBook к проектору, включил музыку, вдоволь нащёлкался по новому трёхколоночному интерфейсу, пораскрывал альбомы, покопался в андеграунде через tag:hipster и оставил плеер играть на ночь. Проходит 17,5 часов . Утром я подхожу к ноутбуку, открываю Activity Monitor и вспоминаю бессмертный диалог про суслика: «Ты видишь экономию памяти? Нет. А она есть». В мониторинге висят 450,75 МиБ , а пик за сессию ( lifetime peak ) доходил до 743,1 МиБ . Читать далее
