自分のプログラムがより速く実行するために大きなメモリリソースを必要とするため、以下のコードを使用して実行中のプログラムのメモリを解放しています。EmptyWorkingSetを使用した場合の副作用は何ですか?
[DllImport("psapi.dll")]
public static extern bool EmptyWorkingSet(IntPtr hProcess);
public FreeMem(string programName){
EmptyWorkingSet(Process.GetCurrentProcess().Handle);
foreach(Process process in Process.GetProcesses(programName))
{
try
{
EmptyWorkingSet(process.Handle);
}
catch (Exception)
{
...
}
}
}
エクスプローラのようないくつかのプログラムのメモリ使用量を100,000 Kbから2,000 Kbに減らすことができました。それはかなり良いですが、これには副作用がありますか? 商用ソフトウェアの中にはYamicsoft Vista/XPマネージャーやFirefox Optimizerのようなものもありますので、これに悪影響がないのか、それともないのでしょうか?
は、多分あなたは正しいです。他のプログラムを最適化するのではなく、自分のプログラムを最適化する方法を見つけようとします。EmptyWorkingSetを削除すると危険です。 – murasaki5