我正在使用Alamofire向API端点发出基本请求。我注意到,我经常进行这些测试,Alamofire请求似乎需要的时间越长。
我可以使用下面的代码示例重现此行为。这会执行大量请求并将请求的持续时间打印到控制台。最后一个请求比第一个请求慢约0.5秒。减速量似乎与API返回的JSON数量有关(我们的API返回的数据更多,减速更为重要)
我在这里遇到某种缓存机制吗?
let testURL = "https://httpbin.org/get"
for var i = 0; i < 100; i++ {
let startDate = NSDate()
Alamofire.request(.GET, testURL)
.responseJSON { response in
print("Duration of request: \(NSDate().timeIntervalSinceDate(startDate))")
}
}
答案 0 :(得分:0)
这里的问题不是Alamofire,而是你如何测量延迟。您正在排队100个请求,因此每个请求所需的时间非常短。但是由于它们排队等待,当最后一个请求运行时,将取决于之前的大多数请求。
您应该使用请求timeline
对象来获取延迟,
request.timeline.totalDuration
。