[erlang-questions] sharing a binary when decoding?

Richard Carlsson carlsson.richard@REDACTED
Fri Feb 3 13:27:32 CET 2012


On 02/03/2012 01:11 PM, Anthony Shipman wrote:
> If I decode a binary B using binary_to_term() and get a result like
> {1, 2,<<"abc">>} is it guaranteed that a binary in the result is a sub-binary
> of B?

I can't see why the language would want to give such a guarantee, since 
that would prevent making more efficient implementation choices in 
certain cases. For example, if the resulting binary is quite short, as 
in your example, it's probably better to just copy the data to a new 
binary. On a 64-bit machine, one could even use an immediate 
representation of a single word for very short binaries, if there is 
room in the tagging scheme. (I don't know if Erts does this already.)

    /Richard



More information about the erlang-questions mailing list