2016-03-04 24 views
5

Czy istnieje sposób zidentyfikowania dokładnego miejsca w kodzie (np. Długo działającego lub oczekującego na blokadę), który powoduje spadek klatki, używając Instrumentów i/lub Xcode?Identyfikowanie zwalniania klatek przewijania za pomocą Instrumentów

Próbuję przewinąć widok przewijania tak gładko, jak to możliwe, a FPS czasami spada do 59 lub nawet 58, pozostając 60 w przybliżeniu w połowie przypadków, więc chciałbym wiedzieć, co dokładnie powoduje to.

że została włączona flagę Record Waiting Threads w CPU Usage przyrządu matrycy Core Animation, i nie wykazują kolce igły jak na 100% wykorzystanie każdego rdzenia od czasu do czasu (w pobliżu sekund z usuniętych ramek), ale nie może wymyślić sposobu na określenie dokładnego miejsca w kodzie powodującym spadek - wszystkie wywoływane funkcje mają niewielki wpływ i są jednocyfrowymi wartościami procentowymi (więc może to być główny wątek czekający na blokadę).

Odpowiedz

2

Czy próbowałeś używać narzędzi Time Profiler w Instrumentach, aby zobaczyć, które części twojego kodu są bardziej aktywne podczas przewijania?

Jest to bardzo dobry tutorial WWDC wideo o tym, jak wykorzystać czas profilowania, aby znaleźć i naprawić wąskich gardeł w kodzie: https://developer.apple.com/videos/play/wwdc2015/412/

Proponuję obejrzeć ten film, może pomóc znaleźć rozwiązanie swojego problemu.

+0

Danny, dzięki za odpowiedź i za link do filmu - zajmie się tym. –