2016-02-11 1 views
2

Я пытаюсь использовать Инструменты, чтобы понять, почему существует видимое отставание, когда я показываю определенный контроллер просмотра.iOS Time Profiling: Funny How Time Slips Away

При запуске профилировщика, и сосредоточиться только на интервале времени во время инициализации контроллера представления и отображения на экране, я вижу это:

enter image description here

Очевидно, что задержка 500 мс на главном потоке не хорошо. Но куда прошло время? Почему дерево вызовов идет от 100% до 15%?

Как я могу получить инструменты, чтобы дать мне больше информации об этом недостающем 85%?

(Чтобы создать этот результат, «инвертировать вызов дерево» и «отдельная ниткой» были проверены в настройках дисплея.)

ответ

0

Там не хватает 85%. Дерево вызовов не меняется от 100% до 15%. Первый список на скриншоте содержит общее время основного потока, что составляет 100% времени. Списки после этого расскажут вам, куда идет время. Первый занимает 15% времени, второй - 3,4%, третий - 2,7% и т. Д.

Если вы хотите найти свой код в дереве вызовов, установите флажок «Скрыть системные библиотеки» в настройках отображения. Когда вы скрываете системные библиотеки, первый список должен иметь имя main. Не беспокойтесь об этом списке, так как он похож на главную запись на вашем скриншоте. Первый листинг после main - это самый медленный путь кода. Двойной щелчок по вашим функциям в дереве вызовов показывает строки кода, которые занимают больше всего времени, что должно помочь вам найти источник задержки в коде. Начните с листинга после основного и оттуда.