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