WCF - какова самая быстрая привязка?
В настоящее время у меня есть служба WCF, которая использует привязку BasicHTTP и обернута защищенным маршрутизатором/брандмауэром (PFSense).
Я слышал, что существует более быстрая привязка, чем привязка к BasicHTTP, но теперь я знаю, что это такое.
Кто-нибудь знает?
Обновление: хорошо, два отличных ответа для интрасети /localhost. Спасибо!
Как насчет приложений, развернутых в Интернете? Есть ли более быстрое интернет-ориентированное решение?
Ответы
Ответ 1
Если ваше решение развернуто в интрасети, вы можете использовать NetTcpBinding.
http://msdn.microsoft.com/en-us/library/system.servicemodel.nettcpbinding.aspx
Хотя, возможно, не авторитарный, этот пост охватывает некоторые бенчмаркинга с этими результатами, которые согласуются с моим ответом и парапурой:
WSDualHttpBinding: Processed 1602 calls in 10 seconds
WSHttpBinding: Processed 2531 calls in 10 seconds
BasicHttpBinding: Processed 17913 calls in 10 seconds
NetTcpBinding: Processed 39957 calls in 10 seconds
NetNamedPipeBinding: Processed 48255 calls in 10 seconds
Ответ 2
На той же машине вы можете использовать NetNamedPipeBinding для максимальной производительности.
Решения для выбора транспорта
Пропускная способность измеряет объем данных, которые могут быть переданы и обработаны в течение определенного периода времени. Подобно задержке, выбранный транспорт может повлиять на пропускную способность для сервисных операций. Максимизация пропускной способности для транспорта требует минимизации как накладных расходов на передачу контента, так и минимизации времени, затраченного на ожидание обмена сообщениями. Транзиты TCP и именованных каналов добавляют небольшую часть служебных данных в тело сообщения и поддерживают собственную дуплексную форму, что уменьшает ожидание сообщений.