[erlang-questions] Efficiency of splitting binaries
Wed Oct 24 16:06:33 CEST 2007
Richard Andrews <> writes:
> I'm looking for advice on efficiently splitting a binary into smaller chunks.
> I currently use iolist_size() to check the size of the input binary then
> recursively break off a chunk from the front with something like, eg.
> << ChunkData:30/binary-unit:8, RestData/binary >> = Data
unit:8 is default for binaries, so you don't have to specify it.
> ... then use RestData as input to the next cycle.
> Is this sensible? Are there more efficient approaches?
> What effect does the binary-unit specifier have on performance? eg.
None if both the size and unit are known at compile-time.
If the size is variable, the size and unit values will be multiplied at run-time.
The run-time system may optimize common sizes such as 1 and 8.
I recommend that you don't change the unit size for binaries, but use the
Björn Gustavsson, Erlang/OTP, Ericsson AB
More information about the erlang-questions