2013-07-30 4 views
-1

CLI를 사용하여 처리중인 많은 양의 데이터가 있습니다.foreach주기에서 메모리 소비가 점점 커지는 이유는 무엇입니까?

scipt에서 데이터는 foreach주기를 거칩니다.

그러나 반복마다 메모리 소비가 점점 커지고 있습니다.

왜 이런 일이 발생합니까? 모든 var가 루프에서 재 할당되므로 메모리 누수가 없어야합니다. 모든 반복 끝에 var null을 설정하려고했지만 도움이되지 않았습니다.

루프에서 나는 객체 (ActiveRecord)를 사용하고 DB와 함께 작업합니다.

스크립트는 처음에는 초당 10 회 정도의 속도로 매우 빠르게 작동합니다. 결국 성능은 초당 1 회 미만입니다.

감사합니다.

+3

코드를 볼 수없는 경우 코드가 메모리 사용량을 증가시키는 이유를 말할 수 없습니다. – Jim

+0

우리는 한 줄의 코드를 보지 않고도이 사실을 알 수 있어야합니다. – Barmar

+0

가능성 중 하나는 PHP 또는 루핑에서 BUG입니다. 문제를 확인하기 위해 코드를 게시 할 수 있습니까? –

답변

1

귀하의 대답은 가독성 수집가가 수시로 발생하며 모든 반복이 아닌 here입니다.

+0

해답을 가져 주셔서 감사합니다. 그러나 1000 번째 반복 이후에도 메모리 소비는 점점 커지고 있습니다. – serg66

+0

PHP에서 버그가 될 수 있습니다. 가비지 수집에 관한 docu 문서를 읽어보십시오. 이전 버전의 PHP에서는 문제가 있었지만 이미 수정되었는지는 확실하지 않습니다. – lupatus