C# SetProcessWorkingSetSize 减少内存占用 黑科技
C#SetProcessWorkingSetSize内存占用内存性能
编程开发
1200
SetProcessWorkingSetSize 内存占用 黑科技
使用SetProcessWorkingSetSize函数其实并不能提高内存性能,也不会真实的节省物理内存,反倒是会造成一些意料之外内存错误问题,造成应用程序或者系统运行不稳定,看似可以优化物理内存,但程序运行时将占用内存强制转移虚拟内存中,严重的还会伤硬盘,微软官方也建议在建立进程,线程,内核池的时候,必须要小心的使用这个函数。
当然特殊情况下(需要让内存看起来占用似乎很小的样子,图个心里安慰) 使用方式如下
public static class MemoryHelper
{
#region 内存回收
/// <summary>
/// 内存回收接口 将内存数据缓存进硬盘 让资源管理器显得占用小
/// </summary>
/// <param name="process"></param>
/// <param name="minSize"></param>
/// <param name="maxSize"></param>
/// <returns></returns>
[DllImport("kernel32.dll", EntryPoint = "SetProcessWorkingSetSize")]
private static extern int SetProcessWorkingSetSize(IntPtr process, int minSize, int maxSize);
public static void Clear()
{
try
{
GC.Collect();
GC.WaitForPendingFinalizers();
if (Environment.OSVersion.Platform == PlatformID.Win32NT)
{
SetProcessWorkingSetSize(System.Diagnostics.Process.GetCurrentProcess().Handle, -1, -1);
}
}
catch { }
}
#endregion
}
该方法只是暂时的将应用程序占用的内存移至虚拟内存,一旦,应用程序被激活或者有操作请求时,这些内存又会被重新占用 所以慎用,自身代码优化好才是王道。
1. 文明上网,理性表达,营造舒适的学习氛围
2. 请不要反馈提交与本页主题无关内容