我有一个从标准输入读取的 C 程序。我将在 linux 上使用 dd 命令测试我的程序到 2GB 的数据(4KB 的读取缓冲区)。
我在 3.20GHz 机器上获得了 565MB/s。我在 300MHz 机器上变小了。有什么技巧可以最大限度地提高输入速度。我已经阅读了一些 proc 条目,但可以获得任何帮助。(我可以最大化内核 io 缓冲区大小以提高速度吗?)。请尽快回复。
该领域的初学者。
我有一个从标准输入读取的 C 程序。我将在 linux 上使用 dd 命令测试我的程序到 2GB 的数据(4KB 的读取缓冲区)。
我在 3.20GHz 机器上获得了 565MB/s。我在 300MHz 机器上变小了。有什么技巧可以最大限度地提高输入速度。我已经阅读了一些 proc 条目,但可以获得任何帮助。(我可以最大化内核 io 缓冲区大小以提高速度吗?)。请尽快回复。
该领域的初学者。
如果你的 2GB 输入在磁盘上是连续的块,你可以尝试fadvise
为内核设置。这将使 Linux 内核的预取窗口更大。
请注意,只有在访问硬盘驱动器成为瓶颈时,这才会有所帮助。
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.