C#有自動(dòng)回收內(nèi)存的機(jī)制,但是有時(shí)自動(dòng)回收有一定滯后,需要在變量使用后迅速回收,節(jié)約內(nèi)存,這里介紹一個(gè)最簡(jiǎn)單的方法。
1.先對(duì)對(duì)象賦值 null;
2.使用System.GC.Collect()
代碼如下:class Program
{
static void Main(string[] args)
{
long lenth = 1024 * 1024 * 128;
GetCost("程序啟動(dòng)");
double[] data = new double[lenth];
for (int i = 0; i < lenth; i++)
{
data[i] = double.MaxValue;
}
GetCost("數(shù)據(jù)制造完成");
data = null;
GetCost("data = null");
System.GC.Collect();
GetCost("System.GC.Collect()");
Console.ReadKey();
}
/// <summary>
/// 顯示內(nèi)存使用的狀態(tài)
/// </summary>
/// <param name="state"></param>
static void GetCost(string state)
{
Console.Write("當(dāng)前狀態(tài):" + state + "; 占用內(nèi)存:");
using (var p1 = new PerformanceCounter("Process", "Working Set - Private", "GCtest.vshost"))
{
Console.WriteLine( (p1.NextValue()/1024/1024).ToString("0.0")+"MB");
}
}
|
新聞熱點(diǎn)
疑難解答
圖片精選