ハードウェアと直接お話するダイレクトI/Oが遅いのは仕方ないことだが、アプリケーション層で小さなキャッシュ機構を使うと大分マシになるという話。 ファイルシステムのキャッシュを回避して、システムのメモリ空間を消費せずに入出力を行うのがダイレクトI/Oである。前回も述べたが、ダイレクトI/Oは宿命的に遅い。遅いながらも、アクセスパターンに局所性がまったくない場合は、システム全体にかける負荷を軽減できるので、有用である。今回は、前回述べたダイレクトI/Oを隠蔽するファイルクラスにキャシュ機構を導入して高速化を図る。 システム層のキャッシュを回避しておきながら自前のキャッシュを導入して高速化を唄うようなマッチポンプ行為に意味があるのか。微妙なところだが、特定のケースでは、ある。アクセスパターンに局所性がない場合にダイレクトI/Oを使うと述べたが、局所性のないアクセスパターンと局所性のあるアクセスパ