我在开发应用时遇到了一个非常奇怪的问题。当然,我们有很多REST API,我们在应用程序中工作,但最近我注意到一个错误,我已经解释了一周以上的错误。
问题:
在iPhone 6上,API响应会延迟(2秒以上)。
设置:
xCode 9,Swift 4,部署目标iOS 9 +,Alamofire 4.7
测试
起初我注意到我的屏幕严重依赖API响应开始比平常慢得多。当它在视觉上显而易见时,我的第一个想法是问题是最近的Alamofire更新。我记录了服务器响应时间,请求完成时间和延迟。延迟问题仅发生在iPhone 6上。
我决定进行纯测试,因此我创建了一个新应用程序,其唯一目的是测试API响应时间。我用两种方法创建了一个简单的客户端:一个使用Alamofire
,第二个使用URLSession
来确保问题与Alamofire无关。
注意:我使用了两个不同的iPhone 6,安装了10和11 iOS。
这是物理设备的平均延迟输出:
iPhone 5s iOS 10: 0.655 sec
iPhone 7 iOS 11: 0.572 sec
iPhone 7+ iOS 11: 0.561 sec
iPhone 6 iOS 10: 2.512 sec
iPhone 6 iOS 11: 2.441 sec
模拟器输出并不依赖于所选型号或iOS版本,平均值约为0.5秒。
使用Alamofire
或URLSession
之间也没有显着差异。
我测试了2个API:一个来自我正在处理的项目,另一个来自openweathermap。两者都显示iPhone 6上的延迟增长。
到现在为止,我已经迷失了,并且不知道可能会在iPhone 6上造成这样的滞后,而其他任何设备都经过了预期的测试。任何关于问题的想法或进一步的测试建议将不胜感激。