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 Linux-programlama@liste.linux.org.tr https://liste.linux.org.tr/mailman/listinfo/linux-programlama Liste kurallari: http://liste.linux.org.tr/kurallar.php