实体框架在向数据库插入新对象时似乎会使用过多的内存。
在这个阶段,这些对象包含非常少的数据元素。将这140,000个对象插入到数据库中时,应用程序的总内存使用量为600 MB,而300,000个对象的内存使用量为1.2 GB。这些对象很小,只有一个字符串名称和一个整数键。
我可以通过将SaveChanges调用放入循环中来减少内存使用量,但是执行时间会变得更差,而且已经相当糟糕了。
有人知道为什么实体框架使用如此多的内存,或者如何减少内存使用量吗?
for(int i = 0; i < numOwners; ++i)
{
var owner = Owner.CreateOwner();
db.AddToOwnerSet(owner);
for(int j = 0; j < numChildren; ++j)
{
var child = Child.CreateChild();
owner.Childs.Add(child);
}
}
db.SaveChanges();
在这个阶段,这些对象包含非常少的数据元素。将这140,000个对象插入到数据库中时,应用程序的总内存使用量为600 MB,而300,000个对象的内存使用量为1.2 GB。这些对象很小,只有一个字符串名称和一个整数键。
我可以通过将SaveChanges调用放入循环中来减少内存使用量,但是执行时间会变得更差,而且已经相当糟糕了。
有人知道为什么实体框架使用如此多的内存,或者如何减少内存使用量吗?