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

Cevap