Windowsはファイルをメモリに解凍します。それをディスク上で実行すると、速度の向上は完全になくなり、不要なディスク書き込みが多く発生します。の終わりを参照してください NTFSのスパースファイルと圧縮に関するマイクロソフトのブログ記事 :
- NTFSはどの圧縮単位がアクセスされているかを判別します。
- 圧縮単位の割り当てられた範囲全体が読み取られます。
- ユニットが圧縮されていない場合は、手順5に進みます。それ以外の場合は、NTFSは圧縮解除されたCUをディスクに書き戻すために必要なスペースを予約しようとします(割り当てはしません)。ディスクに十分な空き領域がない場合、アプリケーションは読み取り中にERROR_DISK_FULLを受け取る可能性があります。
- CUは解凍されます メモリ内 。
- 圧縮解除されたバイト範囲はキャッシュにマップされ、要求側アプリケーションに返されます。
- ...
もちろん、メモリが不足している場合、解凍プロセスで使用されるメモリによって他のメモリがページアウトされ、ページファイルのディスクに書き込まれる可能性があります。幸いなことに、あなたのプログラムが実際に読んでいるセクションを含むチャンクだけが解凍されます。あなたが数バイトしか必要としないならば、NTFSは全体を解凍する必要はありません。
あなたのSSDが速いなら、あなたはおそらくNTFS圧縮からスピードの向上を得ることはないでしょう。プロセッサがデータの解凍に費やした時間とディスクが圧縮データの読み取りに費やした時間の合計が、SSDが圧縮されていないデータの読み取りにかかる時間よりも長くなる可能性があります。それはあなたが扱うファイルのサイズにもよります。圧縮ファイルの最小サイズは、クラスタサイズに応じて8 KBから64 KBの範囲です。このサイズより小さいファイルはまったく圧縮されませんが、ごくわずかな簿記が追加されます。
圧縮ファイルに大量の書き込みを行う場合は、使用されている圧縮アルゴリズム(LZ)のために速度が大幅に変動することがあります。
参考文献: NTFS圧縮はパフォーマンスにどのように影響しますか?