2015-11-24 6 views
1

Я использую Alamofire для выполнения базовых запросов к конечной точке API. Я заметил, что чем чаще я выполняю эти тесты, тем дольше остается запрос Alamofire.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

Проблема здесь не в Alamofire, а в том, как вы измеряете задержку. Вы ставите 100 запросов, поэтому времени, которое требуется для каждого, очень мало. Но поскольку они находятся в очереди, когда последний запрос выполняется, это будет зависеть от большинства предыдущих запросов.

Вы должны использовать объект запроса timeline, чтобы получить задержку с

request.timeline.totalDuration, например.

Смежные вопросы