zoukankan      html  css  js  c++  java
  • 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);
            }
  • 相关阅读:
    perl中的默认变量与Z/map介绍
    perl6中字符串字母编历
    将数字转化为特殊符号的密码
    vue: axios
    vue: alias
    background-size
    问题:当浏览器窗口变化时,内容的大小以及相对位置也要相应变化
    vue移动端适配
    Web 端屏幕适配方案
    vue: register and import
  • 原文地址:https://www.cnblogs.com/feiyuhuo/p/5293363.html
Copyright © 2011-2022 走看看