【问题标题】:Network Efficiency: Send a String or a Integer?网络效率:发送字符串还是整数?
【发布时间】:2023-04-08 06:16:01
【问题描述】:

假设我想通过网络向我的客户发送号码 1, 如果我使用字符串而不是 32 位整数会更好吗?

由于我只有 1 个要发送的字符,这意味着如果我要使用字符串,我将通过网络发送 1 个字节,对吗?

如果我为此使用 32 位整数,这意味着我正在通过网络发送 4 个字节的数据,对吗?

如有错误请指正

【问题讨论】:

  • 如果您的号码始终适合 1 个字符,为什么不将其作为字节发送?
  • 对不起,我要发送的数据并不总是 1 个字符
  • 在这种情况下,二进制通常比字符串更紧凑来表示整数(只要它们有超过 4 个数字)
  • 我不禁认为这是一个微优化。通过网络发送 any 字节(无论是 1 还是 4)的开销和延迟是巨大的。我能想象到的唯一有用的场景是,如果您谈论的是一次存储或传输数百万或更多这样的数字。
  • 我现在正在写一个游戏服务器,它可以同时承载数千个客户端,我想尽可能地压缩性能,这个优化真的那么微不足道吗?

标签: c# string sockets networking integer


【解决方案1】:

如果我使用字符串,这意味着我通过网络发送 1 个字节,对吗?

如果您将其编码为没有终止和长度信息的 ASCII,则可以。

特别是如果您设法神奇地避免了网络开销。 1号依然是TCP包,依然是以太网包。

【讨论】:

    猜你喜欢
    • 2015-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-20
    • 2017-03-02
    相关资源
    最近更新 更多