gpt4 book ai didi

c# - 在 .NET 中通过线路移动对象时哪种方法最有效?

转载 作者:可可西里 更新时间:2023-11-01 07:45:03 26 4
gpt4 key购买 nike

我一直在使用 Web 服务通过网络传输数据,这对我来说非常有用。它擅长发送小块数据。一旦您必须移动具有大量属性的深层对象树,生成的 XML 汤就需要 100k 数据并将其变成 1MB。

所以我试过了 IIS Compression ,但这让我不知所措。它很好地压缩了数据,但折衷是压缩/解压缩。然后我通过 BinaryFormatter 序列化对象并将其发送出去。这更好,但是,编码/解码的速度仍然存在。

无论如何,我听说我还停留在 00 年代,现在有更好的方式通过网络发送数据,例如 ProtocolBuffers、MessagePack 等...

谁能告诉我这些新协议(protocol)是否更适合发送大量数据以及我是否缺少其他一些有效的方法来做到这一点?

高效是指带宽量、编码/解码速度、执行速度等...

最佳答案

这取决于构成大部分数据的内容。如果您只有很多对象和几个字段,并且真正“扩展”它们的是 cruft,那么 Protocol Buffer 等其他格式可以产生巨大的不同。我没有使用过 MessagePack 或 Thrift,但我希望它们的大小增益大致相似。

在编码和解码速度方面,我相信两者Marc Gravell's implementation of Protocol Buffersmy own将胜过任何内置的序列化方案。

关于c# - 在 .NET 中通过线路移动对象时哪种方法最有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6497705/

26 4 0
文章推荐: c# - 使用条件运算符时没有隐式转换
文章推荐: java - ArrayList 中的不兼容类型错误