Localhost работает лучше на окнах? - PullRequest
1 голос
/ 07 сентября 2010

У меня есть серверное приложение .NET 3.5, которое обычно имеет около 8 клиентов.Я использую System.Net.Sockets для всей сети.

Мне сказали, что если клиент работает на том же компьютере, он должен использовать localhost:<port> или 127.0.0.1:<port> вместо ip или ip машины.имя для лучшей производительности.Несколько человек на работе сказали, что это пропускает некоторые уровни стека tcp.

Но я не вижу никакой разницы в производительности при тестировании (время, необходимое для получения пакета ping с сервера)клиенту, использующему System.Diagnostics.Stopwatch).

В теории должна быть действительно лучшая производительность?

Ответы [ 2 ]

5 голосов
/ 07 сентября 2010

Нет , производительность одинакова в обоих случаях. Если вы используете IP-адрес локального устройства, ядро ​​вашей операционной системы не передает ваши пакеты данных на сетевое устройство, и эти данные нигде не отправляются, то у вас нет расчетов уровней ISO (инкапсуляция, декапсуляция и т. Д.). ).

Я полагаю, ОС увидит, что это локальное устройство, и вы относитесь к нему, как к 127.0.0.1. Так что на самом деле оба будут иметь одинаковый эффект.

1 голос
/ 07 сентября 2010

Полагаю, что при использовании 127.0.0.1 (возможно, я сомневаюсь), будет чрезвычайно незначительное повышение производительности, но с 8 клиентами вы никогда этого не заметите. Эта разница в производительности должна быть агрегирована по МНОГО трафика, чтобы вообще стать заметной.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...