SDWebImage claims AFNetworking不会缓存图像本身而只缓存HTTP响应,因此SDWebImage可以更快地从缓存中调用图像并显示它。
如果我想纯粹使用AFNetworking,这样的声明是真的与否,真的是性能明显的东西吗?这是我应该警惕的吗?
答案 0 :(得分:16)
SDWebImage可以更好地控制图像缓存。它可以缓存到磁盘或内存。
AFNetworking依靠NSURLCache在应用程序启动之间保留图像(并且它不是非常可靠),但如果您只需要在一次运行期间进行缓存,那就太棒了。
两种解决方案都会在应用程序的生命周期内将UIImage对象缓存在内存中。这很重要,因为在滚动表格视图时,缓存NSData表示的速度不够快,无法平滑地加载图像。
总结:AFNetworking的解决方案更简单,适用于大多数用例。如果您需要更好的控制或磁盘缓存,请使用SDWebImage而不是修改AFNetworking的实现。
答案 1 :(得分:2)
我使用过两者:
SDWebImage比UIImage + AFNetworking快得多。
在UITableViewCell中,您可以看到性能的显着差异。 AFNetworking花了很多时间,而且代码也太长了。 SDWebImage更快更短。</ p>
使用SDWebImage获得更好的图像性能。
答案 2 :(得分:1)
这不是真的。
如果查看code,您可以看到类别UIImageView+AFNetworking
缓存UIImage
(使用NSCache
和urlRequest
作为关键字) 。但是缓存不会写入磁盘。