내게 정말 직관적이지 않은 이유는 무엇입니까? 나는 문서에서 유용한 것을 찾을 수 없다. 나는 매 50 회 반복마다 플러시를하고 있으며, 매 플래시 메모리 사용량이 1MB 씩 증가하고있다. 100 회 플러시는 100MB를 사용합니다! 내가 여기서 무엇을 놓치고 있니? Doctrine의 웹 사이트 예제에서 clear()로 보았습니다.하지만 사용하는 경우 객체 중 하나에 캐스케이드 지속 세트가 없다는 예외가 있습니다. 누구나 내가 할 수있는 일을 설명 할 수 있을까요? 그리고 모든 교리의 목적을 제대로 설정하지 못하게하려면 어떻게해야합니까?doctrine 2.1 : 플러시 후 메모리 사용량이 증가했습니다.
답변
문제는 엔티티 관리자가 모든 개체를 처리한다는 것입니다. 각 X 반복 후에 RAM에있는 객체가 필요 없다면 재설정해야합니다. 이 밖으로 시도 :
또한// get the entity manager and save objects and flush
$em = $this->get('doctrine')->getEntityManager();
...
$em->flush();
// then reset the entity manager
$this->get('doctrine')->resetEntityManager();
, 여기에 읽기 : http://docs.doctrine-project.org/en/2.0.x/reference/batch-processing.html
그것은 작업의 모든 대량 후 $ 보하기>를 명확()를 사용하는 제안합니다. (Besnik이 제시 한 것과 동일한 효과를 제공해야 함). 앞서 언급 한 링크에서
: 교리
대량 삽입이 가장 잘 의 EntityManager의 트랜잭션 쓰기 뒤에 행동 을 활용, 일괄 적으로 수행됩니다. 다음 코드는 일괄 처리 크기가 20 인 개체를 10000 개 삽입하는 예제입니다. 일괄 처리 크기로 실험해야만 가장 적합한 크기를 찾을 수 있습니다. 더 큰 배치 크기는 준비된 명령문 재사용을 내부적으로 의미하지만 플러시 중에는 더 많은 작업을 의미합니다 ( ).
레코드를 대량 삽입하는 경우 (100K 이상) 비슷한 상황이 발생했습니다. Rauni와 Besnik의 제안과 Doctrine의 일괄 처리 가이드를 따라 갔지만 $ em-> clear() 및 resetEntityManager() 후에도 메모리는 계속 증가했습니다.
ORM 도구를 대량 삽입, 업데이트 또는 삭제 주로 잘 적합하지 않다 : 며칠 후, 나는 교리의 문서에 대한 정보의 통지를 향했다. 모든 RDBMS에는 과 같은 작업을 처리하는 가장 효과적인 자체 방법이 있으며 아래에 설명 된 옵션이 충분하지 않은 경우 RDBMS 도구를 사용하여 이러한 대량 작업을 수행하는 것이 좋습니다.
원시 SQL (MySQL)을 사용하고 삽입을 일괄 처리합니다. 메모리 사용량은 원시 SQL을 사용하여 Doctrine을 사용하여 200MB 이상에서 30MB로 줄였습니다. 소스 배열에 삽입 할 요소를 팝하는 순간 메모리 사용량이 줄어들 수 있습니다. 220 초에서 20 초로 훨씬 빨라졌습니다.
- 1. iPhone : 터치를 사용하는 앱의 메모리 사용량이 꾸준히 증가했습니다.
- 2. Doctrine 2.1 - 쿼리 카운팅
- 3. Doctrine 2.1 참조 테이블
- 4. aws 메모리 사용량이 높음
- 5. Python의 메모리 사용량이 BeautifulSoup로
- 6. ASP.NET에서 메모리 사용량이 적습니다.
- 7. sqlite3에서 메모리 사용량이 증가합니까?
- 8. iOS 메모리 사용량이 많습니다.
- 9. 장치 메모리 플러시 큐다
- 10. doctrine 2.2 and codeigniter 2.1
- 11. Doctrine 2.1 : 기본 주석 매핑
- 12. symfony 2.1 doctrine fixtures installation
- 13. Google App Engine에서 메모리 사용량이 갑자기 많아졌습니다.
- 14. Doctrine Mongodb ODM이 프록시 문서를 유지하고 플러시
- 15. iPhone : 메모리 사용량이 너무 많습니까?
- 16. 다중 처리시에만 메모리 사용량이 높음
- 17. iPad 메모리 사용량이 지속적으로 증가합니다.
- 18. HTML 메모리 사용량이 너무 많음
- 19. 왜 내 메모리 사용량이 증가합니까?
- 20. 많은 도메인 = 메모리 사용량이 많습니까?
- 21. MKMapView의 메모리 사용량이 매우 높습니다.
- 22. 미디어 사용률이 105 % 증가했습니다.
- 23. Doctrine ORM 2.1 : 로깅이 엔터티로 변경됩니다.
- 24. Doctrine 2.1 - 생성 된 SQL을 확인하는 방법
- 25. PHP : 로컬 컴퓨터에서 메모리 사용량이 낮을 때 프로덕션 서버에서 메모리 사용량이 매우 높음
- 26. 무료 사용시 메모리 사용량이 줄어들지 않습니까?
- 27. 풀 GC 후 OldGen 사용량이 올라갑니다
- 28. 병합 후 플러시() 문제 엔터티
- 29. MPMoviePlayerController : 메모리 사용량이 많음 (할당 취소되지 않음)
- 30. 라이브러리 초기화 후 RAM에서 ELF 섹션 플러시