C# WinForm應用程序降低系統內存占用方法


這里整理了一些網上關於Winform如何降低系統內存占用的資料,供參考:

1、使用性能測試工具dotTrace 3.0,它能夠計算出你程序中那些代碼占用內存較多
2、強制垃圾回收
3、創建完對象實例后,記得釋放資源,多使用Dispose(),Close()方法,或者使用using
4、用timer,每幾秒鍾調用:SetProcessWorkingSetSize(Process.GetCurrentProcess().Handle, -1, -1),具體見下面的代碼。
5、發布的時候選擇Release
6、注意代碼編寫時少產生垃圾,比如String + String就會產生大量的垃圾,建議使用StringBuilder
7、調用.NET Framework 框架下的垃圾回收方法GC.Collect();  
8、注意變量的作用域,具體說某個變量如果只是臨時使用就不要定義成成員變量。GC是根據關系網去回收資源的。
9、檢測是否存在內存泄漏的情況,詳情可參見:內存泄漏百度百科

定期清理執行垃圾回收代碼:

        [DllImportAttribute("kernel32.dll", EntryPoint = "SetProcessWorkingSetSize", ExactSpelling = true, CharSet = CharSet.Ansi, SetLastError = true)]
        private static extern int SetProcessWorkingSetSize(IntPtr process, int minimumWorkingSetSize, int maximumWorkingSetSize);
        /// <summary>
        /// 清理內存
        /// </summary>
        private void ClearMemory()
        {
            GC.Collect();
            GC.WaitForPendingFinalizers();
            SetProcessWorkingSetSize(System.Diagnostics.Process.GetCurrentProcess().Handle, -1, -1);
        }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM