我最近遇到了一個關於我的程序使用的內存的問題。原因是在方法中使用的字符串數組的內存。更具體地說,這個程序是從外部文件中讀取一個整數數組。這裏是我的代碼方法C中的本地字符串數組的空閒內存#
class Program
{
static void Main(string[] args)
{
int[] a = loadData();
for (int i = 0; i < a.Length; i++)
{
Console.WriteLine(a[i]);
}
Console.ReadKey();
}
private static int[] loadData()
{
string[] lines = System.IO.File.ReadAllLines(@"F:\data.txt");
int[] a = new int[lines.Length];
for (int i = 0; i < lines.Length; i++)
{
string[] temp = lines[i].Split(new char[]{','},StringSplitOptions.RemoveEmptyEntries);
a[i] = Convert.ToInt32(temp[0]);
}
return a;
}
}
文件data.txt約爲7.4 MB和574285行。但是當我運行時,任務管理器中顯示的程序的內存是:41.6 MB。看來,在loadData()(它是字符串[]行)中讀取的字符串數組的內存不會被釋放。我怎樣才能釋放它,因爲它以後不會被使用。
當垃圾收集器運行時,該內存將自動釋放。此外,您無法確定垃圾收集器何時會實際運行。你不需要擔心它。 –