Rog*_*een 7 .net c# serialization
这适用于小型有效载荷.
我期待每100毫秒达到1,000,000,000.
标准的BinaryFormatter非常慢.DataContractSerializer比BinaryFormatter慢.
对于小对象,协议缓冲区(http://code.google.com/p/protobuf-net/)似乎比BinaryFormatter慢!
是否有更多的序列化机制应该关注硬核编码或开源项目?
编辑: 我在内存中序列化然后在异步套接字上通过tcp传输有效负载.在内存中生成的有效负载是具有ulong标识符的小型双数组(10到500个点).
我已经预计Protobuf-net即使对于小对象也会更快......但你也可能想尝试我的协议缓冲端口.我有一段时间没有使用过Marc的端口 - 当我上次进行基准测试时,我的速度更快了,但是我知道他从那时起经历了一次完全重写:)
无论你做什么,我都怀疑你会在100毫秒内完成10亿个项目的序列化......我认为这只是一个不合理的期望,特别是如果这是写入磁盘的话.(显然,如果你只是重复覆盖相同的内存,你会获得比串行化到磁盘更好的性能,但我怀疑这是你真正要做的.)
如果您能给我们更多的背景信息,我们可以提供更多帮助.例如,您是否能够将负载分散到多台机器上?(多个内核序列化到同一IO设备不太可能有所帮助,因为如果它写入磁盘或网络,我不希望这是一个CPU绑定操作.)
编辑:假设每个对象是10个双精度数(每个8个字节),带有ulong标识符(4个字节).这至少是每个对象84个字节.所以你试图在100ms内序列化8.4GB.无论你用什么,我真的不认为这是可以实现的.
我现在正在运行我的Protocol Buffers基准测试(它们每秒都会对字节序列化)但我非常怀疑它们会给你你想要的东西.
| 归档时间: |
|
| 查看次数: |
10478 次 |
| 最近记录: |