修订版 2:重新设计更少的连接

在此修订版中,示例应用程序经过重新设计,以消除不必要的连接。

警告

此应用程序示例还提供了有意降低的性能,以便说明通过更改代码可以改进性能。 请勿在应用程序中使用此代码示例;它仅用于演示目的。

 

ComputeNext( Map );
bind( s, ... );
connect( s, ... );
for(int i=0 ; i < ROWS ; ++i)
  for(int j=0 ; j < COLS ; ++j)
  {
    BYTE tmp[3];
    tmp[0] = i;
    tmp[1] = j;
    tmp[2] = Map[i][j];
    send( s, tmp, 3 );
    recv( s, &byRet, 1 );
  }
closesocket( s );

剩余问题

修订版 2 中的更改重新设计了应用程序,使每个更新仅连接一次。 应用程序仍包含以下性能问题:

  • 应用程序仍处于序列化和无聊。
  • 应用程序仍具有胖设计;有许多发送在此设计中不需要任何操作。
  • 发送仍然只有 3 个字节,这是糟糕的流式处理。

关键性能指标

以下性能指标以往返时间 (RTT) 、良好输出和协议开销表示。 有关这些术语的说明,请参阅 网络术语 主题。

此版本反映以下性能指标:

  • 单元格时间 — 1*RTT
  • Goodput — 4 个字节/RTT
  • 协议开销 — 96.8%

改进慢速应用程序

网络术语

基线版本:性能非常差的应用程序

修订版 1:清理明显

修订版 3:压缩块发送

未来改进