我编写了一个简单的.NET表单应用程序来测试.NET如何处理内存以及垃圾回收器如何进行清理。
表单应用程序的GUI如下:
代码如下:
public partial class Form1 : Form
{
private readonly IList<byte[]> _btyList = new List<byte[]>();
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
int i = 0;
while (i < 3)
{
byte[] buffer = File.ReadAllBytes(@"C:\PFiles\20131018_nl_metro holland.pdf");
_btyList.Add(buffer);
i++;
}
}
private void button2_Click(object sender, EventArgs e)
{
int i = 0;
while (i < _btyList.Count)
{
_btyList[i] = null;
i++;
}
}
private void button3_Click(object sender, EventArgs e)
{
GC.Collect();
}
}
当我添加一些字节数组到私有的字节数组列表中时,这当然会对应用程序的内存使用产生影响:
![添加字节数组后的内存使用情况](https://istack.dev59.com/ASY1P.webp)
![垃圾回收后的内存使用情况](https://istack.dev59.com/kFbiJ.webp)
GC.Collect()
。 - H H