Skip to content

Improve performance of snoc case by mutating Builder’s ArrayBuffer #4

@jamesdbrock

Description

@jamesdbrock

When snocing 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions