2015-06-09 16 views
11

Mam ładowanie UIVC z Storyboard, który z kolei ładuje Xib. To wewnętrzne obciążenie powoduje, że VC zabiera więcej niż sekundę. W wewnętrznym Xibie dzieje się trochę wymyślnych kroków (ładuje się inny Xib, który ma dynamiczny rysunek), ale nie wydaje się to być wąskim gardłem.Xib pobiera długi czas (> 1s). Cache UIFont wydaje się winić

Zgodnie z Instruments, winowajcą jest UIFont -initWithCoder. (Jeśli drążysz dalej, TBaseFont::CopyLocalizedName() jest najgłębszym wpisem, który stanowi większość czasu 1-krotnego)

Jestem nieco zaskoczony, ponieważ niestandardowa czcionka, której używam, występuje w całej aplikacji bez żadnych problemów. Jakieś pomysły?

Screenshot from Instruments

Odpowiedz

7

Ok problemem było to, że czcionka zwyczaj nie był już osadzony w aplikacji. Przerzuciłem się na inną podobną, która wyglądała tak samo. Dziwne, ponieważ spodziewałem się, że te obrażające się etykiety przywrócą czcionkę systemową na urządzeniu, ale tak się nie stało. Czy to możliwe, że zostały wyciągnięte z Macbooka?

+0

To był dla mnie wygaszacz ekranu na żywo! tnx :) – Vinchenzo

1

Miał podobny problem - w moim przypadku inny twórca w zespole po prostu użył jeszcze jednego rodzaju czcionki, więc po fuzji systemu nie może znaleźć czcionkę i zmienić ją na domyślną - zajmuje to od 1200ms do 2300ms.

Rozwiązanie - ponownie skonfiguruj wszystkie czcionki w ViewController, które powodują pewne zatrzymanie.

2

Podobny problem tutaj - Hari i Gbk wskazał mi w dobrym kierunku.

Znalazłem, że używaliśmy Lucidy Grande w jednym, małym, ukrytym miejscu (dziękuję grep), ale Lucida Grande to NOT embedded in iOS. Właśnie zamieniłem Lucida Grande z Helvetica Neue i zyskałem 3+ sekundy podczas startu. Imponujący.