[Linux-programlama] Re: Yan: Re: Yan: Re: Yan: Re: PHP belle k kullanımı

2010-12-15 Başlik Atıf CEYLAN


Hocam sorun kullandiginiz kodda. 

simple_html_dom.php dosyanizdaki
kodlarda bir appneding islemi var ve sorunu orada aramaniz gerekiyor.


On Wed, 15 Dec 2010 11:05:08 + (GMT), Guychmyrat Amanmyradov 
wrote:  

register_globals = Off

for($iterator =
$arrayObj->getIterator(); $iterator->valid(); $iterator->next())
 {

echo $iterator->key(). ' => ' . $iterator->current() . '
';
 }

şeklinde
çalıştırdığımda 

PHP Catchable fatal error: Object of class ArrayObject
could not be converted to string in

hatası verdi. Ben de


print_r(get_defined_vars());

şeklinde kontrol ettim. Kendi
tanımladığım değişkenlerden büyük veri tutan hiçbirisi yok. 

Gerisi de
PHP nin kendi varsayılan değişkenleri.

--- 15/12/10 ÇAR TARIHINDE NURI
AKMAN __ şöyle yazıyor:

Kimden: Nuri Akman 
Konu: [Linux-programlama]
Re: Yan: Re: Yan: 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,
12:46

Tekrar Merhaba,

 unset satırları ile birlikte bellekte bir şeyin
kalmamasını istiyoruz. unset satırlarının sonuna şu sayfadaki kodu yazıp
bellekte başka ne var kontrolünü
deneyebilirsiniz:

http://www.phpro.org/examples/List-all-variables.html
[1]

 Bir de aklıma RegisterGlobals durumu geliyor. Bu ayar neye set
edilmiş acaba?

 Selamlar

 15.12.2010 12:35, Guychmyrat Amanmyradov
yazmış:  

 unset($counter);
 unset($currentLink);
 unset($html);

unset($sonuc);

 echo $html;

 ekran çıktısı :

 PHP Notice: Undefined
variable: html in /var/www/webreader/zamaninsertdetail.php on line 63

---Using 106954752 bytes
of ram.yazilanlink :
http://www.zamantm.com/tm/newsDetail_getNewsById.action?newsId=18 [2] 

PHP Notice: Undefined variable: html in
/var/www/webreader/zamaninsertdetail.php on line 63

---Using 115343360 bytes
of ram.yazilanlink :
http://www.zamantm.com/tm/newsDetail_getNewsById.action?newsId=19 [3] 

PHP Notice: Undefined variable: html in
/var/www/webreader/zamaninsertdetail.php on line 63

---Using 123994112 bytes
of ram.Segmentation fault

 --- 15/12/10 ÇAR TARIHINDE NURI AKMAN __
şöyle yazıyor:

 Kimden: Nuri Akman 
 Konu: [Linux-programlama] Re: Yan:
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, 12:28

Merhaba,


Unset satırlarıdan sonra bu değişkenlerin değerlerini enrana yazdırıp
silinip silinmediğini kontrol etmeyi denediniz mi acaba?

 Ben, $html
adlı değişkenin değerinin silinemiyor olduğundan şüpheleniyorum.


