mmap() を使用して cp(ファイル コピー) コマンドを実装しています。そのために、ソースファイルをMAP_PRIVATE(読みたいだけ)モードでマップし、宛先ファイルをMAP_SHAREDモードでマップしました(宛先ファイルの変更されたコンテンツを書き戻す必要があるため)。
これを行っている間、2 つの理由で発生する多くのマイナー ページ フォールトによるパフォーマンスの低下を観察しました。1) ソース ファイルの mmap(MAP_PRIVATE) を呼び出している間、オンデマンドでゼロ フィルが行われます。2) 宛先ファイルの mmap(MAP_SHARED) を呼び出しながら書き込み時にコピーします。
Zero-fill-on-demand と Copy-on-write を無効にする方法はありますか?
ありがとう、ハリッシュ