나는 twitter-async 라이브러리를 사용하여 twitter api와 상호 작용합니다. 그러나 다양한 unset() 후 gc_enable()
및 gc_collect_cycles()
을 사용하더라도 메모리 제한이 계속 증가합니다.메모리를 지우려면 클래스를 설정하지 마십시오
가비지 수집기를 사용하기 전에 메모리 사용량이 너무 많습니다. 그것은 확실히 많이 감소했습니다. 그러나 만족스럽지 않습니다.
데이터베이스의 새 요청을 확인하고 처리하는 for 루프를 실행 중입니다.
요청이 처리되어 약 98MB (트위터에서 가져 오는 데이터의 양을 고려하면 괜찮습니다)의 메모리를 생성하고 더 이상 처리 할 요청이 없다고 가정하면이 98MB php가 설정 한 260MB 메모리 제한에 도달 할 때까지 데이터가 영구 보존됩니다. 이미 메모리 제한으로 인해 충돌이 발생하면 스크립트를 다시 시작하는 설치 프로그램을 설치했습니다.
조금만 조사한 결과 라이브러리에서 실패한 통화 등의 데이터를 일부 변수에 저장한다는 사실을 발견했습니다. 메모리가 부족한 변수를 모두 없애고 메모리를 절약 할 수있는 클래스 전체를 파괴 할 수있는 방법이 있습니까? 현재 클래스의 변수를 설정 해제 중입니다.
$twitterObj = new EpiTwitter();
// Do all the stuff ..
unset($twitterObj);
그러나 여전히 메모리 사용에는 변화가 없습니다.
도움말!
나는 이것을 시험하고있다. 곧 업데이트를 게시 할 예정입니다. 그러나 나는 이것이 효과가있을 것이라고 강한 생각을 가지고 있습니다. 그것에 대해 생각해 보았지만 절대로 시도하지 않았습니다.:) – kapeels