TGViewer
iOS Dev iOS Dev @iosdev · 7.92K subscribers
Post #866 4.94K
Измерение производительности приложений iOS в Uber: техники и советы

Для запуска приложения инженеры специально измеряют продолжительность холодного запуска приложения, которая состоит из создания первого процесса приложения, инициализации main.swift, различных сетевых вызовов для получения контента в реальном времени и первого прохода рендеринга для отрисовки экрана.

Это отличается от горячего запуска, когда приложение уже инициализировано в памяти и просто выведено на передний план из фона.

В дополнение к вышеперечисленному команда Uber создала конвейер данных для получения метрик частоты задержек и зависаний от Apple, что обеспечивает более глубокое понимание того, что происходит на уровне ОС.

📖 В этой исследовательской статье инженеры рассказывают, какие показатели производительности и какие инструменты и процессы были созданы.

Например, для измерения времени до main() в приложении после создания процесса используется вызов ядра Mach:

C/C++
int mib[4] = {CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid()};
struct kinfo_proc kp;
size_t size = sizeof (kp);
// Time in Microseconds
kp.kp_proc.p_starttime.tv.sec * 1000000 + kp.kp_proc.p_starttime.tv_usec


Из интересных решений: данные MetricKit не обрабатываются на клиенте, а отправляются в полуструктурированном формате JSON на серверную часть.

Грамотное исследование этих метрик позволяет определять, что сотни изменений кода и десятки функций не замедлят запуск приложения.

Кроме того, эти данные используются для оценки импакта тех или иных фич на скорость запуска, и, как следствие, непосредственного влияния на бизнес.

😃 iOS Dev
  • 🔥 11
  • 👍 7
  • 👏 3
  • ❤ 2
  • 🤯 1
  • 🎉 1
  • 🆒 1
More from @iosdev
  1. Oct 8, 2026Мультиагентность: следующий шаг в разработке или лишняя сложность? AI-агенты уже умеют пис…
  2. Oct 8, 2026Продвинутые техники работы с макросами в Swift Владение макросами позволяет автоматизирова…
  3. Oct 7, 2026Работа с модальными экранами на iPhone Duo На iPhone Duo всплывающие окна могут выглядеть…
  4. Oct 6, 2026⚡️ Apple обязали всех делать поддержку iPhone Duo с апреля 2027 года Сегодня выкатили обно…
  5. Oct 5, 2026iPhone Duo UIKit Q&A: большая подборка ответов от инженеров Apple 📖 В своём блоге Антон с…
  6. Oct 1, 2026SwiftUI Charts и динамическое маскирование Одним из применений для диаграмм является разны…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →