概述
我们比较了SDWebImage和PINRemoteImage,它们是iOS上常用的异步图像下载库。
我知道
时间和电池电量不足,因此我将对其进行简要总结。
结果
PINRemoteImage更快。
如下所述,SDWebImage需要15毫秒来完成基准测试过程,而PINRemoteImage则需要14毫秒。这是一个细微的差异,但是PINRemoteImage获胜。
另外,内存使用率异常低。 Xcode的内存使用情况可能无法准确测量,但是我暂时没有使用任何内存。
基准测试方法
我用imagemagick生成了500张图像。
我启动了使用nodejs在本地制作映像的服务器,并将其分发。
用于基准测试的应用程序在模拟器上运行。
应用程序将下载四次之前生成的500张图像,并输出所花费的时间。
总共下载了2000张图像,但是由于该库实际上已将其缓存,因此将不会从第501张图像进行网络通信。
源代码
用于基准测试的项目在此处发布。
https://github.com/mironal/AsyncImageBench
该文件全部与基准有关。 https://github.com/mironal/AsyncImageBench/blob/master/AsyncImageBench/ViewController.swift
详细结果
SDWebImage
- 15.459992945194244 ms,305.4 MB
- 15.180207014083862 ms,305.9 MB
- 14.194296956062317 ms,306.4 MB
- 15.525336980819702毫秒,305.5 MB
- 15.591868042945862 ms,305.4 MB
当不执行缓存时,屏幕非常闪烁。情况已上传到https://youtu.be/8Xu9O-7AmLU。
附录:通过指定
PINRemoteImage
- 13.661346018314362毫秒,34.7 MB
- 13.862448990345001 ms,35.7 MB
- 14.107374012470245 ms,35.8 MB的
- 13.682069957256317 ms,34.4 MB的
- 15.576615989208221 ms,35.1 MB
我没有像SDWebImage那样闪烁。 https://www.youtube.com/watch?v=T0jDrUqnlxU
摘要
- PINRemoteImage更快并且使用了更少的内存
- PINRemoteImage可供选择
-
我想切换使用SDWebImage的项目
- API接口几乎相同,因此迁移似乎很容易