architecture - 应用架构考虑因素的延迟数量级

标签 architecture latency

是否有引用资料列出了通过网络(udp 与 tcp/ip)、磁盘、内存(顺序/随机访问)、进程内与进程间传输信息大约需要多长时间(相对或绝对)流程等?

最终我必须测量这些,但我会很感激能提供大概数字的指示。

内存与磁盘的比较并不难找到,但我想了解其余数字的方位。

最佳答案

我还没有遇到过类似的情况,我认为除了测试您的特定场景之外,没有其他方法了。 涉及的因素太多,无法给出一致的答案: 例如您使用什么网卡,它们是否进行 TCP 校验和卸载,您的交换结构的性能如何,您使用什么磁盘,它们有多少缓存,您传输多少数据,大量小数据包还是一些大数据包等等等等

当您谈论 RAM 访问时间时,您现在谈论的是 10-100ns,而硬盘驱动器的访问时间可能约为 4-8ms。任何基准测试工具都应该为您提供 RAM 和硬盘测量的良好结果

另一方面,UDP 与 TCP 相比,您确实无法给出任何具体数字。理论上,UDP 应该比 TCP 快 30-50%,因为它缺少 ACK 的额外行程并且具有较小的 header 开销,但实际上,在很多情况下,TCP 仅仅因为拥塞控制而优于 UDP。此外,带有 Nagle 的 TCP 打开了批量数据包,这与不这样做的 UDP 相比又不公平。

总而言之,真正根据自己的需求去做自己的测试。即使周围有运行类似测试的人的基准表,它们也可能对您的应用程序和硬件堆栈完全无效且不可重现

关于architecture - 应用架构考虑因素的延迟数量级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1513726/

相关文章:

design-patterns - 应用扼杀器模式的经验和想法

SDL 中具有显着延迟的视频更新

java - 这个模拟器的最佳架构是什么?

swift - 闭包与从函数返回值/对象

sql-server - 数据老化技术

rest - Erlang/OTP架构: RESTful protocol for SOAish services

php - 改善网络延迟 - 在线游戏网站

bluetooth - 蓝牙 MIDI

performance - Joomla html 页面加载时间慢(不是js、图像、css)

sql - azure web应用程序和azure sql数据库之间的高延迟