Xib занимает много времени (> 1 с) для загрузки. Кажется, что кэш UIFont виноват
У меня есть загрузка UIVC с раскадровки, которая, в свою очередь, загружает Xib. Эта внутренняя нагрузка приводит к тому, что VC занимает больше секунды, чтобы загрузить. Во внутреннем xib присутствует какая-то причудливая работа (она загружает другой xib, который имеет динамический чертеж), но это не похоже на узкое место.
Согласно Инструментам, виновник UIFont -initWithCoder
. (Если вы еще больше развернете TBaseFont::CopyLocalizedName()
, это самая глубокая запись, на которую приходится большая часть времени в 1 секунду)
Я немного тупик, поскольку пользовательский шрифт, который я использую, встречается во всем приложении без проблем. Любые идеи?
![Screenshot from Instruments]()
Ответы
Ответ 1
Хорошо, проблема заключалась в том, что пользовательский шрифт больше не был встроен в приложение. Я переключился на другую подобную, которая выглядела одинаково. Странно, хотя, как я ожидал, эти оскорбительные ярлыки вернут шрифт системы на устройстве, но они этого не сделали. Возможно ли, что их вытащили из Macbook?
Ответ 2
Аналогичный вопрос здесь - Хари и gbk намекнули мне в правильном направлении.
Я обнаружил, что мы использовали Lucida Grande в одном маленьком скрытом месте (спасибо grep
), но Lucida Grande НЕ встроен в iOS, Я только что заменил Lucida Grande Helvetica Neue, и я получил 3 + секунды во время запуска. Впечатляет.
Ответ 3
У нас была аналогичная проблема - в моем случае другой разработчик просто использовал еще один тип шрифта, поэтому после того, как система слияния не смогла определить шрифт и изменила его по умолчанию - требуется от 1200 мс до 2300 мс.
Решение - переустановите все шрифты на ViewController, которые вызывают некоторое замораживание.