在将新对象插入数据库时,实体框架似乎使用了过多的内存.
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调用放入循环来减少内存使用量,但是执行时间变得更糟,而且已经非常糟糕了.
任何人都知道实体框架为什么要使用这么多内存,或者如何让它使用更少的内存?