从iOS NSData创建UIImage在iOS 7.1上很慢

时间:2014-09-09 04:23:22

标签: ios swift uiimage

此操作在运行iOS 7.1.2的iPhone 5上耗时700毫秒。

UIImage(data: data) 

data是包含JPEG图像的NSData,400x300px 90K。

  • 即使在单独的线程中运行,它也会降低UI的速度。
  • 仅适用于JPEG,PNG很好。
  • 仅在第一次通话期间发生。
  • 仅在iOS 7.1.2上发生。模拟器中的iOS 8很好。

如何让它加载速度更快,或者最不能阻止用户界面?

演示应用程序位于:https://github.com/exchangegroup/demo-image-loader-benchmark-swift

更新

只有当我在Xcode 设备上启动应用时才会出现这种减速现象。当从设备本身启动时,它运行得更快,大约20ms。首次运行仍然比后续运行慢得多,大约1ms。

2 个答案:

答案 0 :(得分:4)

这在很大程度上取决于所加载图像的大小,原始压缩的大小等等。

一般情况下,你应该从不基本的性能假设来自Xcode的调试版本,如果你已经连接了调试器,那么<​​strong> TRIPLE 。如果您想了解实际情况有多快,您希望使用项目附带的Release配置文件构建并安装到设备,并在没有附加调试器的情况下运行构建。发布版本通常至少快1个数量级,假设您已经遵循标准过程(如包装NSLog),因此它不会将日志吐出到控制台以进行发布版本。

答案 1 :(得分:0)

压缩图像可能会出现一些性能问题。例如,JPEG。查看this文章。