in reply to Re^2: Reading binary file performance
in thread Reading binary file performance
Have I fundamentally misunderstood anything
Yes, the three main tricks , but they're not exactly easy to spot unless you're familiar with them :)
1) one single correct unpack call with a clever template is faster than everything else
2) slurping the entire file into one large string is faster than reading byte by byte (its how hard disks work)
3) substr-ing accross a string is faster than chopping a string (or copying a string then chopping it ...
aliasing and/or pass-by-reference is faster than copying
What you did is replace unpack with substr+unpack -- two operations with one -- this will be slower
one of the slow things about your original program is using oct/hex+unpack -- unpack can do most things by itself , see Re: ID3v2 TAG Footer Reading goes wrong (more subs),Re: hex to binary ( UInt32 / Int32 )
reducing the number of calls speeds things up
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^4: Reading binary file performance
by oneill (Initiate) on Mar 27, 2014 at 13:44 UTC |