SIGN IN SIGN UP

Optimize construction and insertion of large `SumTree`s (#7731)

This does two things:

1. It optimizes the constructions of `SumTree`s to not insert nodes
one-by-one, but instead inserts them level-by-level. That makes it more
efficient to construct large `SumTree`s.
2. It adds a `from_par_iter` constructor that parallelizes the
construction of `SumTree`s.

In combination, **loading a 500MB plain text file went from from
~18seconds down to ~2seconds**.

Disclaimer: I didn't write any of this code, lol! It's all @as-cii and
@nathansobo.

Release Notes:

- Improved performance when opening very large files.

---------

Co-authored-by: Antonio Scandurra <me@as-cii.com>
Co-authored-by: Julia <julia@zed.dev>
T
Thorsten Ball committed
33f713a8ab89bede6ce6e2c92a29c2f42486fcb5
Parent: 798c9a7
Committed by GitHub <noreply@github.com> on 2/13/2024, 3:24:40 PM