-
Notifications
You must be signed in to change notification settings - Fork 2
Description
When snoc
ing to a Builder
which has no right node, instead of allocating a new Builder
, we could just mutate the current Builder
’s ArrayBuffer
.
We could also add an effectful preallocate
function which would allow us to grow the Builder
’s ArrayBuffer
in advance of doing a lot of snocing, in the event that we have a good idea of how much snocing we're about to do.
So when we're doing a build which involves a lot of snocs of bytes, then instead of allocating a new ArrayBuffer
for each byte as we do now, we could get close to the ideal performance case of just allocating one ArrayBuffer
and then mutating it. And this would keep the same API, but with addition of a preallocate
function. And we would still get the same performance advantages for doing a subBuilder
with our unbalanced binary tree.