perf(loro-internal): remove quadratic slow paths in text import/checkout#893
Merged
perf(loro-internal): remove quadratic slow paths in text import/checkout#893
Conversation
- Add ASCII/suffix fast paths in InnerListOp::slice to avoid O(n^2) unicode->byte scans - Add ignored perf test reproducing split-suffix slicing pattern
- Batch leaf-split remaps via IdToCursor::update_insert_batch to reduce per-split InsertSet::update churn. - Add InsertSet::update_many fast-path for small fragments (<= MAX_FRAGMENT_LEN) by rebuilding runs from a dense map. - Ignore .trace_analysis/ artifacts.
Contributor
WASM Size Report
|
…text state - Introduced a new method `content_node_len` to retrieve the length of content nodes. - Enhanced the logic for determining when to apply fast updates for plain-text deltas, reducing unnecessary rebuilds. - Improved performance by minimizing BTree mutations during incremental updates.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR fixes two split-heavy performance bottlenecks that could degrade richtext import/checkout to near O(n^2) work.
What changed
updates for larger ones.
Why