当前位置: 首页 > 编程语言 > C#

C#中内存占用最少的最快的序列化器和反序列化器?在C#中共享

时间:2023-04-10 11:55:24 C#

最快的序列化器和反序列化器,内存占用最少?我目前正在使用二进制格式化程序(Remoting)来序列化和反序列化对象以在我的LAN中发送。我最近从2.0升级到.NET3.5。3.5是否引入了任何新类型来提高序列化性能?我查看了DataContractSerializer,但它会将任何内容序列化为底层XML...这必然会增加内存占用。通过LAN发送对象最快的序列化程序是什么?我不关心互操作或版本控制......我需要速度!我对第三方开源替代品持开放态度。听起来ProtocolBuffers可能就是您要找的东西。我知道三种.NET实现:protobuf-net、protobuf-csharp-port和Proto#。性能比较表明,ProtocolBuffers在大小和序列化/反序列化速度方面都优于内置序列化器。我有一些基于Northwind数据集的领先.NET序列化程序的基准测试。@marcgravellbinaryprotobuf-net是最快的基准实现,比BCL中可用的Microsoft最快的序列化程序(XMLDataContractSerializer)快7倍。微软的JsonDataContractSerializer非常慢——比protobuf-net慢9倍,比我自己的JsonSerializer慢3.6倍。在@Luke链接的性能比较中,请注意DataContractJsonSerializer与其他MS序列化程序相比表现非常好。鉴于JSON无处不在,以及您可以轻松使用DataContractJsonSerializer,我认为没有太多理由使用“协议缓冲区”。JSON在语言和平台之间跳动时会更容易调试,而且压缩起来会很漂亮。(我喜欢Google采用CS101概念并以实现它们而闻名。在C中,我们称它们为“协议缓冲区”“结构”。它们运行良好。)正如我在这个答案中所展示的那样,生成的代码可能是最快的序列化程序.然而,它还处于早期阶段,仍然缺乏其他序列化程序提供的一些功能。C#学习教程就是这些:FastestserializeranddeserializerwithlowestmemoryfootprintinC#?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: