В контексте комментария:
netTcpBinding
был признан одним из более быстрых вариантов - безусловно, намного быстрее, чем пробная привязка vanilla BasicHttpBinding / WS. Это единственная реальная необходимость, так как netTcpBinding использовал двоичный код по сравнению с прямым текстом, это было быстрее.
Во-первых, я смотрел на это много, много раз - и, как ни странно, каждый раз, когда я проверял это, NetTcpBinding
совершенно не мог быть быстрее, чем базовый xml предложение. Однако, так как ваша цель - производительность, у меня есть варианты ...
Я немного пристрастен (так как я написал это), но я настоятельно рекомендую здесь "protobuf-net"; так как он разработан по тем же идиомам, что и большинство сериализаторов .NET, его легко заменить, но он быстрее (ЦП) и меньше (bandwitdh) в каждом тесте, который я для этого делаю - или проверяет, что другие люди сделать . А поскольку формат protobuf является открытой спецификацией, вам не нужно беспокоиться о том, что привязки «Net» не могут взаимодействовать.
Для MS .NET у меня есть прямые перехватчики WCF, которые можно использовать исключительно из конфигурации , что делает его быстрым. Честно говоря, я не знаю, насколько хорошо это будет работать с аналогом Mono - я не пробовал. Он может работать, но если нет, другой вариант - просто выбросить byte[]
или Stream
по сети и беспокоиться о (де) сериализации вручную.
Мой предпочтительный макет здесь - это привязка basic-http с включенным MTOM, что дает вам простоту и переносимость простейшей привязки xml без дополнительных затрат base-64 для двоичных данных.