如何testingSocket的速度?

我写了一个可以在2台服务器之间转发ip包的程序,那么如何testing程序的速度呢? 谢谢!

看看iperf。 你可以找到它在http://sourceforge.net/projects/iperf/如果你谷歌周围你会找到它的教程。 你可以看看来源,也可以得到一些好的想法。 我使用它进行例行测试,它非常强大

您的潜在用户可能会感兴趣的是一些沟通指标。

延迟是发送消息的时间量,通常以微秒为单位对同位设备进行报价,对于所有其他情况则以毫秒为单位。 它通常被引用为“零字节延迟”,意思是传输消息的元数据所需的时间。 越低越好。

带宽是以每秒位数来衡量的。 它通常被称为“峰值带宽”,可以通过在线发送大量的数据来获得。 越高越好。

CPU使用率是传输消息所需的CPU时间百分比。 可以卸载消息传输的网络协议利用率低,这意味着通信可以在用户的​​应用程序中“重叠”一些其他计算,这具有隐藏延迟的效果。 越低越好。

所有这些都是通过ping测试的变化来衡量的,通常称为“乒乓”:

Node 1: for n = 1 to MAXSIZE, step via n*=2 send message of size n bytes receive a response of size n bytes Node 2: for n = 1 to MAXSIZE, step via n*=2 receive a message of size n bytes send response of size n bytes 

还有一个“ping-ping”测试,其中两个节点同时写入对方。 这需要非阻塞通信来建立。

只需输出n和每次迭代所需的时间。 第一次是零字节延迟。 最大的可持续 n/time是带宽(转换为每秒比特数为行业标准)。 您还可以测量运行更大迭代所需的CPU利用率,但对于完全不同的问题来说,这是一个棘手的主题。