回答:
はい、あります:プログラムにVirtualLock関数を呼び出します:
プロセスがロックしたページは、プロセスがページをロック解除するか終了するまで物理メモリに残ります。これらのページは、ロックされている間はページファイルに書き込まれないことが保証されています。
SetProcessWorkingSetSize関数も役立つと思います。
私がこれが有用であるかもしれないとさえ提案することに対する異端者だと思っている人々のために:
メモリ内のページをロックする正当な理由があることに注意してください。正当な理由としては、ユーザーがCDバーナーを実行しており、CDバーナーが絶えずページアウトしているため、バッファーアンダーランが発生し、コースターが作成されていることが考えられます。その状況では、コンピューターの残りの部分がクロールに遅くなることを意味する場合でも、メモリバッファーをロックしてページアウトされないようにすることが有効です。他の正当な理由もあります-私のポイントは、メモリ内のページをロックすることは通常お勧めできませんが、有効な状況はまだ存在し、アイデアを殺すことはここのOPに役立つとは思わないということです。
更新:Process HackerのReduce Working Set
メニューオプションをご覧ください。
SetProcessWorkingSetSize
。それが一つの方法です。もちろん、あなたが開発者ではないのでそれが何を意味するのかわからなければ、明らかにできることはあまりありません。しかし、それはまだ可能です、そして、それが不可能であると言うことはまだ間違っています、それはただOPが持っているかもしれないより多くの知識を必要とします。
私が見つけた唯一の方法は、ページファイルを無効にすることです。ただし、これは完全な解決策ではありません。RAMの制限に近づいたり超えたりするとエラーメッセージが表示され、クラッシュダンプが適切に保存されない可能性があるため、トラブルシューティングが必要な場合はオンに戻します。それ以外、私は何ヶ月も支障なくページファイルなしでWin7を使用しています。
私の経験:ピアノソフトウェア(1GBのRAM使用量)でこの問題が発生し、しばらく使用しないとスワップに陥りました。数時間後にピアノのキーを弾くと、スワップがサウンドを再生するのに十分な速さでリロードされないため、グリッチな混乱が発生します。(すべてのキーに腕全体を置いて、リロードを強制します!)
RAMが心配な場合は、さらに購入することをお勧めします(たとえば、Windows 7 x64では8〜12GB)。RAMを意識している人にとって、RAMをたっぷり持っていることは天の恵みです。
ただし、その前に、SSDドライブを入手してスワップを行うことを検討する必要があります。スワップリカバリを大幅に高速化するだけでなく、他の多くのシステムの利点を提供します。RAMは、使用されていないときには利点を提供しません。
ページファイルの使用は多くの要因に依存します。多数のプログラムを使用し、それらのすべてに対して同時に十分なRAMがない場合、それらの一部(またはすべて)がページファイルにスワップアウトされる場合があります。
4GBのRAMがあり、ビデオカードやその他のリソースユーザーが4GBの一部をブロックしているために、約3GBが利用可能であり、メモリを大量に消費しないプログラムをいくつか使用する場合、理論的にはスワップファイルは必要ありません。ただし、Windows Vistaおよび7は、プログラムをディスクにスワップすることで悪名高い攻撃で有名です。
以前はWindows 7のスワップ性を低下させる設定がありました(スワップネスはLinuxの用語ですが、Windowsにも同様に適用されます。Windowsのスワッピングの積極性を抑えるためのレジストリ設定があるため、Microsoftは、隠された方法)が、私はもうそれを見つけることができないようです。それを検索することは、私がここで終わった方法です。私が見つけたこの設定の最良の代替は、固定サイズのスワップファイルを使用することを確認することです(32ビットOSでは4096から4096、6GBのシステムRAMがあるため64ビットでは12GBになります)専用パーティション上。予備の7200rpm 200GBドライブを使用して、すべてのスワップパーティション(Windows XP、7、7 64ビット、およびさまざまなLinux)をこのドライブに配置します。うまくいくようですが、YMMV。