Странное поведение System.Web.Sockets, получающего информацию из сокета

У меня есть код, который использует TCP-соединение для получения данных с сервера с двумя интерфейсами: двоичный и JSON. Он работает довольно быстро и, что логично, получение двоичных данных значительно быстрее, чем JSON. Но это верно только тогда, когда клиент работает на одном хосте с сервером, используя localhost roundtrip. Когда я использую удаленное соединение с сервером, интерфейс JSON становится быстрее, чем двоичный. Как вы можете видеть на прилагаемом рисунке, профилирование одних и тех же клиентских приложений с разными строками подключения (удаленная - левая часть и локальная - правая часть рисунка) показывает одну странную вещь: у меня 80% (4166 мс от общего количества 5106 мс, работающих с двоичным считывателем) метод 'ReadAll') всех задержек во время выполнения при вызове чего-то секретного в ntdll.dll. Есть идеи, что это может быть?

PS: после тестирования моего основного приложения.net на Ubuntu, я точно знаю, что проблема в ntdll.dll, потому что это зависимость от Windows, и без этой зависимости от Linux двоичный читатель работает быстро

0 ответов

Другие вопросы по тегам