[erlang-questions] sharing a binary when decoding?

Anthony Shipman <>
Fri Feb 3 14:12:01 CET 2012


On Fri, 3 Feb 2012 11:27:32 pm Richard Carlsson wrote:
> 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

What I have in mind will have large binaries that are decoded from socket 
data. I was hoping that this wouldn't duplicate the data.

-- 
Anthony Shipman                    Mamas don't let your babies 
                   grow up to be outsourced.



More information about the erlang-questions mailing list