Как рассчитать время загрузки и просмотра рендеринга UIViewController, который имеет UITableView в качестве подпредставления?
У меня есть контроллер вида, который я нажимаю от предыдущего контроллера вида. Оба этих контроллера представления имеют табличные представления. Учитывая, что весь мой пользовательский интерфейс является синхронным (т.е. я не получаю данные в фоновом потоке, а затем отправляю reloadData в главном потоке), как рассчитать время, которое потребовалось пользователю в миллисекундах от нажатия на ячейку в первом контроллере представления до завершения во втором контроллере представления с табличным представлением, заполненным и предоставленным.
Подходы, которые я уже попробовал 1) Добавлен маркер запуска в didSelectCell в первом контроллере View и viewDidAppear во втором контроллере View. -> Это не было точным чтением, так как вызов viewDidAppear был значительным временем после того, как представление было визуализировано, и анимация нажатия прошла успешно. 2) Я попытался добавить следующую логику -
[CATransaction begin];
//calculate start time
[CAtransaction setCompletionBlock:^{
//Calculate current time - start time;// Call it t1
}];
[CATransaction commit];
//Calculate current time - start time;// Call it t2
Это дало мне неправильные показания для тех же данных, согласно профайлеру времени моя транзакция CATransaction (), которая рисовала мой пользовательский интерфейс таблицы, заняла ~ 150 мс. Большую часть времени я получал t1 ~ 650 мс и t2 ~ 150 мс, но иногда возникали некоторые аномалии, когда я получал показания, где t1 ~ 150 мс и t2 ~ 2 мс
Мои вопросы: 1) получает ли время, необходимое для выполнения транзакции CAT, правильную меру контроллера Load View (Push + view render) 2) Если да, то как я могу исследовать CATransaction системы, чтобы получить правильное время, которое потребовалось визуализировать таблицу и нажать контроллер представления.