我目前正在使用二进制格式化程序(Remoting)来序列化和反序列化对象以便在我的LAN周围发送.
我最近从2.0升级到.NET 3.5.3.5有没有引入任何新类型来提高序列化性能?
我已经看过了DataContractSerializer
,但这会将任何内容序列化为基础XML ...这必须增加内存占用.
什么是在LAN上发送对象的最快串行器?我不关心互操作或版本控制...... 我需要速度!
我对第三方开源替代品持开放态度.
听起来像Protocol Buffers可能就是你想要的.
我知道有三种.NET实现:protobuf-net,protobuf-csharp-port和Proto#.
在性能比较表明,协议缓冲性能优于内置串行器在尺寸和序列化/反序列化速度方面.
我有一些基于Northwind数据集的领先.NET序列化程序的基准测试.
@marcgravell二进制protobuf-net是基准测试的最快实现,比BCL中可用的Microsoft最快串行器(XML DataContractSerializer)快约7倍.
微软的JsonDataContractSerializer非常慢 - 比protobuf-net慢9 倍,比我自己的JsonSerializer慢3.6倍.