Xib 加载时间较长(>1 秒)。 UIFont 缓存似乎是罪魁祸首

Xib taking long time (>1s) to load. UIFont cache seems to blame

我有一个 UIVC 从 Storyboard 加载,而 Storyboard 又加载了 Xib。此内部负载导致 VC 加载时间超过一秒。内部 xib 中有一些花哨的步法(它加载了另一个具有动态绘图的 xib)但这似乎不是瓶颈。

根据 Instruments 的说法,UIFont -initWithCoder 是罪魁祸首。 (如果再往下钻,TBaseFont::CopyLocalizedName()是占1s时间大部分的最深条目)

我有点难过,因为我使用的自定义字体出现在整个应用程序中,没有任何问题。有什么想法吗?

好的,问题是自定义字体不再嵌入到应用程序中。我换了另一个看起来一样的类似的。虽然很奇怪,但我原以为那些有问题的标签会恢复设备上的系统字体,但事实并非如此。有没有可能它们是从 Macbook 中提取出来的?

有类似的问题 - 在我的情况下,团队中的另一个开发人员只使用了另一种类型的字体,所以在合并系统后无法确定字体并将其更改为默认字体 - 它需要 1200 毫秒到 2300 毫秒。

解决方案 - 重新设置 ViewController 上的所有字体,这会导致一些冻结。

这里有类似的问题 — Hari 和 gbk 向我提示了正确的方向。

我发现我们在一个隐藏的小地方使用 Lucida Grande(谢谢 grep),但 Lucida Grande 是 NOT embedded in iOS。我刚刚用 Helvetica Neue 替换了 Lucida Grande,我在启动时获得了 3 秒以上的时间。感人的。