WCF - SOAP или JSON - PullRequest
       2

WCF - SOAP или JSON

1 голос
/ 06 апреля 2011

Есть ли какие-либо преимущества в производительности при использовании JSON по сравнению с SOAP для кодирования сообщений при работе с WCF?

Спасибо

Ответы [ 2 ]

2 голосов
/ 06 апреля 2011

JSON лучше, чем SOAP.JSON имеет меньше форматной информации, чем SOAP.

SOAP передает на 20-40% больше данных, чем JSON, но (в WCF) он примерно на 20-25% быстрее, чем JSON.См. Сравнение производительности: SOAP против JSON (реализация WCF)

1 голос
/ 16 апреля 2011

Я категорически не согласен - WCF JSON обычно медленнее, чем WCF SOAP Binary. Размер провода - это всего лишь один из компонентов эффективности сериализации и десериализации. Другим важным компонентом является время обработки.

Внутренне DataContractJsonSerializer отображает пары имя / значение JSON в инфо-набор XML. Фактически, DataContractJsonSerializer построен поверх XML-DataContractSerializer и обрабатывает каждый вход JSON и вывод JSON, как если бы он имел дело с XML. Существует более высокий уровень абстракции (пишущий JSON и читатель JSON, предоставляемый через JsonReaderWriterFactory), который фактически переводит этот XML в JSON, а JSON обратно во внутренний XML.

Все эти дополнительные переводы между информационными наборами XML и JSON складываются. Не обманывайтесь только размерами. Посмотрите этот превосходный обзор (Отображение между JSON и XML) , чтобы увидеть, что происходит с DataContractJsonSerializer внутри и как это происходит.

Теперь вполне может оказаться, что в вашем сценарии JSON действительно быстрее, чем WCF. Но это может быть результатом конкретных типов данных, которые вы используете, и конкретных сценариев, в которых вы вызываете эти типы данных. Вы ДОЛЖНЫ измерить свои собственные наборы данных - не читайте случайных советов в Интернете по поводу перфектов, в том числе и мой. Доверьтесь своим номерам!

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