我有一个客户端服务器应用程序,它通过 TCP/IP 将 XML 从客户端发送到服务器,然后广播到其他客户端。我如何知道 XML 的最小大小可以通过压缩 XML 而不是通过常规流发送来保证性能改进。
有什么好的指标或例子吗?
Xml 通常压缩得很好,因为它往往有很多重复。
另一种选择是交换为二进制格式; BinaryFormatter 或 NetDataContractSerializer 是简单的选项,但与 xml 相比,两者都非常不兼容(例如与 java)。
另一种选择是可移植的二进制格式,例如谷歌的“协议缓冲区”。我维护了一个 .NET/C# 版本,称为protobuf网络 http://code.google.com/p/protobuf-net/。它被设计为与常规 .NET 方法(例如 XmlSerializer / DataContractSerializer)并行兼容,但比 xml 小得多,并且序列化和反序列化所需的处理(CPU 等)显着减少。
这一页 http://code.google.com/p/protobuf-net/wiki/Performance显示 XmlSerializer、DataContractSerializer 和 protobuf-net 的一些数字;我thought它包括有/没有压缩的统计数据,但它们似乎已经消失了......
[更新] 我应该说 - QuickStart 项目中有一个 TCP/IP 示例。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)