Быстрая и всеобъемлющая структура двоичной сериализации для Windows Phone 7

Я ищу быструю структуру двоичной сериализации для использования в Windows Phone 7 для проекта, который я переношу с Windows Mobile 6.5. Protobuf-net отлично работает в WM6.5, но в WP7 еще далеко до прайм-тайма, поэтому мне было интересно если кто-нибудь знает хорошую альтернативу в то же время.

Мне нужен фреймворк, который поддерживает сериализацию широкого спектра типов: пользовательские типы, массивы пользовательских типов, коллекции пользовательских типов, встроенные типы, сериализуемые типы в фреймворке и т. д.

Я нашел пару, но они не намного быстрее, чем DataContractSerialization (но определенно более компактны). Я пробовал до сих пор:

Сериализатор Silverlight Майка Талбота: http://whydoidoit.com/silverlight-serializer/

Альтернативный сериализатор для Silverlight: http://slserializelzo.codeplex.com/

Производительность Alt лучше, но он в значительной степени полагается на отражение и не компилирует сериализаторы, как его полноценный аналог, но оба они прошли мои первые базовые тесты с относительно сложными типами.

Есть ли другая структура сериализации, которую я мог бы попробовать? Я буду рад измерить их производительность и поделиться своими выводами.


person cloudraven    schedule 08.07.2011    source источник
comment
Проверьте здесь stackoverflow.com/questions/4717389/   -  person William Melani    schedule 09.07.2011
comment
И проверьте решение keyboardP здесь: stackoverflow.com/questions/6627898 /самый быстрый способ загрузки данных . Он ссылается на сравнение методов сериализации в WP7, включая тесты.   -  person William Melani    schedule 09.07.2011
comment
Спасибо. Я не знал о SharpSerializer. Он прошел мой первый тест на совместимость. Это кажется очень всеобъемлющим, но очень медленным. Для теста, который я провел (массивы простых пользовательских типов), он был даже медленнее, чем XmlSerializer. Однако он имеет удивительно малый выход. Мне нужно проверить, может ли AltSerializer (который работает в 3 раза быстрее) обрабатывать сложные типы в примерах SharpSerializer.   -  person cloudraven    schedule 09.07.2011


Ответы (3)


Я значительно улучшил производительность SilverlightSerializer, используя универсальные делегаты, которые обеспечивают производительность, подобную вызову собственного кода. Повышение производительности на 61% на моем тестовом комплекте. Подробнее здесь.

person Mike Talbot    schedule 05.08.2011

Большой плюс как для Json.NET (http://json.codeplex.com), так и для базы данных Sterling (http://www.sterlingdatabase.com/). Оба бесплатны.

person Shawn Wildermuth    schedule 11.07.2011

protobuf-net Марка Гарвелла, .NET-реализация буферов протокола Google, работает очень быстро. . Я бы порекомендовал проверить это, если производительность является приоритетом.

person Richard Szalay    schedule 11.07.2011
comment
Это очень верно. Проблема в том, что это пока не совсем работает в WP7. Но на самом деле, учитывая производительность всех других вариантов, я думаю, что потребуется некоторое время, чтобы заставить его работать. - person cloudraven; 11.07.2011