У меня проблема с производительностью, если я загружаю изображение JPG (и да, я не могу предоставить любой формат файла PNG в приложении) с диска с помощью [UIImage imageWithContentsOfFile: ]
, сохраняю UIImage в глобальном NSCache и использую Cached Изображение в [UITableViewCell drawRect: ]
. Этот подход намного медленнее, чем пользователь [UIImage imagedNamed:]
.
Если вы проанализировали производительность с помощью инструмента «Time Profile» и, как вы можете видеть на первом рисунке, JPEG всегда декодируется в [DBArtistTableViewCell drawRect:]
.
На втором рисунке с решением [UIImage imageNamed:]
JPG не будет распакован.
NSCache
+ UIImage
Решение:
[UIImage imageNamed]
Решение
Короткий вопрос: почему решение UIImage
+ NSCache
медленнее, чем решение [UIImage imageNamed:]
, и в чем заключается магия с методом [UIImage imageNamed:]
(да, я знаю, что такое кэширование, но какова остальная магия)
Спасибо за помощь.