我有性能问题,如果我加载JPG(是的,我不能在应用程序中提供任何PNG文件格式)来自磁盘[UIImage imageWithContentsOfFile: ]
的图像,将UIImage存储在全局NSCache中并使用[UITableViewCell drawRect: ]
中的缓存图片。这种方法比用户[UIImage imagedNamed:]
慢得多。
如果使用仪器“时间曲线”分析了性能,正如您在第一张图片中看到的那样,JPEG总是在[DBArtistTableViewCell drawRect:]
中解码。
在使用[UIImage imageNamed:]
解决方案的第二张图片中,JPG不会解压缩。
NSCache
+ UIImage
解决方案:
[UIImage imageNamed]
解决方案
简短的问题是:为什么UIImage
+ NSCache
解决方案比[UIImage imageNamed:]
解决方案慢,而[UIImage imageNamed:]
方法的魔力是什么(是的,我知道缓存,但其余的魔法是什么?)
帮助帮助。
答案 0 :(得分:3)
我认为原因是UIImage imageNamed
导致数据被解压缩并存储在其缓存中,而UIImage imageWithContentsOfFile
加载压缩数据,但在您需要显示它之前不会对其进行解压缩。