Merhabalar.
Aşağıdaki gibi kodum var. Yaptığı işlem bir gazeteden sürekli olarak haberleri
çekip belli bir kısmını veritabanına yazmak. Ben değişkenleri while içinde
unset yapıp tekrar oluştursam da sanırım bellekten silmiyor bunu. Haliyle
bellek şişiyor.
Eğer
ini_set('memory_limit', '512M');
kullanırsam 512 dolduruyor ve program duruyor. Bellek doldu diye. Eğer onu
kullanmaz isem bilgisayar kullanılamaz hale geliyor, yani belleği dolduruyor ve
sonra tüm bilgisayar belleği bitince duruyor.
Bunu nasıl kontrol edebilirim acaba?
Şimdiden teşekkürler.
for($i = 1; $i <2000; $i++)
{
$currentLink = "";
$html = "";
$counter = 0;
$result[] = "";
$sonuc = "";
$currentLink =
"http://www.abc.com/?newsId=".$linkObj->convertToDobuleDigit($i);
$html = file_get_html($currentLink);
if ( preg_match("/font class=\"detail-spot\">/i", $html)) {
foreach($html->find('font[class=detail-spot]') as $e)
{
$sonuc .=
preg_replace("/(^[\r\n]*|[\r\n]+)[\s\t]*[\r\n]+/", "\n", $e->innertext);
}
$time = date('y-m-d H:i:s', strtotime("now"));
mysql_query("insert into ztext(content, link, time)
Values('" . $linkObj->removeUndefinedChars( addslashes( $sonuc ) ). "',
'".$currentLink."', '".$time."') ");
echo "yazilanlink : ".$currentLink." \n\t";
}
else
{
$lastlinkok = false;
echo "currentlink : ".$currentLink." \n\t";
}
unset($counter);
unset($currentLink);
unset($html);
unset($sonuc);
echo "---------------------------------------------------";
echo "Using ", memory_get_peak_usage(1), " bytes of ram.";
}
_______________________________________________
Linux-programlama mailing list
[email protected]
https://liste.linux.org.tr/mailman/listinfo/linux-programlama
Liste kurallari: http://liste.linux.org.tr/kurallar.php