Cache'i kapatmayı veya ayarlarını değiştirmeyi denediniz mi ? Sunucunuzda apc veya benzeri bir cache programı kurulumu ?
Bellekten silinemiyorsa, büyük ihtimalle cache kullanılıyordur. Şu ihtimallde olabilir, başka php processleri belleğinizi hemen hemen dolduruyor olabilir. Onuda kontrol edin isterseniz. 2010/12/15 Atıf CEYLAN <[email protected]> > Hocam okudugunuz icerik 100 kb olsa ve surekli append etseniz 200 mb eder. > eger kodun devami vs.. yoksa burada kesinlikle bir buglik durum var > diyebilirim. > > ozelden kodu ve linkleri gonderebilirseniz farkli version phpler var elimde > deneyebilirim. > > On Wed, 15 Dec 2010 10:03:16 +0000 (GMT), Guychmyrat Amanmyradov < > [email protected]> wrote: > > > Merhaba. açıkçası ben de anlamadım. unsetler neden yok etmiyor. Aslında ilk > önce $sonuc = ""; şeklinde denedim ama olmadı. Sonra kesin olsun diye unset > yaptım. Ama bellek her while girişinde şişiyor ve kilitleniyor. > > Problem bir şekilde o değerler bellekten silinememesi. > > $linkObj'de herhangi bişey yok. Hadi olsa bile 250 defa çağırıldığında > belleği doldurması imkansız. Çünkü orada yağtığım işlem şunlar : > > public function removeUndefinedChars($str) > { > $a = array('ò', 'ª', 'º', '—', ' > ', 'Ö', 'Åž', 'ÅŸ', 'ö', 'ü', 'ý', 'ä', 'ň', 'ò', 'à ', 'ç', 'ç', > 'Â', 'ž', 'â€', 'œ'); > $b = array('ň', 'Ş', 'ş', ' ', ' ', 'Ö', 'Ş', 'ş', 'ö', > 'ü', 'ý', 'ä', 'ň', 'ň', 'Ý', 'ç', 'Ç', '', 'ž', '', ''); > > return str_replace($a, $b, $str); > } > > public function convertToDobuleDigit($number) > { > $doubledigitnumbers = array( > '1'=>'01', > '2'=>'02', > '3'=>'03', > '4'=>'04', > '5'=>'05', > '6'=>'06', > '7'=>'07', > '8'=>'08', > '9'=>'09' > ); > > if(in_array($number, $doubledigitnumbers)) > return $doubledigitnumbers[$number]; > else > return $number; > } > > > Ayrıca classın başında bir değişken de tanımlamadım. Problem web sayfaları > okuduğumda haliyle çok veri geliyor ve o verileri bellekten atamaması. > Şimdi başka bir yöntem ile halledeceğim onu. Bir tabloya tüm linkleri yazıp > tek tek çağırma yöntemini kullanmayı düşünüyorum. Böyle bir probleme neden > olan şeyi anlayamadım. > > --- *15/12/10 Çar tarihinde Atıf CEYLAN * şöyle yazıyor: > > > Kimden: Atıf CEYLAN > Konu: [Linux-programlama] Re: PHP bellek kullanımı > Kime: "Özgür yazılımlarla çeşitli dillerde yazılım geliştirme" > Tarihi: 15 Aralık 2010 Çarşamba, 11:49 > > Merhaba, > > hocam baska bir sorun vardir. bir web sayfasinin bellegi tasirabilecek > kadar contenti olmasi cok anlamsiz. > > unset degiskeni yok eder. Yok ederken (bir bag yoksa) datayi da yok etmesi > gerekir. dilerseniz unset yapmayin ve en sondaki unsetleri silip yerine > degiskenleri $sonuc = ""; gibi set edin. halen sorun oluyorsa $linkObj > objenizi kontrol edin. recursive veya static islemler/degiskenler kalmis > olabilir/ > > > > On Wed, 15 Dec 2010 08:37:06 +0000 (GMT), Guychmyrat Amanmyradov wrote: > > 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."; > > > } > > -- > > /** > * *...@author* Atıf CEYLAN > * Software Developer & System Admin > * http://www.atifceylan.com > */ > > > -----Satır İçi Eki Var----- > > _______________________________________________ > Linux-programlama mailing list > [email protected] > https://liste.linux.org.tr/mailman/listinfo/linux-programlama > Liste kurallari: http://liste.linux.org.tr/kurallar.php > > > -- > > /** > * *...@author* Atıf CEYLAN > * Software Developer & System Admin > * http://www.atifceylan.com > */ > > > _______________________________________________ > Linux-programlama mailing list > [email protected] > https://liste.linux.org.tr/mailman/listinfo/linux-programlama > Liste kurallari: http://liste.linux.org.tr/kurallar.php > > -- Onur AKTAŞ Kişisel, http://www.onuraktas.net Blog, http://www.alonon.net
_______________________________________________ Linux-programlama mailing list [email protected] https://liste.linux.org.tr/mailman/listinfo/linux-programlama Liste kurallari: http://liste.linux.org.tr/kurallar.php
