Yok cache kurmadım ve cachele ilgili hiçbişey yapmadım.

Eğer bellekten değişkenleri silebilirse, cachelik bir problem olucağını 
sanmıyorum. Aslında cachelik bişey göremedim.

Başka php çalıştırmıyorum. Ve her while içinde ram kullanımını kontrol ediyorum 
ve bariz bir şekilde arttığı görünüyor.


--- 15/12/10 Çar tarihinde Onur AKTAŞ <[email protected]> şöyle yazıyor:

Kimden: Onur AKTAŞ <[email protected]>
Konu: [Linux-programlama] Re: Yan: Re: PHP bellek kullanımı
Kime: "Özgür yazılımlarla çeşitli dillerde yazılım geliştirme" 
<[email protected]>
Tarihi: 15 Aralık 2010 Çarşamba, 12:27

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


-----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


_______________________________________________
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