Zostałem poproszony o zmniejszenie czasu uruchamiania aplikacji na iOS. Jestem ogólnie zaznajomiony z platformą/narzędziami, ale nie skupiałem się wcześniej na czasie uruchamiania aplikacji. Zastanawiam się, czy są znane wzorce do zaatakowania tego problemu?Kanoniczna metoda pomiaru wydajności uruchamiania aplikacji iOS?
Zdaję sobie sprawę, że mogę po prostu zmierzyć czas potrzebny na przejście z głównej() do zakończenia application:didFinishLaunchingWithOptions:
(która obejmuje wszystkie zadania ładowania w tle), ale znowu mam nadzieję, że może być bardziej znormalizowany sposób to.
Wszelkie sugestie będą mile widziane!
-M
Dlaczego ty 'dispatch_async' to? Pomoże to w pomiarze czasu, ponieważ kolejkujesz w następnej pętli. Prawdopodobnie nie jest to duża różnica, ale wydaje się zupełnie niepotrzebnym źródłem niedokładności. –
Funkcja @jshier 'dispatch_async' jest używana w taki sposób, że dziennik jest drukowany, gdy użytkownik może faktycznie wejść w interakcję z aplikacją. Główna kolejka jest zablokowana w 'application: didFinishLaunchingWithOptions', i chcemy wiedzieć kiedy główny wątek jest faktycznie zakończony z całą jego pracą. – bclymer
To jest trochę niezręczne, 'application: didFinishLaunchingWithOptions' jest w głównym wątku, więc dlaczego musimy ponownie wysłać główny wątek? Myślę, że zatrzymanie timera na pierwszym 'viewDidAppear' może być trochę bardziej sensowne, ale nie oglądałem sesji, może czegoś brakuje. – Zorayr