TGViewer
React Native World React Native World @hello_react_native · 351 subscribers
Post #56 571
Оптимизация старта iOS приложений

Команда Sentry и Emerge Tools (создают топовые инструменты для оптимизации перфоманса мобильных приложений) выпустили open source пакет FaultOrdering

Этот продукт позволяет автоматизировать технику Order Files

Когда приложение запускается на iOS, система загружает его код из binary-файла в оперативную память постранично, блоками по 16 КБ. Даже если используется небольшая часть страницы, вся страница целиком подгружается в память (это называется page fault).

Если при запуске важные символы (методы и классы) разбросаны по binary-файлу, возникает большое число page faults, что замедляет запуск. Техника Order Files решает эту проблему, группируя вместе символы, необходимые на старте, чтобы минимизировать число страниц памяти, которые нужно загрузить.

Технически для использования Order Files нужно создать текстовый файл, в котором будет описан порядок загрузки символов. Но здесь и кроется сложность - как сделать это оптимально.

FaultOrdering автоматически отслеживает вызовы функций и классов, необходимых для запуска приложения. Для этого:

1️⃣ В приложение динамически добавляются breakpoints на каждую функцию.

2️⃣ Приложение запускается в тестовом режиме (обычно через XCUITest).

3️⃣ Минималистичный встроенный дебаггер (SimpleDebugger) фиксирует срабатывание этих breakpoints.

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

В результате приложения запускаются быстрее без изменений кода. Airbnb, Snapchat и Spotify уже используют Order Files и ускоряют запуск своих приложений на 20% и больше.

📈 В React Native приложениях Order Files даст заметную пользу, если приложение содержит много нативного кода или кастомных модулей, активно задействованных при старте

React Native World | Навигация по каналу
  • 🔥 10
More from @hello_react_native
  1. Oct 2, 2026GPU accelerated trading charts Хочу поделиться библиотекой, над которой работаю последнее…
  2. Oct 1, 2026👀
  3. Sep 10, 2026https://shopify.engineering/shop-app-migration немного технический деталей о том чего удал…
  4. Sep 10, 2026https://shopify.engineering/back-to-native
  5. Aug 28, 2026https://x.com/Andrei_Calazans/status/2093316529144189015
  6. Jul 22, 2026How Worklets Bundle Mode accidentally fixed Hermes V1 memory regression А вот и подробный…
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 →