2012-01-29 74 views
2

我正在编写一个简单的I/O类以便在多人游戏中使用。其实一切正常,但我试图找到一种方法来优化它的整体性能和数据包大小。 该课程是here优化套接字节数据

此外,前几天我发现this类,并看到它直接在位上工作。这样做会更好地提高我的课程吗?

感谢和抱歉的英文不好。我使用的是TCP,而数据包布局是头部(单字节),后面是熵数据(字符串,Int16,Int32,Int64,字节和字节数组)。 数据包最大大小为4kb。

+2

你真的想优化什么?潜伏?总带宽?客户端处理?服务器端处理? – 2012-01-29 13:41:54

+0

延迟减少。 – Archer 2012-01-29 13:49:06

+1

答案很可能取决于消息协议的细节。为了能够帮助您,我们需要了解特定的域(数据类型,最小/最大长度,有效值等)和消息布局。 – 2012-01-29 14:03:41

回答

0

和分组布局是

  • 头(单字节)
  • 字符串
  • 的Int16
  • 的Int32
  • 的Int64
  • 字节
  • 字节数组

如果您无法缩小任何字段的大小,则无法优化该程序包。

4kb数据大致为32kbit/s,这意味着您可以在10mbit/s连接上每秒发送一个包到大约300个客户端。你是否说你每秒需要处理更多的客户?

优化应用程序的最佳方式可能是使用缓冲池,而不是为每个要发送的数据包创建一个新缓冲区。

和往常一样:不要优化,直到你真的需要它,因为你可能不得不牺牲可读性。