1

異なるスレッドからログを書き込む必要があるマルチスレッド コードがあります。効率を改善するために、スレッドが書き込みを行うメモリ ブロックを設定し、ミューテックスによって同期します。ただし、簡単なテストを行ったところ、ハード ドライブへの書き込みも高速のようです。私はLinuxを使用しています。ハードドライブへの書き込みが実際に速いかどうかわからない、または何か間違ったことをしたのでしょうか?

4

2 に答える 2

2

おそらく、システム バッファ キャッシュ効果があり、ディスク ios の実際のコストが隠されているため、2 つのテストに違いはありません。

于 2012-08-21T12:21:11.283 に答える
0

また、現在使用しているファイル システムの種類によっても異なります。たとえば、ext4 fs は、いわゆる「遅延」書き込みをサポートしています。このオプションは、マウント オプションに渡すことで切り替えることができます。

data=writeback. 

これは、ファイルの書き込み後に、ファイルのメタデータを遅延して書き込むことができることを意味します。これによりファイル システムが破損することはありませんが、クラッシュが発生した場合に最新の変更が失われる可能性があります (そのため、過去に少し戻ってしまう可能性があります)。その結果、ディスクへの実際の書き込みは延期されます。そして、あなたのテストはそれほど正しくないかもしれません。

于 2012-08-21T12:26:17.840 に答える