したどのバッファを使うのかを指定します。全体を知りたい方はGitHubのコードを読んで下さい。ベンチマークこれを走らせてみます。uring’と呼びましょうか。1917わずかにstdよりも速く見えますが、測定でそこそこバラつきがあったので多分有意な差はないです。少なくとも工夫のないio_uringよりは速いことだけは分かります。コマンドによると相変わらずCPU使用率が低いようです。0swapsstdと実時間では変わらないけどsystemのCPU使用時間と全体のCPU使用率が低いのは気になりますね。私にはこれ以上深く追求するための知識が足りないのでここまでとします。perfの結果なんかも微妙に違ってたんですが解釈できないデータを貼っても意味がないので気になった方は手元で走らせてみて下さい。同様の処理をしてもRustのコードより遅いのでそういうもんなのかもしれません。そこまでパフォーマンスを気にして書かれてるか分かりませんが。APIの雑な紹介とそれをRustから叩くコード3種を紹介しました。io_uringで処理を高速化する目論みでしたが失敗しました。考えたらどのみちOSのバッファに載って処理されるのでio_uringあんまり関係なかったのではという説もあります。やるんなら高速化ではなくマルチタスクの方がよかったかもしれませんね。5を組んだファイルシステムで、ちょっとパフォーマンス特性に癖があったのかもしれません。調べたらbtrfsはジャーナリングする関係でシーケンシャルアクセスに弱いとかSSDはブロック単位で操作するからどうこうとか色々出てくるのですが、こういうのはfolkloreとかも多くてどこまで信じていいのか分からないので追求しないことにしました。さんとかが解説してくれないかな...。因みにカーネルのバージョンは5.8.0-41です。再掲になりますが今回のコードはこちらです。KeenS/io-uring-write-file何回か走らせて平均と分散とんないと何も議論できなくない?とかファイルキャッシュどうなってるの?とか色々気になるかと思います。いう方は手元で走らせて実験してみて下さい。最後に、参考にした資料を貼っておきます。Rust締まりのない記事になりましたが参考になる方がいれば幸いです。