转 http://blog.csdn.net/bdstjk/article/details/8482711
C# 出来的Winform程序内存占用默认比较大,这个方法可以极大优化程序内存占用。
其实吧,百度了下,这个函数是将程序的物理内存尽可能转换为虚拟内存,大大增加硬盘读写,是不好的。
用作存档,慎用!!
使用方法:在程序中用一个计时器,每隔几秒钟调用一次该函数,打开任务管理器,你会有惊奇的发现
附上代码:
- #region 内存回收
- [DllImport("kernel32.dll", EntryPoint = "SetProcessWorkingSetSize")]
- public static extern int SetProcessWorkingSetSize(IntPtr process, int minSize, int maxSize);
- /// <summary>
- /// 释放内存
- /// </summary>
- public static void ClearMemory()
- {
- GC.Collect();
- GC.WaitForPendingFinalizers();
- if (Environment.OSVersion.Platform == PlatformID.Win32NT)
- {
- SetProcessWorkingSetSize(System.Diagnostics.Process.GetCurrentProcess().Handle, -1, -1);
- }
- }
- #endregion