• .net中清理内存,清理占用内存方式方法


    #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

     在系统中使用 SetProcessWorkingSetSize方法做了一个测试,调用该方法后,占用内存从80M降到2M.(TaskManager观察的结果)按 照知秋一叶的说法,这样调整WorkingSet,将有可能导致缺页中断,严重影响性能。 但是从使用的情况来看,没有发现这样的现象

    public Form1()
             {
                 InitializeComponent();
                
                //每1分钟 检查一次
                System.Timers.Timer timer = new System.Timers.Timer(60 * 1000);
                timer.Elapsed += timer_Elapsed;
                timer.Start();
             }
     
            private void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
            {
                //1 比较时间是否有效  HH:mm
                DateTime starttime = e.SignalTime;
                string time = ConfigurationManager.AppSettings["ClearMemory_PerdayTime"];//"05:00"
                string dtNow = starttime.ToString("yyyy-MM-dd HH:mm");
                DateTime dayDefine = DateTime.Parse(starttime.ToString("yyyy-MM-dd") + " " + time);
                if (dayDefine.ToString("yyyy-MM-dd HH:mm") == dtNow)
                {
                    //2 启动垃圾收集器
                    ClearMemory();
                    LogWarning(DateTime.Now.ToLongTimeString() + " :释放内存!");
                }
            }

    注意,引用命名空间:using System.Runtime.InteropServices;

  • 相关阅读:
    使用canvas技术在网页上绘制鲜花
    java连接Access数据库
    L2-009. 抢红包
    L2-008. 最长对称子串
    L1-032. Left-pad
    L1-016. 查验身份证
    L1-005. 考试座位号
    L1-030. 一帮一
    L1-023. 输出GPLT
    L1-028. 判断素数
  • 原文地址:https://www.cnblogs.com/x-poior/p/5848562.html
Copyright © 2020-2023  润新知