Информация об изменениях

Сообщение Re: TCP/IP скорость обмена .Net Core от 21.02.2017 8:58

Изменено 21.02.2017 11:49 Слава

Re: TCP/IP скорость обмена .Net Core
Здравствуйте, Serginio1, Вы писали:

S>Делаю своего рода RPC. Интересует скорость обмена по TCP/IP


S> Сейчас сорость обмена составляет 2000 вызовов в секунду.

S>Но чувствую, что скорость может быть больше.
S>Клиент такой

У вас новый Accept вызывается только после обработки данных от предыдущего клиента. Вообще, приём новых соединений и их обработка должны происходить разных потоках.

Также, у вас используется конструкция:
var streamSize = br.ReadInt32();
var res = br.ReadBytes(streamSize);
var ms = new MemoryStream(res);
ms.Position = 0;
return new BinaryReader(ms);
...
var streamSize = br.ReadInt32();
var res = br.ReadBytes(streamSize);
var ms = new MemoryStream(res);
ms.Position = 0;


Нигде в ней не обрабатывается ситуация, если ReadBytes прочитал меньше, чем сказано, или просто отвалился по таймауту, из-за оборвавшегося соединения.
Re: TCP/IP скорость обмена .Net Core
Здравствуйте, Serginio1, Вы писали:

S>Делаю своего рода RPC. Интересует скорость обмена по TCP/IP


S> Сейчас сорость обмена составляет 2000 вызовов в секунду.

S>Но чувствую, что скорость может быть больше.
S>Клиент такой

У вас новый Accept вызывается только после обработки данных от предыдущего клиента. Вообще, приём новых соединений и их обработка должны происходить в разных потоках.

Также, у вас используется конструкция:
var streamSize = br.ReadInt32();
var res = br.ReadBytes(streamSize);
var ms = new MemoryStream(res);
ms.Position = 0;
return new BinaryReader(ms);
...
var streamSize = br.ReadInt32();
var res = br.ReadBytes(streamSize);
var ms = new MemoryStream(res);
ms.Position = 0;


Нигде в ней не обрабатывается ситуация, если ReadBytes прочитал меньше, чем сказано, или просто отвалился по таймауту, из-за оборвавшегося соединения.