performance - 估计处理器频率如何影响 I/O 性能

标签 performance language-agnostic network-programming io low-level

我正在研究 专用 I/O 软件 那将在消费硬件上运行。从本质上讲,它归结为保存大量数据流以供以后处理。现在我正在寻找一个模型来估计 上的性能因素x86 .

以新Macbook Pro为例:

high-speed Thunderbolt I/O (input/output) technology delivers an amazing 10 gigabits per second of transfer speeds in both directions


1.25 GB/s听起来不错,但当今大多数处理器的时钟都在 2 Ghz 左右.只要每个网络 channel 只能分配一个内核,多核就没有什么区别。

因此,即使该软件充当微型操作系统并将自身限制为网络/磁盘操作,流向存储的数据量也不能大于 P / (2 * N) [1] 块每秒。虽然这暗示了粗略的性能限制,但我觉得这还远远不够。

关于处理器频率和其他硬件细节,估计 I/O 性能还应考虑哪些其他因素? 为简单起见,这里假设存储在所有情况下都立即执行。

[1] 电话 - 处理器频率; 电话 - 算法开销

最佳答案

硬件限制因素可能是 I/O 总线性能,比如 PCIe ,以及最近的 FSB时钟速率,因为内存 Controller 正在从 northbridge 移动到 CPUs themselves .

然后,当然,您必须弄清楚您需要对输入进行什么样的处理,以及产生输出需要多少工作。这些,至少对于在 CPU 上运行的传统软件而言,取决于处理器时钟,但不仅如此。编写代码以利用缓存、指令级并行等硬件设施仍然是一门黑艺术,但可以为您带来一个数量级的性能提升。

基本上,我要咆哮的是,并非所有软件都是平等的,您可能希望考虑到这一点。

关于performance - 估计处理器频率如何影响 I/O 性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6996966/

相关文章:

python - 填充列表与字典时的性能注意事项

performance - 优化elasticsearch/JVM

math - 用于数学解析的基于堆栈的表达式评估的效率

design-patterns - 重构多个 "if"语句

实时模拟二维容器中某些液体的算法

java - 在 Java 中更改本地机器 IP

c - 使用 MinGW C 的 Windows QueryPerformanceCounter

javascript - 当我们可以抛出 TypeErrors 时,为什么我们需要 NaN 值?

linux - SNMP :snmpwalk response from NAS timeout issue

c - 如何找出IEEE802.11 Frame中封装的协议(protocol)?