0
200萬個虛擬行的內存使用量使用.NET Core 2.0的數據表爲694 MB,但使用.NET Framework爲405 MB.NET Core數據表內存使用
爲什麼這種差異?
這是在控制檯應用程序用於兩個平臺的相同的示例代碼:
DataTable dt = new DataTable();
dt.Columns.Add("a");
dt.Columns.Add("b");
dt.Columns.Add("c");
var watch = Stopwatch.StartNew();
for (int i = 0; i < 2000000; i++)
{
var row = dt.NewRow();
row["a"] = i;
row["b"] = i;
row["c"] = i;
dt.Rows.Add(row);
}
watch.Stop();
Console.WriteLine("Time:" + watch.ElapsedMilliseconds.ToString());
Console.WriteLine("Memory (MB):" + GC.GetTotalMemory(false)/1048576);
Console.WriteLine("Working set (MB):" + Process.GetCurrentProcess().WorkingSet64/1048576);
可能的一個正在運行的32位應用程序,而另一個是作爲一個64位應用程序運行?嘗試在開始計時之前嘗試打印出一條消息,請參閱[如何確定我的應用程序是作爲32位還是64位應用程序運行?](https://stackoverflow.com/q/266082) 。 – dbc
@dbc您對「完全框架版本 –
」默認選中「更喜歡32位」很高興提供幫助。那麼,添加一個答案,或者將其作爲「不能再現的問題或簡單的印刷錯誤」來解決? – dbc