答えは(あなたの用途によって)頻繁に変わります。オペレーティングシステム全体は、さまざまな使用シナリオ間の大きなトレードオフです。 NTFSファイルシステムの場合、ブロックサイズは4k、MTFSのブロックサイズよりも小さいファイル、ファイルサイズ、ファイル数、フラグメンテーションなどが格納されます。
大きなファイルを書き込む場合は、 64kのサイズが良いかもしれません。つまり、大量のデータを読み込む予定がある場合です。少量のデータを読み込むと、サイズが小さくなります。 OSは4kページで動作するので、4kは良いです。圧縮(および暗号化?)とSQLとExchangeは、4kページ(iirc)でのみ動作します。
小さなファイル(< 4k)を書き込むと、MFT内に保存されるので、「エックスストラップジャンプ」をする必要はありません。これは、書き込み操作(読み取りにMFTキャッシュがある可能性があります)で特に便利です。 MFTは、ファイルをシーケンス(すなわち、ブロック1000-1010,2000-2010)で格納するので、断片化によってMFTが大きくなります。 parallellでディスクにファイルを書き込むことが、断片化の主な原因の1つです。もう1つは、ファイルを削除することです。ファイルに必要なサイズを事前に割り当てることができ、Windowsは断片化に対抗するためにディスク上の適切な場所を見つけようとします。 O&O Defragのようなリアルタイムの最適化プログラムもあります。
Windowsは、バイナリストリームをディスク上の物理的な位置にほぼ直接マッピングするため、異なる読み書き方法を使用しても、他の要因ほどパフォーマンスが向上しません。最大スピードのプログラムでは、ディスクへのダイレクトメモリマッピングに技術を使用します。 http://en.wikipedia.org/wiki/Memory-mapped_file
ディスクにキャッシュを増やすためのオプションがWindows(デバイスマネージャ、ハードディスク)にあります。これは、コンピュータがブルースクリーンまたは電力を失うと、ファイルシステムに損傷を与える可能性があるので危険ですが、小さなファイル(およびすべての書き込み)の書き込みで大きなパフォーマンスが向上します。ディスクがビジーの場合、シーク時間が減少するため、これは特に重要です。 Windowsは、エレベータアルゴリズムと呼ばれるものを使用します。これは基本的には、ハードディスクのヘッドを移動させながら、アプリケーションを前後に移動させることを意味します。
これが役に立ちます。 :)
ありがとう!私は可能な限り速く(そして並行して)大きなファイル(ウェブまたは別のソース上でストリーミング)を書きたいと思っています!私はこれをC#でコーディングしています。 –