Самая быстрая форма загрузки с использованием сокетов - PullRequest
0 голосов
/ 02 января 2011

Привет, у меня есть клиент-серверное приложение TCP / IP.Я хочу отправить большой сериализованный объект около 1 МБ через сокеты.Можно ли повысить производительность, разбив байтовый массив, например, на 10 кусков массивов, открыв сокет для каждого и отправив им Async по сравнению с открытием одного сокета и отправкой через него всех больших данных?*

Ответы [ 2 ]

4 голосов
/ 02 января 2011

Разделение данных на меньшее, чем MTU, приведет к увеличению издержек, поскольку будет больше пакетов - это на самом деле замедлит работу. То, что вы предлагаете, уже выполняется как часть протокола, то есть разбиение и повторная сборка. Я бы экспериментировал с отправкой меньшего количества данных, например сжатие.

2 голосов
/ 02 января 2011

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

Убедитесь, что ваш код сокетов эффективен, потому что неправильный буфер и, следовательно, размеры пакетов, синхронная работаи другие вещи могут замедлить передачу.

...