Pomale fgetc()?

Jan Fuchs fuky na sunstel.asu.cas.cz
Úterý Červenec 28 23:09:52 CEST 2009


Zdravím,
podle mě je to režie zamykání. Zkus použít fgetc_unlocked() a měl by jsi
být +- na stejné rychlosti jako u Tvé implementace. Dělal jsem pokus na
~800MB souboru a výsledky jsou:

     fgetc() ~24s
     fgetc_unlocked() ~8s
     fgc() ~7.4s

         S pozdravem Jan Fuchs

> netusite nekdo, co dela standardni knihovna za kouzla, ze je to tak
> pomale? Kdyz chci zpracovavat soubor po bajtech, (pres fgetc()),
> nactu 360 MB velky soubor za 3.10s user a 0.12s sys. Kdyz misto toho
> fgets() podstrcim svoji trivialni implementaci (zkompilovanou zvlast
> do samostatneho .o, aby to kompilator nezkousel prilis inlinovat
> nebo jinak "nemistne" optimalizovat), je totez za 1.2s user a 0.12s sys.
> Zamozrejme, neni to kompletni implementace (misto statickych
> promennych bych musel mit svoji variantu struktury FILE, ale i tak:

--
/**************************************************************
*   _    Žádný program není bezchybný, dokonalý ani nejlepší, *
*  °v°   to samé platí i o lidech a nejen o nich.             *
* /(_)\                                      -- Jan Fuchs --  *
*  ^ ^                                                        *
*        http://www.fuky.org   Jabber: jan.fuchs.cz na gmail.com *
**************************************************************/


Další informace o konferenci Linux