2009-10-03 63 views
2

是否有一个参考列出了通过网络(udp vs tcp/ip),磁盘,内存(顺序/随机访问)传输信息所需的时间(相对或绝对) ),进程中还是进程间等?应用程序体系结构考虑的等待时间数量级

最终我将不得不测量这些,但我会欣赏指针球公园数字。

内存vs磁盘不难找到,但我想为其余的数字找到我的方向。

回答

3

我还没有遇到过这样的事情,我想除了测试您的特定场景外,没有其他任何方法。 有太多的因素可以给出一致的答案: 你使用的是什么网卡,他们在做TCP校验和卸载,你的交换结构有多高性能,你使用的是什么磁盘,有多少缓存,你要传输多少数据,很多小数据包或几个大数据包等等等等。

当你在谈论RAM访问时间时,你现在说的是10-100ns,vs大概是4-8ms的harddrives。任何基准测试工具都会给你带来好的结果RAM &硬盘测量

UDP与TCP另一方面,你真的不能给出任何具体的数字。理论上UDP应该比TCP快30-50%,因为它缺少ACK的额外行程并且具有较小的头部开销,但是实际上在许多情况下TCP仅仅因拥塞控制而优于UDP。此外,与Nagle的TCP打开批量数据包,这再次不会公平的比较UDP不这样做。

总而言之,真正根据您的需求做自己的测试。即使在某人运行类似测试的某个地方出现了基准表,它们可能完全无效且不适用于您的应用程序&硬件堆栈

0

+1对于Tom - 这就是我要写的内容(不太清楚)在我看到他的回答之前。

另一个要考虑的是

  1. 延迟需要对带宽需要特定解决方案

  2. 的可扩展性。例如。

    • 难的是如何在网络速度(你需要更换网卡?布线?路由器?)对可能的规模大小升级(100Mb的与1GB)?

    • 升级磁盘速度与速度增加收益有多困难?

    例如,更快的磁盘,具有更大缓存的磁盘,前提是您的用例可以缓存数据,RAID或其他数据分条,本地存储与网络存储。

换句话说,今天您的情况可能表明确切的指标指向磁盘的最佳解决方案的所有的事情考虑,但是你可以通过10倍很少的磁盘性能,而你可以振振有词地与网络这样做,如果真的需要。