.NET Core DataTable内存使用情况

时间:2017-10-14 18:54:04

标签: c# .net .net-core

200万个虚拟行的内存使用情况使用.NET Core 2.0的DataTable为694 MB,但使用.NET Framework为405 MB

为什么会出现这种差异?

这是两个平台的控制台应用程序中使用的相同示例代码:

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);

1 个答案:

答案 0 :(得分:0)

默认情况下,“完整框架版本”

检查了“首选32位”