1

我有一个从标准输入读取的 C 程序。我将在 linux 上使用 dd 命令测试我的程序到 2GB 的数据(4KB 的读取缓冲区)。

我在 3.20GHz 机器上获得了 565MB/s。我在 300MHz 机器上变小了。有什么技巧可以最大限度地提高输入速度。我已经阅读了一些 proc 条目,但可以获得任何帮助。(我可以最大化内核 io 缓冲区大小以提高速度吗?)。请尽快回复。

该领域的初学者。

4

2 回答 2

1

如果你的 2GB 输入在磁盘上是连续的块,你可以尝试fadvise为内核设置。这将使 Linux 内核的预取窗口更大。

请注意,只有在访问硬盘驱动器成为瓶颈时,这才会有所帮助。

于 2012-07-09T09:58:58.337 回答
0

Increasing your read buffer (currently at 4K) will help speed things up. There is no other relevant tunable that can consistently help you. Reducing context-switches and larger batching of work should be your key method.

于 2012-07-10T11:12:31.190 回答