Холодный старт iOS аппа 4.8 секунды, продакт хочет 2, что реально срезать
Рейтинг: 66.7% · 13 голосов
Войдите, чтобы голосовать
Голосовать «За» и «Против» могут только авторизованные пользователи. Войдите в свой аккаунт — или зарегистрируйтесь, это займёт минуту.
Нет аккаунта? Зарегистрироваться
Холодный старт iOS аппа 4.8 секунды, продакт хочет 2, что реально срезать
Екоммерс апп, Swift, проекту 6 лет. MetricKit и AppMetrica хором показывают холодный старт p50 4.8 сек на iPhone 12. Продакт сходил на конфу, услышал что норма 2 секунды, и теперь у меня таска сделать 2.
Разложил через Instruments, шаблон App Launch. pre-main 1.9 сек, в проекте 19 динамических фреймворков через CocoaPods. Дальше didFinishLaunching, там синхронно поднимаются Firebase, AppMetrica, MyTracker, чатовый SDK и пуш-провайдер, еще примерно 1.5 сек. Остальное наша инициализация, DI контейнер на 300+ зависимостей строится жадно на старте.
Реально дожать до 2 без переписывания половины аппа? С чего бы начали.
Разложил через Instruments, шаблон App Launch. pre-main 1.9 сек, в проекте 19 динамических фреймворков через CocoaPods. Дальше didFinishLaunching, там синхронно поднимаются Firebase, AppMetrica, MyTracker, чатовый SDK и пуш-провайдер, еще примерно 1.5 сек. Остальное наша инициализация, DI контейнер на 300+ зависимостей строится жадно на старте.
Реально дожать до 2 без переписывания половины аппа? С чего бы начали.
✔ Лучший ответ сформирован автоматически — Myjudas
Начните с pre-main, это самое дешевое. В подфайле use_frameworks! :linkage => :static, пересобрать, посмотреть что отвалится (обычно пара подов с ресурсами, лечится). Нам статик линковка срезала pre-main с 1.6 до 0.4. Можно еще mergeable libraries пробовать, но статик проще и предсказуемее. Дальше все SDK кроме крашрепортера инициализировать после первого кадра. Аналитика переживет задержку в сек…
Re: Холодный старт iOS аппа 4.8 секунды, продакт хочет 2, что реально срезать
✔ Лучший ответ — сформирован автоматически
Начните с pre-main, это самое дешевое. В подфайле use_frameworks! :linkage => :static, пересобрать, посмотреть что отвалится (обычно пара подов с ресурсами, лечится). Нам статик линковка срезала pre-main с 1.6 до 0.4. Можно еще mergeable libraries пробовать, но статик проще и предсказуемее.
Дальше все SDK кроме крашрепортера инициализировать после первого кадра. Аналитика переживет задержку в секунду, ивенты никуда не денутся. DI переводите на ленивую сборку хотя бы для того, что не нужно главному экрану. 2 секунды на 12 айфоне выглядит достижимо, у вас просто никто этим 6 лет не занимался.
Дальше все SDK кроме крашрепортера инициализировать после первого кадра. Аналитика переживет задержку в секунду, ивенты никуда не денутся. DI переводите на ленивую сборку хотя бы для того, что не нужно главному экрану. 2 секунды на 12 айфоне выглядит достижимо, у вас просто никто этим 6 лет не занимался.
Re: Холодный старт iOS аппа 4.8 секунды, продакт хочет 2, что реально срезать
@Myjudas, p50 на одном девайсе это не метрика. меряйте p90, и на холодном девайсе после ребута, а не после kill из свитчера, это два разных старта. и у MetricKit выборка только с тех, кто согласился делиться данными, она смещенная
- burnedblueteam
- Сообщения: 30
- Зарегистрирован: 11 май 2026, 21:39
Re: Холодный старт iOS аппа 4.8 секунды, продакт хочет 2, что реально срезать
у нас AppMetrica на старте синхронно ходила за конфигом, перенесли активацию после didBecomeActive, минус 600 мс на ровном месте. и проверьте, чатовых SDK у вас случайно не два? у нас жило два, один легаси, выпилили, продакт до сих пор не заметил
Re: Холодный старт iOS аппа 4.8 секунды, продакт хочет 2, что реально срезать
с одной оговоркой: если апп открыли по диплинку из рекламы, а трекер поднялся после первого кадра, конверсия улетает в органику. маркетинг потом устроит разнос похлеще продакта, проходили. лечится так: диплинк ловить сразу, буферизовать и скармливать трекеру после его инициализации. AppMetrica это переживает, ивенты до активации складываются в очередьMyjudas писал(а):Дальше все SDK кроме крашрепортера инициализировать после первого кадра.
Re: Холодный старт iOS аппа 4.8 секунды, продакт хочет 2, что реально срезать
@svelte1, плюсую и добавлю: с iOS 15 еще и prewarming портит картину. система может поднять процесс заранее, до тапа, и тогда время от старта процесса до первого кадра включает паузу, в которой апп просто висел в памяти. поэтому цифры от main() и от тапа расходятся в разы. без своих сигнпостов (main, didFinishLaunching, первый кадр) обсуждать эти 4.8 вообще бессмысленно
Поделиться темой:
✈ Telegram
VK
- Похожие темы
-
-
-
-
-
- Бросить найм ради своего проекта: при каком MRR вы реально решились уйти с работы?
10 ответов · 2040 просмотров
-
- С чего реально начать в пентесте в 2026? TryHackMe, HTB или сразу сертификаты?
12 ответов · 1917 просмотров
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость