Есть большая разница, чтобы отправить в службу WCF объект или список с одним объектом? - PullRequest
0 голосов
/ 20 марта 2012

Существует большая разница - если говорить о скорости передачи, сериализации объектов - отправлять в службу WCF объект или список с одним объектом?

Другими словами, если мне нужно передать 1k объектов или 1k списка, в котором есть только один объект.

Obs: Это сомнение касается кода, который я должен создать, если естьЯ создам два метода, один для отправки объекта, а другой для отправки списка (если есть много объектов для отправки).Но если нет, я создам только один метод, который отправляет список (который может иметь один или несколько объектов для отправки).

1 Ответ

1 голос
/ 20 марта 2012

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

Вот почему.Подумайте, что нужно для сериализации списка.Список на самом деле является не чем иным, как массивом, состоящим из нескольких объектов одного типа.Конечно, есть небольшая дополнительная работа, которую система должна сказать: «Эй, это список», а не только один объект, но это невероятно незначительно.Вы можете проверить это сами.Сумма невероятно мала.

Теперь вам нужно подумать о том, что вы делаете.Сериализация не проблема.Это в коде.Вы можете написать код для быстрой обработки одного объекта, но он может обрабатывать один и тот же код, скажем, 1000, 10000 и т. Д. Когда вы разрешаете передавать список и не устанавливаете верхний предел (скажем, выбрасывает исключение, не идеально,но это работает), вы открываете возможность того, что кто-то может передать действительно большой объем данных.Это где тайм-ауты в коде начинают иметь проблемы.Вы никогда не можете предположить, что кто-то передаст, скажем, список из 10 объектов, поэтому возникает вопрос: «Вы должны сделать его асинхронным?»Это намного больше работы, чтобы понять это правильно.Таким образом, вы должны спросить себя, стоит ли создавать второй метод для обработки больших объемов данных?Сериализация данных в .Net действительно очень хорошая.Да, существуют нестандартные решения, которые могут сделать это быстрее, но во многих случаях это меньше всего беспокоит вас.

...