zoukankan      html  css  js  c++  java
  • C#内存占用大量资源的解决办法

            昨天,独立完成了一个项目,一直运行起,起初运行内存为15Mb左右,但是发现内存以每秒2Mb的速度增加,吓了我一跳(注:我实习生,我的工作中第一个项目)。从头找寻对象,再来dispose,弄得我晕头转向的。

    占用23M中····

            于是乎,我想到了定时控件,每多少秒,去销毁计算机中无用的内存。我的方法是调用API,SetProcessWorkingSetSize函数。其用法如下:

     1         #region 内存回收
     2         [DllImport("kernel32.dll")]
     3         private static extern bool SetProcessWorkingSetSize(IntPtr process, int minSize, int maxSize);
     4         private static void FlushMemory()
     5         {
     6             GC.Collect();
     7             GC.WaitForPendingFinalizers();
     8             if (Environment.OSVersion.Platform == PlatformID.Win32NT)
     9                 SetProcessWorkingSetSize(Process.GetCurrentProcess().Handle, -1, -1);
    10         }
    11         #endregion
    12 
    13         // 定时销毁不用的内存
    14         private void timer1_Tick(object sender, EventArgs e)
    15         {
    16             FlushMemory();
    17         }


     

    使用了这个,内存占用就1Mb左右。

    我不晓得这方法比C#的dispose等好不好,请各位大神指教。

    作者:orange1438
    出处:http://www.cnblogs.com/orange1438/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    Oracle 12C 在 Oracle Linux 6.5 64Bit 安装手册
    OWI之db file sequential read
    OWI之db file scattered read
    Linux监控脚本
    Java中的空值判断
    Java中的java.math.BigInteger
    Java中用正则表达式找出数字
    Java中的StringBuffer
    JAVA String.format 方法使用介绍
    Java中对整数格式化
  • 原文地址:https://www.cnblogs.com/orange1438/p/4544951.html
Copyright © 2011-2022 走看看