[erlang-questions] Managing a huge binary file

Magnus Henoch magnus@REDACTED
Tue Apr 30 13:56:38 CEST 2013


Salvador Tamarit <stamarit@REDACTED> writes:

> I have been trying to solve this problem with different solutions, but
> I always get stucked in reading the file. I'm reading it sequentally.
> I open the file with:
>
> file:open(FileName,[binary])
>
> then I read each number with:
>
> file:read(FDevice, 4)
>
> this works fine, but too slow.

Try opening the file with:

file:open(FileName,[binary, raw, read_ahead])

I just wrote a little escript that reads four bytes at a time, and
adding 'raw' and 'read_ahead' seems to make it twice as fast (1.5 s vs 3
s for a 2 MB file).  Interestingly, read_ahead alone didn't make a
difference, and raw alone actually made it slower.

Regards,
Magnus



More information about the erlang-questions mailing list