2017-09-01 210 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

你可以發佈你的日誌和郵遞員結果嗎?另外,你能告訴我你的代碼嗎?如果沒有太多的效果,您可能需要保留代碼。 –