0
매일 symfony 1.4 작업에 문제가 있습니다. 작업을 간단하게 만들려면 xml을 다운로드 한 다음 읽어보십시오.symfony 작업에서 메모리 누수가 발생했습니다.
사용 된 메모리가 xml의 각 "노드"사이에서 증가한다는 것을 알고 있습니다.
예를 들어, 어딘가 스크립트에서 내가 할 것을 :
는foreach($prd->ArtistList->Artist as $art)
{
echo "start foreach artist ", memory_get_peak_usage(1), " bytes of ram.\n";
if(!$artist = ArtistTable::getInstance()->findOneByRoleAndName($art['role'], $art['name']))
{
$artist = new Artist();
$artist->role = $art['role'];
$artist->name = $art['name'];
$artist->save();
}
if(!$pha = ProductArtistTable::getInstance()->findOneByProductIdAndArtistId($prd_id, $artist->id))
{
$pha = new ProductArtist();
$pha->product_id = $prd_id;
$pha->artist_id = $artist->id;
$pha->save();
}
$pha->free(true);
$artist->free(true);
unset($pha);
unset($artist);
echo "end foreach artist ", memory_get_peak_usage(1), " bytes of ram.\n";
}
unset($art);
나는 두 memory_get_peak_usage (1) 끝과 시작, 메모리 사용의 증가 사이에 ... 내가 또 뭘 모르는 것을 볼 수 있습니다 나는 같은 수준으로 유지하기 위해 노력합니다 ...
어떻게 해결할 수 있습니까?
감사합니다.
감사해야 심포니에서 원시 SQL을 사용하는 방법을 모르는 경우
나는 예를 들어, 그것을 시도하고 당신이 – user3430056
메모리는 여전히 증가하고있다 :) 알려 것이다 I 주의 사항 : foreach artist 214695936 바이트의 RAM을 시작하십시오. foreach 아티스트 214958080 바이트의 RAM. 어떻게 그것이 증가하고있을 수 있습니다 ... 나를 미친 운전,) – user3430056
그것은 PHP 그래서 당신은 예를 들어에서 메모리를 제어 할 필요가 없어. C. 연결 정보, 쿼리, 프레임 워크 변수 등으로 유지되는 변수가있을 수 있습니다. 메모리 사용량과 같은 문제가 있으면 프레임 워크를 사용하지 않아도됩니다. 나에게 보통 Doctrine 수화를 건너 뛰는 것은 로미가'execute (array(), Doctrine_Core :: HYDRATE_NONE)'을 호출하거나 제안 할 때 네이티브 SQL을 사용하여 많은 RAM을 절약하기에 충분했다. –