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/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

 

转载于:https://www.cnblogs.com/orange1438/p/4544951.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值