zoukankan      html  css  js  c++  java
  • C#程序中降低内存清理方法

    1、使用性能测试工具dotTrace 3.0,它能够计算出你程序中那些代码占用内存较多

    2、强制垃圾回收

    3、多dispose,close

    4、用timer,每几秒钟调用:SetProcessWorkingSetSize(Process.GetCurrentProcess().Handle, -1, -1);

     1 //在程序中用一个计时器,每隔几秒钟调用一次该函数,打开任务管理器,你会有惊奇的发现
     2  
     3 #region 内存回收
     4 [DllImport("kernel32.dll", EntryPoint = "SetProcessWorkingSetSize")]
     5 public static extern int SetProcessWorkingSetSize(IntPtr process, int minSize, int maxSize);
     6 /// <summary>
     7 /// 释放内存
     8 /// </summary>
     9 public static void ClearMemory()
    10 {
    11 GC.Collect();
    12 GC.WaitForPendingFinalizers();
    13 if (Environment.OSVersion.Platform == PlatformID.Win32NT)
    14 {
    15 App.SetProcessWorkingSetSize(System.Diagnostics.Process.GetCurrentProcess().Handle, -1, -1);
    16 }
    17 }
    18 #endregion

    5、发布的时候选择Release

    6、注意代码编写时少产生垃圾,比如String + String就会产生大量的垃圾,可以用StringBuffer.Append

    7、this.Dispose();    this.Dispose(True);   this.Close();    GC.Collect();  
    8、注意变量的作用域,具体说某个变量如果只是临时使用就不要定义成成员变量。GC是根据关系网去回收资源的。

    9、检测是否存在内存泄漏的情况,详情可参见:内存泄漏百度百科

  • 相关阅读:
    Unity Notes调制粒子系统的颗粒的最大数目
    Swift编程语言学习2.1——基础运营商(在)
    JavaScript语言基础知识6
    算法题:合并两个有序列表
    DDFT
    Java For循环效率试验
    Delphi ORD
    Delphi TcxTreeList 节点添加图片
    SQL Server 除法 不起作用的问题
    Delphi 继承基类的窗体,并显示基类的控件操作。
  • 原文地址:https://www.cnblogs.com/kire/p/4453656.html
Copyright © 2011-2022 走看看