快速全面的二进制序列化框架适用于Windows Phone 7。

3
我正在寻找一个快速的二进制序列化框架,用于我正在从Windows Mobile 6.5迁移的项目中在Windows Phone 7中使用。Protobuf-net在WM6.5中表现出色,但在WP7中仍然不够成熟,所以我想知道是否有人知道与此同时的好替代品。
我需要一个支持序列化各种类型的框架:自定义类型、自定义类型数组、自定义类型集合、内置类型、框架中可序列化的类型等。
我已经找到了几个,但它们并没有比DataContractSerialization快多少(但肯定更紧凑)。到目前为止,我尝试过:
Mike Talbot的Silverlight Serializer:http://whydoidoit.com/silverlight-serializer/ Silverlight的Alt Serializer:http://slserializelzo.codeplex.com/ Alt的性能更好,但是过度依赖反射,并且不像它的完整框架副本那样编译序列化程序,但两者都通过了我的第一个基本测试,包括相对复杂的类型。
还有其他我可以尝试的序列化框架吗?我将很乐意测量它们的性能并分享我的发现。

2
请查看此处的代码:https://dev59.com/CFPTa4cB1Zd3GeqPjXnp#4719774 - William Melani
2
同时请查看keyboardP在此处提供的解决方案:http://stackoverflow.com/questions/6627898/fastest-way-to-load-data 。其中包括了WP7序列化方法的比较测试。 - William Melani
谢谢。我之前不知道SharpSerializer。它通过了我的兼容性测试。它似乎非常全面,但速度也非常慢。对于我运行的测试(简单自定义类型的数组),它甚至比XmlSerializer还要慢。但输出非常小。我需要验证AltSerializer(似乎快3倍)是否能处理SharpSerializer示例中的复杂类型。 - cloudraven
3个回答

2
我通过使用泛型委托显著提高了SilverlightSerializer的性能,其性能类似于本机代码调用。 在我的测试工具中,性能提高了61%。 更多细节可以在这里查看。

1

Json.NET(http://json.codeplex.com)和Sterling Database(http://www.sterlingdatabase.com/)都是免费的,对编程非常有帮助。


1
Marc Garvell的protobuf-net,是Google协议缓冲区的.NET实现,非常快速。如果性能是首要考虑因素,我建议您去了解一下。

这是非常正确的。问题在于它在WP7上还没有完全实现。但是考虑到其他所有选项的性能,我正在考虑花些时间让它实现。 - cloudraven

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接