物理 RAM にとどまり、ディスクへのスワップを回避する他の小さなプログラムを起動するプログラムを作成できますか? Linux と Windows の両方の回答に興味があります。
2 に答える
mlock
POSIX システムは、 /munlock
を使用してメモリを RAM にロックできます。Windows では、同じことをVirtualLock
.
ただし、ほとんどの場合、OS にそのようなことを処理させたいと思うでしょう。
編集:詳しく説明すると、これを行う理由がパフォーマンスまたは応答性である場合は、しないでください。これを行う唯一の理由は、パスワードや暗号化キーが誤ってディスクに書き込まれ、攻撃者がアクセスできる可能性があることを防ぐためです。
ユーザーの 1 人を引用します。
はい、あります: プログラムに VirtualLock 関数を呼び出してもらいます:
プロセスがロックしたページは、プロセスがロックを解除するか終了するまで、物理メモリに残ります。これらのページは、ロックされている間はページファイルに書き込まれないことが保証されています。
SetProcessWorkingSetSize 関数も役立つと思います。
これが役立つかもしれないと示唆することさえ、私が異端者だと思っている人々のために:
メモリ内のページをロックする正当な理由があることに注意してください。正当な理由としては、ユーザーが CD バーナーを実行しており、CD バーナーが絶えずページ アウトするため、バッファー アンダーランが発生し、コースターが発生する可能性があります。そのような状況では、ページ アウトされないようにメモリ バッファーをロックすることは有効です。たとえそれがコンピューターの残りの部分の速度を低下させたとしても、それはユーザーにコースターを与えるよりも優れているからです。他にも正当な理由がある可能性があります-私のポイントは、通常、メモリ内のページをロックすることはお勧めしませんが、有効な状況はまだ存在し、アイデアを殺すことがここでの OP に役立つとは思いません。
更新: Process Hacker の Reduce Working Set メニュー オプションを参照してください。