1、使用性能测试工具dotTrace 3.0,它能够计算出你措施中那些代码占用内存较多
2、强制垃圾回收
3、多dispose,close
4、用timer,每几秒钟挪用:SetProcessWorkingSetSize(Process.GetCurrentProcess().Handle, -1, -1);具体见附录。
5、颁布的时候选择Release
6、注意代码编写时少孕育产生垃圾,好比String + String就会孕育产生大量的垃圾,,可以用StringBuffer.Append
7、this.Dispose(); this.Dispose(True); this.Close(); GC.Collect();
8、注意变量的感化域,具体说某个变量如果只是姑且使用就不要界说成成员变量。GC是按照关系网去回收资源的。
9、检测是否存在内存泄漏的情况,详情可参见:内存泄漏百度百科
附录:按期清理执行垃圾回收代码:
//在措施顶用一个计时器,每隔几秒钟挪用一次该函数,打开任务打点器,你会有诧异的发明
#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