Измерение использования процессора, отображающего UIView в Xcode - PullRequest
0 голосов
/ 01 декабря 2018

У меня есть вид на перо в Интерфейсном Разработчике.У него есть несколько UIStackViews внутри пера, которые я использовал, потому что это легко выровнять элементы пользовательского интерфейса.Коллега предложил мне не использовать UIStackViews, потому что они "дорогие" с вычислительной точки зрения.Альтернативой является установка ограничений для отдельных элементов вручную.

Какой инструмент XCode я могу использовать для проверки утверждения моего коллеги и как его использовать?Лучшее, что я нашел, это это , но я надеялся на что-то более гранулярное.Указанное перо - UITableViewCell.

Ответы [ 2 ]

0 голосов
/ 02 декабря 2018

Копаясь, я нашел репозиторий под названием LayoutFrameworkBenchmark .Я запускал тесты в Xcode 12 на симуляторе iPhone 7+.Я собрал данные и выбросил их в Google Sheet.Это действительно показывает, что UIStackView - это ключ от других методов верстки.

Теперь я понимаю, почему в обоих лагерях, кажется, есть люди, однако в реальном мире человеческий глаз вряд ли заметит большую разницуесли это не огромная коллекция. enter image description here

0 голосов
/ 01 декабря 2018

они "дорогие" с вычислительной точки зрения

Хорошо, сейчас я попытаюсь доказать, что это совершенно фальшиво.

Представление стека не волшебно,Представление стека не выполняет никаких специальных настроек во время выполнения.Представление стека - просто создатель ограничений, ни больше, ни меньше.Так ты.Все, что делает представление стека, вы можете сделать.И результирующие ограничения стекового представления - это те же самые ограничения, которые вы создали бы сами (при условии, что вы даже знаете, как).Следовательно, сами ограничения не дороже только потому, что их сделал просмотр стека.

Итак, давайте поговорим о начальной генерации ограничений.Что ж, представление стека генерирует свои ограничения наизусть.Это просто простой формульный подход, основанный на параметрах, уже заданных такими вещами, как настройки представления стека и (в некоторых случаях) размеры внутреннего содержимого упорядоченных подпредставлений.Таким образом, фактически не требуется времени , чтобы представление стека выплюнуло создаваемые им ограничения, и ему нужно сделать это только один раз.

Так что, если генерация ограниченийне дорого, и если ограничения сами по себе не дороги, где расходы?Это нигде.

Кто-то может утверждать, что для определенного желаемого результата использование стекового представления излишне сложно или лениво, поэтому было бы «лучше» самим установить ограничения;но «дорогое» не кажется мне подлинным обвинением, которое можно предъявить стекам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...