From: Enver ALTIN (enver.altin@frontsite.com.tr)
Date: Mon 17 Nov 2003 - 16:42:29 EST
On Mon, Nov 17, 2003 at 05:21:22PM +0200, Gokhan Geyik wrote:
> On Mon, 2003-11-17 at 17:07, Volkan YAZICI wrote:
> > bence a sikki hiz acisindan daha uygun olacaktir. cunku tek bir seferde
> > veri alinacaktir bellege: alinip, okutulacaktir (bildigim kadari ile).
> > ama ikinci secenekte "alinip, okutulup, silinecektir; alinip, okunup,
> > silinecektir; alinip..." seklinde bayagi bir devam edeceginden...
>
> Evet bu $ekilde du$ununce bu mantik kesinlikle dogru diyor insan.Fakat
> birde $oyle du$unursek.
> Bir butun ekmegi bir anda agzimiza atmakla mi onu yemek daha kolaydir
> yoksa seri bir $ekilde parcalara bolerek mi?
> Gibi bir soru da aklima gelmiyor degil.
PHP ve Perl gibi dillerin bellek yonetimi hayli yavastir, bu gibi
scripting dilleri buyuk verileri yonetmede genellikle basarisizdir.
Dolayisiyla bu kadar buyuk veriyi kucuk bloklar halinde islemek en
dogrusu.
> > zannimca bu yaklasik 250mb'lik dosyayi bir veritabanina aktaracaksiniz
> > cunku kimse bu kadar veriyi bir text dosyasinda tutmaz herhalde. neyse
> > konu bu degil
> Bu kocaman veriden topu topu birkac KB'lik bir veri veritabanina
> gidiyor.Onun di$indakiler gereksiz.
Bu parsing islemini 1 defaya mahsus olarak gerceklestirmek istiyor ve
PHP'nin 30 saniye veya 8MB bellek sinirina takiliyorsaniz, php'yi komut
satirinda kullanmayi deneyin:
php -q myscript.php
Ama surekli olarak bu buyuk veri degisiyor ve tekrar tekrar parse
edilmesi gerekiyorsa Perl veya PHP veya Python umud ettiginiz
performansi veremeyebilir, ne gibi bir parsing islemi de yaptiginiza
bagli olarak.
> Fakat deneyince hepsinin yava$ kaldigini goruyorum.Sanirim C
> denemeliyim.
> Fakat koca bir text icin hangi dil yeterince hizli olur bilemiyorum.
PHP ile olabildigince basit bir script yazip, ornegin:
<?
$fp=fopen("dosya", "r");
while ($r=fgets($fp))
; // Do nothing
fclose($fp);
?>
gibi birseyle sureyi olcun, ondan sonra araya string parsing kodunuzu da
ekleyip tekrar test edin. Yavasligin nereden kaynaklandigini bulmakta
faydali olabilir.
-HTH
-- __________ | | | | Enver ALTIN (a.k.a. skyblue) | | Software developer, IT consultant | FRONT | |==========| FrontSITE Bilgi Teknolojisi A.S. |_____SITE_| http://www.frontsite.com.tr/