1

stdinから読んでいるCプログラムがあります。そして、Linuxでddコマンドを使用して(4KBの読み取りバッファー)で2GBのデータに対してプログラムをテストします。

3.20GHzのマシンで565MB/秒を取得しました。300MHzのマシンでは少なくなりました。入力速度を最大化するためのトリックはありますか?私はいくつかのprocエントリを読みましたが、助けを得ることができます。(速度を上げるためにカーネルIOバッファサイズを最大化できるものですか?)できるだけ早く返信してください。

この分野の初心者。

4

2 に答える 2

1

2GBの入力がディスク上の連続したブロックにある場合はfadvise、カーネルのを設定してみてください。これにより、Linuxカーネルのプリフェッチウィンドウが大きくなります。

これは、ハードドライブへのアクセスがボトルネックである場合にのみ役立つことに注意してください。

于 2012-07-09T09:58:58.337 に答える
0

読み取りバッファーを増やすと(現在は4K)、処理速度が向上します。一貫してあなたを助けることができる他の関連する調整可能なものはありません。コンテキストスイッチを減らし、作業のバッチ処理を増やすことが重要な方法です。

于 2012-07-10T11:12:31.190 に答える