Selamlar,
 Nuri Akman

 15.12.2010 12:20, Atıf CEYLAN yazmış:  

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 +
(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('ò', 'ª', 'º', '--', '
 ',
'Ã-', 'Åž', 'ÅŸ', 'ö', 'ü', 'ý', 'ä', 'ň', 'ò', 'Ã�', 'ç', 'ç',
'Â', 'ž', 'âEUR', 'œ');
 $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
obj

[Linux-programlama] Re: PHP bellek kullanımı

2010-12-15 Başlik Nuri Akman

Merhaba,

Bişr web sitesindeki linklerin veya belirli bri içeriğin eçkilmesi 
konusunda http://www.jonasjohn.de/lab/htmlsql.htm sayfasındaki örneğe de 
bakabilirsiniz.


Selamlar...

15.12.2010 10:37, Guychmyrat Amanmyradov yazmış:

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


[Linux-programlama] Re: Yan: Re: Yan: Re: PHP bellek kullanı mı

2010-12-15 Başlik Atıf CEYLAN


Hocam sorun unsetle alakali degil. 

simple_html_dom.php 690 satirda
patliyor. tum kodu debug edemedim zamanim yok ancak file_get_html
fonksiyonu icinde create ettiginiz class methodlari patlatiyor. orada
bosaltma islemleri yapmaniz gerekecek. 

On Wed, 15 Dec 2010 10:35:33
+ (GMT), Guychmyrat Amanmyradov  wrote:  

 unset($counter);

unset($currentLink);
 unset($html);
 unset($sonuc);

 echo $html;

ekran
çıktısı :

 PHP Notice: Undefined variable: html in
/var/www/webreader/zamaninsertdetail.php on line
63
---Using 106954752
bytes of ram.yazilanlink :
http://www.zamantm.com/tm/newsDetail_getNewsById.action?newsId=18 
 PHP
Notice: Undefined variable: html in
/var/www/webreader/zamaninsertdetail.php on line
63
---Using 115343360
bytes of ram.yazilanlink :
http://www.zamantm.com/tm/newsDetail_getNewsById.action?newsId=19 
 PHP
Notice: Undefined variable: html in
/var/www/webreader/zamaninsertdetail.php on line
63
---Using 123994112
bytes of ram.Segmentation fault

--- 15/12/10 ÇAR TARIHINDE NURI AKMAN
__ şöyle yazıyor:

Kimden: Nuri Akman 
Konu: [Linux-programlama] Re:
Yan: 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, 12:28

Merhaba,


Unset satırlarıdan sonra bu değişkenlerin değerlerini enrana yazdırıp
silinip silinmediğini kontrol etmeyi denediniz mi acaba?

 Ben, $html
adlı değişkenin değerinin silinemiyor olduğundan şüpheleniyorum.


Selamlar,
 Nuri Akman

 15.12.2010 12:20, Atıf CEYLAN yazmış:  

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 +
(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('ò', 'ª', 'º', '--', '
 ',
'Ã-', 'Åž', 'ÅŸ', 'ö', 'ü', 'ý', 'ä', 'ň', 'ò', 'Ã�', 'ç', 'ç',
'Â', 'ž', 'âEUR', 'œ');
 $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 + (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

[Linux-programlama] Re: Yan: Re: Yan: Re: PHP bellek kullan ımı

2010-12-15 Başlik Nuri Akman

Tekrar Merhaba,

unset satırları ile birlikte bellekte bir şeyin kalmamasını istiyoruz. 
unset satırlarının sonuna şu sayfadaki kodu yazıp bellekte başka ne var 
kontrolünü deneyebilirsiniz:


http://www.phpro.org/examples/List-all-variables.html

Bir de aklıma |RegisterGlobals |durumu geliyor. Bu ayar neye set edilmiş 
acaba?


Selamlar


15.12.2010 12:35, Guychmyrat Amanmyradov yazmış:



   unset($counter);
   unset($currentLink);
   unset($html);
   unset($sonuc);

   echo $html;


ekran çıktısı :


PHP Notice:  Undefined variable: html in 
/var/www/webreader/zamaninsertdetail.php on line 63
---Using 106954752 
bytes of ram.yazilanlink :  
http://www.zamantm.com/tm/newsDetail_getNewsById.action?newsId=18
PHP Notice:  Undefined variable: html in 
/var/www/webreader/zamaninsertdetail.php on line 63
---Using 115343360 
bytes of ram.yazilanlink :  
http://www.zamantm.com/tm/newsDetail_getNewsById.action?newsId=19
PHP Notice:  Undefined variable: html in 
/var/www/webreader/zamaninsertdetail.php on line 63
---Using 123994112 
bytes of ram.Segmentation fault






--- *15/12/10 Çar tarihinde Nuri Akman //* 
şöyle yazıyor:



Kimden: Nuri Akman 
Konu: [Linux-programlama] Re: Yan: 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, 12:28

Merhaba,

Unset satırlarıdan sonra bu değişkenlerin değerlerini enrana
yazdırıp silinip silinmediğini kontrol etmeyi denediniz mi acaba?

Ben, $html adlı değişkenin değerinin silinemiyor olduğundan
şüpheleniyorum.

Selamlar,
Nuri Akman

15.12.2010 12:20, Atıf CEYLAN yazmış:


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 + (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('ò', 'ª', 'º', '---', '
', 'Ã--', 'Åz(', 'ÅY"', 'ö', 'ü', 'ý', 'ä', 'Å^', 'ò',
'Ã?', 'ç', 'ç', 'Â', 'ž', 'âEUR', 'oe');
$b = array('n(', 'Ş', 'ş', ' ', ' ','Ö',  'Ş', 
'ş',   'ö',  'ü',  'y'',  'ä',  'n(',  'n(',  'Y'',   'ç', 'Ç',

'',   'z(',  '',   '');

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 ola

[Linux-programlama] Yan: Re: Yan: Re: PHP bellek kullanım ı

2010-12-15 Başlik Guychmyrat Amanmyradov


   unset($counter);
   unset($currentLink);
   unset($html);
   unset($sonuc);

   echo $html;


ekran çıktısı :


    PHP Notice:  Undefined variable: html in 
/var/www/webreader/zamaninsertdetail.php on line 63
---Using 106954752 bytes of 
ram.yazilanlink :  
http://www.zamantm.com/tm/newsDetail_getNewsById.action?newsId=18 
    PHP Notice:  Undefined variable: html in 
/var/www/webreader/zamaninsertdetail.php on line 63
---Using 115343360 bytes of 
ram.yazilanlink :  
http://www.zamantm.com/tm/newsDetail_getNewsById.action?newsId=19 
    PHP Notice:  Undefined variable: html in 
/var/www/webreader/zamaninsertdetail.php on line 63
---Using 123994112 bytes of 
ram.Segmentation fault





--- 15/12/10 Çar tarihinde Nuri Akman  şöyle yazıyor:

Kimden: Nuri Akman 
Konu: [Linux-programlama] Re: Yan:  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, 12:28



  



  Merhaba,



Unset satırlarıdan sonra bu değişkenlerin değerlerini enrana
yazdırıp silinip silinmediğini kontrol etmeyi denediniz mi acaba?



Ben, $html adlı değişkenin değerinin silinemiyor olduğundan
şüpheleniyorum.



Selamlar,

Nuri Akman



15.12.2010 12:20, Atıf CEYLAN yazmış:

  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 + (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 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:4

[Linux-programlama] Yan: Re: Yan: Re: PHP bellek kullanım ı

2010-12-15 Başlik Guychmyrat Amanmyradov

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Ş  şöyle yazıyor:

Kimden: Onur AKTAŞ 
Konu: [Linux-programlama] Re: Yan: 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, 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 

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 + (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 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 + (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_repla

[Linux-programlama] Re: Yan: Re: PHP bellek kullanımı

2010-12-15 Başlik Nuri Akman

Merhaba,

Unset satırlarıdan sonra bu değişkenlerin değerlerini enrana yazdırıp 
silinip silinmediğini kontrol etmeyi denediniz mi acaba?


Ben, $html adlı değişkenin değerinin silinemiyor olduğundan şüpheleniyorum.

Selamlar,
Nuri Akman

15.12.2010 12:20, Atıf CEYLAN yazmış:


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 + (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('n(', 'Ş', 'ş', ' ', ' ','Ö',  'Ş',  'ş',   
'ö',  'ü',  'y'',  'ä',  'n(',  'n(',  'Y'',   'ç', 'Ç', '',   'z(',  
'',   '');


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 + (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."

[Linux-programlama] Re: Yan: Re: PHP bellek kullanımı

2010-12-15 Başlik Onur AKTAŞ
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 

> 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 + (GMT), Guychmyrat Amanmyradov <
> guychmy...@yahoo.com.tr> 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 + (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";

[Linux-programlama] Re: Yan: Re: PHP bellek kullanımı

2010-12-15 Başlik Atıf CEYLAN


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


[Linux-programlama] Yan: Re: PHP bellek kullanımı

2010-12-15 Başlik Guychmyrat Amanmyradov

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

[Linux-programlama] Re: PHP bellek kullanımı

2010-12-15 Başlik Atıf CEYLAN


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 + (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
 */
 ___
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


[Linux-programlama] PHP bellek kullanımı

2010-12-15 Başlik Guychmyrat Amanmyradov
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