3

Linuxでは、ファイルをバイト配列に読み込む/バイトを処理する最速の方法は何ですか? これには、メモリ マッピング、システム コールなどが含まれる可能性があります。Linux 固有の多くの機能に詳しくありません。

以前はブースト メモリ マッピングを使用していましたが、移植性よりも高速な Linux 固有のパフォーマンスが必要です。

4

2 に答える 2

2

メモリ マッピングのような怠惰なものにだまされないようにしてください。それよりも、本当に必要なものに焦点を合わせてください。ファイル全体をメモリに読み込む必要がありますか? 次に、ファイルを開き、ループでチャンクを読み取り、ファイルを閉じる簡単な方法は、可能な限り高速になります。

しかし、多くの場合、実際にはそれを望んでいません。代わりに、特定の部分、ここのブロック、そこのブロックを読み取り、ファイルをジャンプして、特定の位置のブロックを読み取りたい場合があります。

その後fseek、これらの位置を出したりfread、ブロックを動かしたりしても、言及する価値のあるオーバーヘッドはありません。しかし、メモリ マッピングを使用して、オペレーティング システムやライブラリがメモリ割り当てなどを処理できるようにする方が便利な場合があります。

于 2013-10-16T12:24:32.997 に答える