Я загружаю кучу UIImages (которые являются локальными и предварительно загруженными с приложением) с помощью этого кода:
NSString*plistPath = [[NSBundle mainBundle] pathForResource:@"images" ofType:@"plist"];
NSArray *array = [NSArray arrayWithContentsOfFile:plistPath];
NSMutableArray *finalArray = [[NSMutableArray alloc] initWithCapacity:array.count];
for(int i=0;i<array.count; i++) {
[finalArray addObject:[UIImage imageNamed:[NSString stringWithFormat:@"%@",[array objectAtIndex:i]]]];
}
затем позже в collectionView:
cell.cellImage.image = [finalArray objectAtIndex:indexPath.row];
В представлении этого collectionView огромное отставание. Я зафиксировал это отставание с помощью следующих снимков экрана инструментов:
Между этой задержкой (ощущаемой пользователем и показанной на графике) и фактическим деревом вызовов ниже, которое не показывает задержки, существует значительное расхождение. Я загружаю 500 тыс. jpg в каждую ячейку collectionView. Этот анализ инструментов в основном говорит, что я ничего не могу сделать в коде, и это задержка системной библиотеки?
РЕДАКТИРОВАТЬ: мой вопрос больше не касается этого конкретного варианта использования с моим collectionView. Речь об инструментах в целом. Если у меня выбраны параметры, которые я делаю на скриншоте, и приложение показывает значительное отставание, а профилировщик времени - нет, могу ли я что-нибудь сделать в своем коде, чтобы увеличить скорость? Думаю, я спрашиваю в более общем плане о профилировщике времени, настройках и их результатах. Если все отставание связано с кодом более низкого уровня или системными фреймворками, могу ли я что-нибудь с этим поделать?