我正在 net core 2.0 上运行简单的代码,垃圾回收后,我的程序仍然占用 140 MB 的内存。有人知道为什么吗?我该如何减少它?我还有一个问题。控制台应用程序和 Web 应用程序的垃圾回收有什么区别吗?
var rand = new Random();
var list = new List<Test>();
for(int i = 0; i < 10_000_000; i++)
{
list.Add( new Test {
Id = i,
Number = rand.NextDouble(),
Number1 = rand.NextDouble(),
Number2 = rand.NextDouble(),
Number3 = rand.NextDouble(),
Number4 = rand.NextDouble(),
Number5 = rand.NextDouble(),
Number6 = rand.NextDouble(),
Number7 = rand.NextDouble(),
Number8 = rand.NextDouble(),
});
}
Console.WriteLine("End of generation");
Console.ReadLine();
for(int i = 0; i < list.Count; i++)
{
list[i] = null;
}
list = null;
GC.Collect(1);
GC.WaitForPendingFinalizers();
GC.Collect(2);
GC.WaitForPendingFinalizers();
GC.Collect(3);
GC.WaitForPendingFinalizers();
Console.ReadLine();