標籤:class 資源 工具 rac point pen win32 效能最佳化 env
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
C# 效能最佳化