gpt4 book ai didi

c# - 我应该使用 XML 还是二进制从服务器向客户端发送数据?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:00:59 25 4
gpt4 key购买 nike

我有两个独立的应用程序 - 一个客户端(C#),一个服务器(C++)。他们需要以“结构”的形式交换数据,每分钟约有 1 MB 的数据从服务器发送到客户端。

哪个更好用 - XML 还是我自己的二进制格式?

使用 XML:

  • 我相信使用解析器将 XML 转换为结构会很慢吗? (“好”,但是:加载解析器,加载 XML,解析)
  • 另一种选择是使用正则表达式解析 XML(糟糕!)

使用二进制:

  • 紧凑的数据大小
  • 不需要标签等元信息;
  • 但结构不能轻易更改以适应 future 结构中的新结构/新成员;
  • 不需要从文本(XML)到二进制(结构)的转换,因此可以更快地接收和“组装”成结构)

有什么指点吗?我根本不应该考虑二进制吗?对于采用什么方法有点困惑。

最佳答案

如果您有合理的网络连接,每分钟 1MB 的数据是非常小的。

二进制和 XML 之间还有其他选择 - 其他人类可读的文本序列化格式,例如 JSON。

当谈到二进制时,您不必有版本控制问题 - 像 Protocol Buffers 这样的技术(我有偏见:我在谷歌工作,我有 ported PB to C# )在设计时明确考虑了向后和向前的兼容性。还有其他二进制格式需要考虑,例如 Thrift .

不过,如果您担心性能,您应该真正测量它。我很确定我的手机可以足够快地解析 1MB 的 XML,因此在这种情况下不会成为问题……基本上可以根据以下方面找出您最关心的问题:

  • 代码简单
  • 互操作性
  • CPU 方面的性能
  • 网络流量
  • 向后/向前兼容性
  • 在线格式的人类可读性

这都是一种平衡行为 - 但您必须决定为每个因素赋予多少权重。

关于c# - 我应该使用 XML 还是二进制从服务器向客户端发送数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2183119/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com