[linux-programlama] Re: PHP ve Buyuk bit text dosyasi parsing islemi

---------

From: Enver ALTIN (enver.altin@frontsite.com.tr)
Date: Mon 17 Nov 2003 - 16:42:29 EST

  • Next message: Enver ALTIN: "[linux-programlama] Re: php"

    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/
    

  • Next message: Enver ALTIN: "[linux-programlama] Re: php"

    ---------

    Bu arsiv hypermail 2.1.6 tarafindan uretilmistir.