Двоичный Silverlight / более быстрая сериализация - PullRequest
1 голос
/ 07 сентября 2010

В настоящее время мы используем Silverlight 4 со службами WCF и пытаемся считывать большие массивы объектов пользователей из службы. В нашем коде генерация 700 объектов, упорядоченных по иерархии (много циклов), занимает около 0,5 (и менее) секунд.

И Silverlight / WCF для передачи этих данных требуется около 4-5 секунд - на локальном хосте.

Я измерил время в своем коде / вызове службы, использовал Fiddler для просмотра данных (5 МБ!), И когда я попытался передать упрощенный объект с простыми атрибутами (вместо вложенных списков и т. Д.), Потребовалось гораздо меньше объем данных и был очень быстро, как секунда.

Я прочитал много статей на эту тему - нет простого способа, лучший способ найти возвращение byte [] из метода WCF (и иметь типы в отдельной сборке) или сериализаторы с высокой степенью ручного действия (например, protobuf). требующие записи пользовательских атрибутов и т. д.

ОК, я попробовал это. Protobuf-net чрезвычайно сложен (добавление чисел к 200 существующим классам неинтересно), v2 еще не здесь, а binaryMessageEncoding уменьшил загрузку данных с 5,5 МБ до 4,5 МБ, не слишком много.

Но, я не могу поверить, есть ли готовое решение WCF / Silverlight для потоковой передачи больших объемов данных? Разве это не должна быть хорошая современная технология для корпоративных решений?

Как я могу сказать Silverlight / WCF, что поток данных будет быстрее и меньше, а не 5 МБ за 5 секунд? Могу я просто сказать в конфиге: «использовать маленький и быстрый сериализатор»?

Ответы [ 2 ]

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

Я обнаружил, что пакет SharpSerializer очень прост в использовании для быстрой двоичной серизации в Silverlight: http://www.sharpserializer.com/en/index.html. Результирующий размер сериализованных данных намного меньше, чем при использовании сериализатора DataContract или других текстовых сериализаторов.

0 голосов
/ 09 сентября 2010

Включено ли в IIS сжатие. Это, однако, повлияет на процессор, и вам может понадобиться перепроверить, соблюдает ли Silverlight заголовок deflate http?

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