使用SDWebImage而非AFNetworking进行图像加载有什么大优势吗?

时间:2014-01-05 00:22:04

标签: ios objective-c afnetworking afnetworking-2 sdwebimage

SDWebImage claims AFNetworking不会缓存图像本身而只缓存HTTP响应,因此SDWebImage可以更快地从缓存中调用图像并显示它。

如果我想纯粹使用AFNetworking,这样的声明是真的与否,真的是性能明显的东西吗?这是我应该警惕的吗?

3 个答案:

答案 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(使用NSCacheurlRequest作为关键字) 。但是缓存不会写入磁盘。