【发布时间】:2018-02-10 22:46:20
【问题描述】:
我有一个函数可以多次调用 REST API。进行了初始调用,我得到了一些值来进行下一次调用并将 JSON 解析为自定义对象。完成后,我会使用新的 URL 再次调用该函数。我总共打了 8 个电话,总共需要大约 10-14 秒。我使用 Alamofire 进行网络连接和 SwiftyJSON 进行解析。我在函数中进行了一系列时间间隔检查,以查看占用最多时间的内容。一旦我取回 JSON 数据,运行一些逻辑和解析总共需要大约 300 毫秒,但是当我通过 Alamofire 发出请求以获取 JSON 数据时所需的时间是 1.3 - 1.5 秒。我进行了大量测试,我能得到的最好结果是一次通话 700 毫秒,但大多数都超过 1 秒。当我在 Postman 中运行它们(总共 8 个,延迟 300 毫秒)时,每个需要 300 毫秒到 700 毫秒。大约快一倍。这听起来对吗?或者我应该看到请求需要像在 Postman 中一样长的时间吗?使用同一台计算机并在模拟器和我的手机上运行应用程序,结果相同。这是我的精简代码:
func parse() {
Alamofire.request(jsonURL).responseJSON { response in
switch response.result {
case .success(let value):
let json = JSON(value)
//Check for 200 code
if json["meta"]["code"].intValue == 200 {
// doing lot of stuff
}
case .failure(let error):
print(error)
print("json failed")
}
}
}
【问题讨论】: