os_signpost



os_signpost — отличный инструмент для профилирования. С его помощью вы можете разметить код, чтобы наглядно посмотреть сколько и что занимает времени. Проще на примере.



Для хранения данных мы используем Realm, но немного странным образом: многие ответы из сети мы кладем в базу, потом читаем из базы и только тогда показываем. «Realm быстрый», заход на офлайн режим, все дела. Наверно, когда-то это работало хорошо. Кароч, легаси.



Надо померять. Добавил несколько сайнпостов, запустил пустой профайлер, добавил сайнпост инструмент, запустил.



Выводы интересные:

- Скачивание 300 мс, конвертация в Codable 130 мс.

- 400 мс сохраняется в рилм.

- 590 мс читается из базы и конвертится во вьюмодели.



Еще раз: работа на стороне приложения занимает 2/3 всего получения меню.



Еще видно другую проблему: меню читается два раза. Можно упростить.



Дел на 15 минут, зато теперь в любой момент можно посмотреть.



Чтобы научиться: простой пример или посложнее.