Проблема с производительностью в Windows.Web.Http.HttpClient - PullRequest
0 голосов
/ 23 октября 2018

Я использую Windows.Web.Http.HttpClient для своих запросов API.Мой HttpClient является синглтоном.Я проанализировал распределение ресурсов для моих вызовов API с помощью Network Profiler в Visual Studio.В разделении «Время» я вижу, что часть «Ожидание» (TTFB) занимает больше всего времени (около 275 мс. Иногда она достигает 800 мс).

enter image description here

Согласно этому doc время ожидания - это

Время, потраченное на ожидание первоначального ответа, также известное как время до первого байта.Это время фиксирует задержку прохождения в оба конца на сервер в дополнение к времени, затраченному на ожидание доставки сервером ответа.

При попытке выполнить один и тот же вызов API на разных платформах mac (NSUrlSession) илиAndroid, время ожидания значительно меньше в той же сети. Мой вопрос: зависит ли эта задержка времени от реализации HttpClient?Если нет, есть ли что-то, что необходимо изменить в моем коде NetworkAdapter?

1 Ответ

0 голосов
/ 29 октября 2018

TTFB является функцией времени кругового обхода (RTT) и времени отклика сервера (SRT), которые в основном находятся вне контроля клиентской ОС.В качестве базовой проверки работоспособности я бы порекомендовал измерить TTFB, используя сценарий 1 приложения-примера HttpClient SDK .Одним из возможных объяснений может быть то, что устройство Windows не имеет такой же настройки сети, как устройства Mac / Android (например, все ли они подключены через WiFi? Если да, все ли они используют одну и ту же полосу (2,4 ГГц или 5 ГГц)?).Однако наиболее вероятным объяснением является то, что HTTP-запрос, отправляемый HttpClient, отличается от того, который отправляет NSUrlSession (например, с точки зрения заголовков), что приводит к другому времени обработки на стороне сервера.

TTFB очень зависит от сайта.Вот что я вижу в своей работе, используя VS2017 Network Profiler с примером приложения HttpClient SDK:

Bing.com:

www.bing.com

Amazon.com:

www.amazon.com

Microsoft.com:

www.microsoft.com

...