NamedPipe против TCP / IP в небольших данных - PullRequest
4 голосов
/ 31 декабря 2010

ПриветПравда ли, что если мы передаем небольшие данные взад и вперед клиенту / серверу, издержки tcp / ip незначительны и производительность такая же, как у NamedPipe на той же машине?

1 Ответ

5 голосов
/ 01 января 2011

Я бы сказал, что это не столько количество данных , сколько количество запросов .Другими словами, если у вас есть 100 000 соединений, которые передают 100 байтов данных, вы будете иметь больше накладных расходов tcp / ip, чем если бы у вас было 10 соединений по 100 КБ каждое.

Это не значит, что нетЭто связано с передачей данных через TCP / IP по сравнению с именованными каналами.Есть.Но обычно я бы сказал, что решение о том, какой из них вы собираетесь использовать, больше связано с архитектурой вашей системы, чем заботой о накладных расходах.

Если вы собираетесь передавать данные между физическими серверами, вы должны пойти с tcp / ip;именованные каналы не вариант.Если вы передаете данные между процессами на одном и том же сервере, именованные каналы, несомненно, будут более эффективными.

Одна из причин, по которой вы можете использовать tcp / ip, когда вы находитесь на том же физическом сервере, - это вероятность того, что в будущем вы сможете разбить процессы на физические серверы.

Чтобы ответить на ваш вопрос: если вы не передаете много данных и не делаете это часто, вы, вероятно, не будете замечать издержки tcp / ip, когда две конечные точки находятся на одной и той же точке.физическая машина.

HTH,Джеймс

...