我有一个性能问题,如果我使用
我已经使用“时间分析”工具分析了性能,如第一张图片所示。
简短的问题是:为什么
感谢您的帮助。
[UIImage imageWithContentsOfFile:]
从磁盘加载JPG图片(是的,我无法在应用中提供任何PNG文件格式),将UIImage存储在全局NSCache中,并在[UITableViewCell drawRect:]
中使用缓存的图像。这种方法比使用[UIImage imageNamed:]
慢得多。我已经使用“时间分析”工具分析了性能,如第一张图片所示。
[DBArtistTableViewCell drawRect:]
总是解码JPEG。
在第二张图片中,使用[UIImage imageNamed:]
解决方案时,JPG不会被解压缩。
NSCache
+ UIImage
解决方案:![NSCache + UIImage](https://istack.dev59.com/a0NCP.webp)
[UIImage imageNamed]
解决方案![UIImage imageNamed](https://istack.dev59.com/dEsO0.webp)
UIImage
+ NSCache
解决方案比[UIImage imageNamed:]
解决方案慢,[UIImage imageNamed:]
方法有什么奥秘(是的,我知道缓存,但剩下的奥秘是什么)?感谢您的帮助。