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

2025-04-18 12:38:48
推荐回答(4个)
回答1:

不用的数据尽量及时销毁,以收回内存占用。如果调用了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);

回答2:

这个不是看你程序的大小决定的!是看你程序运行的复杂程度决定的!比如说跟数据库有大量的通信也会占用大量的内存,还要看看你的算法是否合适,是否有大量的数据要循环,这些都会占用大量的内存!!

回答3:

只能优化,控制恐怕不行

回答4:

正常的..因为.NET FRAMEWORK多大啊..当你程序在运行的时候..你可能调用了N%中NF中的库