Я использую приведенный ниже код для освобождения памяти на некоторых работающих программах, потому что моей собственной программе требуются большие ресурсы памяти для более быстрой работы.
[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 КБ до 2000 КБ. Это довольно хорошо, но есть ли побочный эффект от этого?
Некоторые коммерческие программы также используют это, как Yamicsoft Vista / Xp manager и Firefox Optimizer, чтобы назвать некоторые из них, так что я думаю, если это не имеет плохих побочных эффектов или есть?