엔터티 프레임 워크는 새 개체를 데이터베이스에 삽입 할 때 과도한 양의 메모리를 사용합니다.엔터티 프레임 워크 메모리 사용량
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 기가 바이트였습니다. 이 객체는 작고 문자열 이름과 정수 키입니다.
SaveChanges 호출을 루프에 넣음으로써 메모리 사용량을 줄일 수 있지만 실행 시간이 훨씬 나 빠지며 이미 상당히 나 빠졌습니다.
엔티티 프레임 워크가 많은 메모리를 사용하는 이유 또는 메모리를 적게 사용하는 방법을 아는 사람이 있습니까?