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