Internal binary representation

Bjorn Gustavsson bjorn@REDACTED
Sat Mar 4 22:02:09 CET 2000

James Hague <jamesh@REDACTED> writes:

> I've read "Protocol Programming in Erlang Using Binaries," the experimental
> prototype for Erlang's upcoming enhancements to binaries.  In this doc,
> there's an explanation of how binaries are represented internally.  My
> question:  Is this similar to how binaries are currently implemented or
> simply how the prototype worked?

The current implementation (R6B) has only reference-counted binaries,
not the other binaries. We plan to add on-heap binaries and sub-binaries (called
tail-binaries in the protoype) in R7. The segmented binaries we find far
too complicated.

> Mostly, I'm curious how expensive split_binary is.  I know it returns two
> new binaries in addition to the original, but is that done on a logical
> level or does it copy the data?

There is no copying of the binary data itself, but for each
split_binary two instances of an internal structure is built and linked
into a linked list. There will be a slight cost at garbage-collection time
to traverse that list.


Björn Gustavsson            Ericsson Utvecklings AB
bjorn@REDACTED      ÄT2/UAB/F/P
			    BOX 1505
			    125 25 Älvsjö

More information about the erlang-questions mailing list