【发布时间】:2010-12-21 04:28:20
【问题描述】:
我正在使用下面的代码来释放一些正在运行的程序的内存,因为我自己的程序需要大量内存资源才能运行得更快。
[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 manager 和 Firefox Optimizer 等等,所以我在想这是否没有不好的副作用或者有没有?
【问题讨论】:
标签: c# memory-management side-effects