数百GiBクラス以上のボリュームのデータを処理してると極端にパフォーマンスが落ちちゃう問題だけど、原因の一つは、どうも大容量ファイルI/Oの場合にはファイルマッピングだと効率が悪いことにある模様(環境やその他の条件にもよるのかもしれないけど)。推測の域をでないけど、メモリアロケートを伴う MapViewOfFile()/MapViewOfFileEx(), UnmapViewOfFile() を繰り返し何度も呼び出すことで、致命的なメモリの断片化でも発生してるくさい。自前で用意したリングバッファ(ring_bufferクラス)に ReadFile() でデータを読み込むようにしたら 100GiB のファイルの読み込みで1割程度高速化できた。 あと別の原因では、数百GiBクラスのファイルになっちゃうと、ディスク上に記録されている位置の違いからか、フラグメントを起こして無くても単純に同じ量のア

