저는 엔티티 프레임 워크에서 여러 가지 객체를 반복하면서 관련 데이터를 수집하고 그 데이터를 저장합니다. 메서드에서 작업을 수행하는 데 시간이 걸리기 때문에 각 항목에 대해 새 스레드를 여는 중입니다. 그러나, 나는 루프에서 2 천개의 아이템을 제외하고는 메모리를 벗어날 것이다. 이 문제가 발생하는 곳과 멀티 스레드 기능을 유지하는 방법을 파악하려고하지만 오류를 수정하십시오. 어떤 도움이라도 대단히 감사합니다. 고맙습니다.메모리 부족시 예외 엔티티 프레임 워크
0
A
답변
1
전체 작업에 대해 동일한 DbContext를 사용하는 경우 해당 캐시로 인해 메모리 부족 오류가 발생할 수 있습니다. XML 파일에서 많은 양의 데이터를 파싱하고 저장할 때 비슷한 상황이 발생했습니다.
당신은 DBC에서 알 수 있듯이, 당신의 저장소 일회용하게 한 다음 사용 절에 포장한다 : 일회용 패턴을 구현하는 방법에 대한
public void ParsePage(Product p)
{
using (var repo = new DataRepository())
{
//Grab related page report
PageReport pr = repo.PageReports.Where(c => c.ThePageType == "Product").FirstOrDefault(c => c.ThePageTypeID == p.ProductID);
//Do some stuff
//Save
repo.SavePageReport(pr);
}
}
정보 here
2
당신은 할 수있다 찾을 수 있습니다 각 스레드에 default stack size of 1 MB이 있기 때문에 메모리가 부족합니다.
32 비트
- 정적 데이터에 대한
메모리 제한 : 2000 스레드가 max on your system 수 있습니다 스택 2GB의, 의미 시작 - 2GB
- 스택 데이터 - 1GB (스택 크기는 링커에서 설정하며 기본값은 1MB이며 시스템> 스택 예약 크기 인 Linker 속성을 사용하여 늘릴 수 있음)
32 비트 Windows에서는 모든 유형의 데이터 합계가 2GB 이하 여야합니다. 2기가바이트
64 비트
- 정적 데이터에 의해 사용되는 공간 1.75GB 관한 링커 설정, 기본값은 1메가바이트이> 스택 예약 크기)
참조이 0,123,477 링커 속성 시스템을 사용하여 증가시킬 수있다 자세한 내용은및이 stackoverflow question을 참조하십시오.
KroaX에 따르면 더 새로운 task 및 이전 버전의 threadpool 라이브러리는 이와 같은 상황을 처리하도록 설계되었습니다. 스레드와 작업간에 추상화 수준을 추가로 제공하여 스레드가 사용 가능 해지면 할당되는 수천 개의 경량 작업을 쉽게 만들 수 있습니다.
관련 문제
- 1. 엔티티 프레임 워크, 엔티티 예외
- 2. 엔티티 프레임 워크 예외
- 3. 엔티티 프레임 워크 예외
- 4. 엔티티 프레임 워크 대용량 데이터 세트, 메모리 부족 예외
- 5. 엔티티 프레임 워크 엔티티
- 6. 메모리 부족시 노드 충돌 방지
- 7. 엔티티 프레임 워크 - 이전에로드 된 엔티티가없는 메모리
- 8. 엔티티 프레임 워크 오류가
- 9. 엔티티 프레임 워크 6
- 10. 상속이있는 엔티티 프레임 워크 엔티티
- 11. 엔티티 프레임 워크 : 부모 엔티티
- 12. 엔티티 프레임 워크 : 엔티티 할당
- 13. 엔티티 프레임 워크 업데이트 엔티티?
- 14. 메모리 부족시 힙 덤프 오류
- 15. 메모리 부족시 래퍼 다시 시작
- 16. 엔티티 프레임 워크 테이블이 아닌 엔티티 프레임 워크 매핑
- 17. 번역 엔티티 프레임 워크 쿼리는 내가 엔티티 프레임 워크 쿼리를
- 18. 대다 엔티티 프레임 워크
- 19. 엔티티 프레임 워크 조인
- 20. 엔티티 프레임 워크 조인
- 21. 엔티티 프레임 워크 : 데이터
- 22. 엔티티 프레임 워크
- 23. 왜 엔티티 프레임 워크
- 24. 어떻게 엔티티 프레임 워크
- 25. Context.savechanges는 엔티티 프레임 워크
- 26. 엔티티 프레임 워크
- 27. 엔티티 프레임 워크
- 28. 엔티티 프레임 워크 테이블
- 29. 엔티티 프레임 워크 쿼리
- 30. 엔티티 프레임 워크 필터
['DataRepository'] (http://www.asp.net/mvc/overview/older-versions/getting-started-with-ef-5-using-mvc-4/implementing-the-repository) 및 작업 단위 패턴 -에서 - ASP NET에서 - MVC 응용 프로그램)'IDisposable'? 그렇다면,'using' 문으로 포장하십시오. – dbc
IDisposable :( – JCab
['DbContext']와 같은 일회용 멤버가 포함되어 있습니까? (http://msdn.microsoft.com/en-us/library/system.data.entity.dbcontext%28v=vs.113%29 .aspx)? 그렇다면 처분해야 할 수도 있습니다. – dbc