我正在使用下面的代码来释放一些正在运行的程序的内存,因为我自己的程序需要较大的内存资源才能运行得更快。使用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)
{
...
}
}
}
这似乎是做工精细,我能打倒像Explorer中的某些程序的内存使用量从100,000 KB到2000 KB。这很不错,但是这样做会有副作用吗? 一些商业软件也使用Yamicsoft Vista/Xp管理器和Firefox Optimizer这样的命名,所以我想如果这没有不好的副作用或在那里?
也许你是对的。我会尝试找到一种方法来优化我自己的程序,而不是优化其他程序,并删除EmptyWorkingSet,如果它危险的话。 – murasaki5 2009-11-28 10:19:43