[Linux-programlama] Re: Allowed Memory Size Of X Bytes Exhausted

---------

[Linux-programlama] Re: Allowed Memory Size Of X Bytes Exhausted

From: Necmettin Begiter <necmettin.begiter_at_gmail.com>
Date: Mon, 25 Feb 2008 10:37:59 +0200
Message-Id: <200802251037.59568.necmettin.begiter@gmail.com>

25 February 2008 Monday 10:25:26 tarihinde Bahri Meric CANLI şunları yazmıştı:
> Merhaba
>
> Kod hakkında malesef detaylı bilgi veremiyorum fakat sonu olan bir döngü
> (döngü sonsuz döngüye vs girmiyor) içerisinde benzer içerikli sayfaları
> parsedip (parsetme işleminin bir bölümününde ereg fonksiyonun
> kullanıyorum ) işlenmek üzere veritabanında yada text dosya da saklıyor.
>
> Liste bazen bir milyon üzerinde url den oluşabilimekte. Hedef sitelerin
> sunucularının yavaşlığı yada fazla yük getirmemek için aralara delay
> serpiştirmek de bazen gerekebilmekte. Bu sebeple kodun çalışma süresi de
> uzamakta (php-cli ile çalışıyor).
>
> Durum kısaca bundan ibaret.

Basit bir örnek vereyim:

pages = array()
addresses = array("bir", "iki", "üç", "dört")
saved = array()
for (i=0;i++;i<len(addresses))
        {
        pages[i] = downloadpage(addresses(array))
        if ("@" in pages[i])
                {
                saved.append(array(addresses[i],pages[i]))
                }

gibi bir betiğin (araya hafif Python karışmış olabilir;) hafızayı doldurması normaldir, tüm sayfaları hafızada tutmaya çalışıyor. Aynı betiği
şöyle yazınca hafıza kullanımı ciddi olarak düşer:

addresses = array("bir", "iki", "üç", "dört")
saved = array()
for (i=0;i++;i<len(addresses))
        {
        ourpage = downloadpage(addresses(array))
        if ("@" in ourpage)
                {
                saved.append(array(addresses[i],ourpage))
                }

Burada saved yerine veritabanı veya bir dosya kullanırsanız daha da düşecektir. Sanırım benzeri bir durum var.
_______________________________________________
Linux-programlama mailing list
Linux-programlama_at_liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama
Received on Mon 25 Feb 2008 - 09:59:14 EET

---------

Bu arsiv hypermail 2.2.0 tarafindan uretilmistir.