2017-09-01 168 views
0

我有一个函数可以对REST API进行多次调用。初始调用完成后,我获得一些值以进行下一次调用并将JSON解析为自定义对象。一旦完成,我再次使用新的URL调用该函数。我总共打了8个电话,总共需要10-14秒。我使用Alamofire进行网络和SwiftyJSON解析。我在函数中加入了一系列时间间隔检查,以查看哪些内容占用了最多的时间。一旦我得到了JSON数据,运行一些逻辑和解析总共需要300ms,但是当我通过Alamofire发出请求让JSON恢复时,需要的时间为1.3-1.5秒。我进行了大量的测试,而且我能够获得的最好时间是一次呼叫700ms,但大多数时间超过1秒。当我在Postman中运行它们时(总共有8个,延迟300毫秒),每次需要300毫秒到700毫秒。大约快两倍。这听起来是否正确,或者我是否应该看到请求在邮递员身上发生?使用同一台计算机并在模拟器和我的手机上运行该应用程序,获得相同的结果。这里是我的精简代码:Alamofire请求缓慢?

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") 

     } 
    } 
} 

回答

0

试图确定响应是否返回200确定通常从Alamofire缓慢。您可以避免使用200,并添加一些在出现问题时运行的错误处理。它会更快。如果您有任何问题,请在下面评论。

谢谢,

Arnav Kaushik将

+0

感谢您的响应。我删除了这张支票,并且当我比较邮递员的时间时,它似乎没有太多的影响。为了以防万一,我会保留它。 – HH887

+0

你可以发布你的日志和邮递员结果吗?另外,你能告诉我你的代码吗?如果没有太多的效果,您可能需要保留代码。 –