這里整理了一些網上關於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); }