Разработка
Cколько раз ваши представления SwiftUI перерисовываются: узнаем с помощью Инструментов
Apple предоставляет инструменты, которые позволяют увидеть, сколько раз SwiftUI перерисовывает представления, а также свойства представлений, которые вызывают перерисовку. В этой статье мы расскажем, как использовать эти инструменты.
Если вы столкнулись с проблемой производительности SwiftUI-приложения, причина может заключаться в слишком частой перерисовке представлений. Apple предоставляет инструменты, которые позволяют увидеть, сколько раз SwiftUI перерисовывает представления, а также свойства представлений, которые вызывают перерисовку. В этой статье мы расскажем, как использовать эти инструменты.
Профилирование вашего приложения
Выполните следующие шаги для профилирования вашего приложения с помощью Инструментов SwiftUI:
- Перейдите в Xcode.
- Нажмите Cmd-I или выберите Product > Profile, чтобы собрать проект и запустить Instruments.
- Выберите SwiftUI из списка шаблонов.
- Нажмите кнопку Choose.
- Нажмите кнопку Record над боковой панелью, чтобы начать профилирование.
- По окончании нажмите кнопку Stop.
Шаблон SwiftUI содержит следующие инструменты:
- View Body
- View Properties
- Коммиты Core Animation
- Профилировщик времени
- Зависания
В этой статье я рассказываю об инструментах View Body и View Properties. Прочитайте следующую статью, чтобы узнать больше об инструменте Time Profiler.
Просмотр количества перерисовок представлений
Используйте инструмент View Body, чтобы просмотреть статистику перерисовок представлений SwiftUI в вашем приложении. Таблица инструмента View Body содержит следующие столбцы данных:
- Количество (Count)
- Общая продолжительность (Total Duration)
- Минимальная продолжительность (Minimum Duration)
- Средняя продолжительность (Average Duration)
- Максимальная продолжительность (Maximum Duration)
- Стандартное отклонение продолжительности (Standard Deviation Duration)
Наиболее важными столбцами являются Count, Total Duration и Average Duration. В колонке Count указано, сколько раз SwiftUI отрисовывал представление. В столбце Total Duration указано общее время отрисовки. В столбце Average Duration указано среднее время каждой отрисовки.
В инструментальной таблице View Body есть как минимум две строки: одна для SwiftUI и одна для вашего приложения. Начните с просмотра статистики для вашего приложения. Вы увидите общее количество раз, когда SwiftUI отрисовывал представления вашего приложения.
Чтобы узнать, какие представления были нарисованы чаще всего, нажмите на треугольник раскрытия рядом с вашим приложением. Появится строка для каждого вида в вашем приложении SwiftUI.
Представления, которые отрисовывались больше всего, должны появиться вверху. Если вы не видите виды, которые были нарисованы чаще всего, щелкните заголовок таблицы Count, чтобы отсортировать виды по количеству.
Просмотр свойств, вызывающих перерисовку
Если вы обнаружили, что одно из ваших представлений часто перерисовывается, необходимо выяснить, что заставляет его перерисовываться так часто. Как найти причину перерисовки?
Представления SwiftUI перерисовываются, когда изменяются данные, привязанные к представлениям. Используйте инструмент View Properties, чтобы увидеть свойства (переменные), которые изменяются чаще всего. Все, что в вашем коде использует обертки свойств, такие как @State
и @Bindin
g, появится в этом инструменте.
Выбрав инструмент View Properties, вы увидите длинный список свойств с их текущими значениями. Вы можете получить больше полезной информации из сводки. Нажмите Cmd-2 или выберите пункт Summary на панели перехода, чтобы увидеть сводку.
Сводка выглядит так же, как и сводка для инструмента View Body. Здесь есть строки для SwiftUI и вашего приложения. Есть один столбец, в котором указано количество обновлений.
Инструмент View Properties отличается тем, что у него есть уровни, на которые можно спускаться, нажимая на треугольники раскрытия. Он имеет следующие уровни:
- Тип представления (View type)
- Тип свойства (Property type)
- Значение свойства (Property value)
Типы представлений для вашего приложения — это представления вашего приложения. Они должны быть такими же, как представления в инструменте View Body.
Типы свойств — это типы данных для свойств в ваших представлениях SwiftUI. Примером типа свойства в представлении SwiftUI является Binding<String>
, который представляет собой привязку к строке. Инструмент показывает типы данных, а не имена ваших переменных.
Значения свойств показывают различные значения, которые свойство имело во время профилирования. Свойство Boolean покажет количество раз, когда оно было установлено в true и false.
Вы заметили, что при просмотре свойств представления приходится часто нажимать на треугольник раскрытия. Если щелкнуть треугольник раскрытия, список развернется и покажет все уровни, так что вам не придется щелкать так часто. Повторный щелчок по опции приведет к сужению списка.
-
Новости4 недели назад
Видео и подкасты о мобильной разработке 2025.16
-
Новости3 недели назад
Видео и подкасты о мобильной разработке 2025.17
-
Разработка4 недели назад
Расширенные архитектурные правила в SwiftLint: часть 1
-
Видео и подкасты для разработчиков4 недели назад
Не два байта переслать: эмуляция бесконтактных карт на мобильных устройствах