» »

hitro branje datotek v C-ju...

hitro branje datotek v C-ju...

hatch ::

Dejstvo je, da C na tem podrocju popolnoma odpove...

fread, fscanf in podobna sranja so odurno pocasna. Sam nisem hotel verjeti, da je "fgetc" v zanki po 20x hitrejsi od freada in fscanf, kjer naj bi prebral cel blok naenkrat.

seveda, pa tudi fgetc ni nevemkako hiter.. ce ne zaradi drugega, zato ker je potem potrebno posamezne karakterje zdruziti.

Pac, ker delam neke vrste crc check za file, mora bit stvar izredno hitra...

Zato sem naredil tako...
for(a=0;a fseek(fd, a, SEEK_SET);
fgetc(fd);
hash = hash + hashme(fd->_ptr, hash);
}
fd->_ptr je kazalec na buffer od reada

En problem je... sam fseek ne zapolni bufferja.. da se buffer zapolni je treba nekaj prebrati iz datoteke, zato tisti "fgetc(fd)"..
fflush tudi ne dela...

fgetc ima pa en grd stranski ucinek.. seek prestavi za 1, tako da mi vsakih 512bytov (toliko je dolg buffer), 1 byte spusti.

za info.. sedaj mi dela hash s poljubnim integerjem s priblizno 10MByte/s.. vendar se vedno nisem zadovoljen z rezultatom...

Thomas ::

PowerBasic tukaj zagotovo zmaga nad C++.

O cemer sem govoril v topicu "Kateri jezik za programiranje".
Man muss immer generalisieren - Carl Jacobi


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[c] Enaki datoteki

Oddelek: Programiranje
71028 (888) Spura
»

delo z nizi

Oddelek: Programiranje
162968 (2512) tx-z
»

branje iz datoteke c/c++

Oddelek: Programiranje
101448 (1317) Vesoljc
»

kazalci, funkcije ipd...

Oddelek: Programiranje
71305 (1236) OwcA
»

Collision detection

Oddelek: Programiranje
81915 (1667) Senitel

Več podobnih tem