C# 效能最佳化

來源:互聯網
上載者:User

標籤: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# 效能最佳化

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.