我有一个从stdin读取的C程序。我将使用dd命令在linux上测试我的程序到2GB数据(4KB读取缓冲区)。
我在3.20GHz机器上得到565MB / s。我在300MHz的机器上得分较小。是否有任何技巧可以最大化输入速度。我已经阅读了一些proc条目,但可以得到任何帮助。 (是否可以最大化内核io缓冲区大小以提高速度?) 请尽快回复。
这个领域的初学者。
答案 0 :(得分:1)
如果您的2GB输入在磁盘上是连续块,您可以尝试为内核设置fadvise
。这将使Linux内核的预取窗口更大。
请注意,只有在访问硬盘时才会有所帮助。
答案 1 :(得分:0)
增加读缓冲区(目前为4K)将有助于加快速度。没有其他相关的可调参数可以始终如一地帮助您。减少上下文切换和更大批量的工作应该是您的关键方法。