控制C#编的程序内存的占用

用c#编的的小程序在开始运行时占3-4M内存,但慢慢会增加到50M,有时达到80多M,且几乎没有下降的趋势,程序本身才3M。这是为什么?该怎样解决?我想让它占的内存小点,... 用c#编的的小程序在开始运行时占3-4M内存,但慢慢会增加到50M,有时达到80多M,且几乎没有下降的趋势,程序本身才3M。这是为什么?该怎样解决?我想让它占的内存小点,怎样才能做到?希望说的详细点。谢谢! 展开
 我来答
FantasyChump
推荐于2016-04-10 · TA获得超过3288个赞
知道大有可为答主
回答量:2127
采纳率:0%
帮助的人:2246万
展开全部
不用的数据尽量及时销毁,以收回内存占用。如果调用了COM组件、数据库等,那就及时关闭以避免资源泄漏。

其实.net程序占用内存比较正常,如果确定没有泄漏的地方可以不用理会。

这里有个治标不治本的方法,使用API来减少内存占用:

[DllImport("kernel32",EntryPoint="SetProcessWorkingSetSize", ExactSpelling=true, CharSet=CharSet.Ansi, SetLastError=true)]
public static extern int SetProcessWorkingSetSize(int hProcess, int dwMinimumWorkingSetSize, int dwMaximumWorkingSetSize);

调用方法:
SetProcessWorkingSetSize(System.Diagnostics.Process.GetCurrentProcess().Handle.ToInt32(), - 1, - 1);
chen537840
2009-05-07
知道答主
回答量:9
采纳率:0%
帮助的人:0
展开全部
这个不是看你程序的大小决定的!是看你程序运行的复杂程度决定的!比如说跟数据库有大量的通信也会占用大量的内存,还要看看你的算法是否合适,是否有大量的数据要循环,这些都会占用大量的内存!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
christiankula
2009-05-07 · TA获得超过1007个赞
知道小有建树答主
回答量:1275
采纳率:0%
帮助的人:0
展开全部
只能优化,控制恐怕不行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
iamXiaMi
2009-05-07 · TA获得超过1711个赞
知道大有可为答主
回答量:2734
采纳率:0%
帮助的人:2253万
展开全部
正常的..因为.NET FRAMEWORK多大啊..当你程序在运行的时候..你可能调用了N%中NF中的库
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式