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  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 ATIF 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 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("/(^[rn]*|[rn]+)[st]*[rn]+/", "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." nt";

 }
 else
 {
 $lastlinkok = false;

echo "currentlink : ".$currentLink." nt";
 }

 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
[1]
Liste kurallari: http://liste.linux.org.tr/kurallar.php [2]   

--


/**
 * @AUTHOR Atıf CEYLAN
 * Software Developer & System Admin
 *
http://www.atifceylan.com
 */
 

Links:
------
[1]
https://liste.linux.org.tr/mailman/listinfo/linux-programlama
[2]
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