-
-
Notifications
You must be signed in to change notification settings - Fork 2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[draft] Benchmark linked list v11 impl #4256
base: v11-benchmark-base
Are you sure you want to change the base?
[draft] Benchmark linked list v11 impl #4256
Commits on Dec 21, 2022
-
Configuration menu - View commit details
-
Copy full SHA for 9e341b6 - Browse repository at this point
Copy the full SHA 9e341b6View commit details
Commits on Jan 2, 2023
-
Implement basic patchChildren using linked list and skewed old head.
- Removed vnode arg to mount - Fixed up mounting with linked list - Use _index property on internal to track null holes in children Co-authored-by: Jovi De Croock <[email protected]> Co-authored-by: Jason Miller <[email protected]> Co-authored-by: Marvin Hagemeister <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for dda7076 - Browse repository at this point
Copy the full SHA dda7076View commit details -
WIP: Switch insertion loop to loop backwards through internal children
After running into problems with the 'should move multiple keyed children to the beginning' test with the previous commit, we are switching our insertion loop to iterate backwards through the internal children to do insertions. In summary: First loop: - find matching internals (using if _prev pointer is set to determine if an internal has been used) - setup _prev pointers to be correct Second loop: - setup _next pointers to be correct - insert or mount dom children (detect if a node was moved by comparing if internal._prev._next == internal) There are still bugs though but above is the general idea we are going for Co-authored-by: Jason Miller <[email protected]> Co-authored-by: Marvin Hagemeister <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 5e6cb22 - Browse repository at this point
Copy the full SHA 5e6cb22View commit details
Commits on Jan 3, 2023
-
WIP: Unmount before inserting and fix up insertion loop
Unmount before inserting means we can use _prev == null to detect internals that need to be unmounted and removes unmounted nodes from the internal children linked list when doing inserts (so all _prev and _next pointers point to internals that will be included) Use `.data` to detect if a component has been mounted or not. Fix up next pointers when mounting or moving internals Co-authored-by: Jason Miller <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 27d57d0 - Browse repository at this point
Copy the full SHA 27d57d0View commit details
Commits on Jan 19, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 31a9967 - Browse repository at this point
Copy the full SHA 31a9967View commit details -
Simplify keys test and focus on only test we currently care about
- Comment out and skip tests we want to currently ignore - Just focus on number of ops for reverse list atm
Configuration menu - View commit details
-
Copy full SHA for 8d138c9 - Browse repository at this point
Copy the full SHA 8d138c9View commit details -
Configuration menu - View commit details
-
Copy full SHA for 02e9046 - Browse repository at this point
Copy the full SHA 02e9046View commit details -
Configuration menu - View commit details
-
Copy full SHA for 07b9f1b - Browse repository at this point
Copy the full SHA 07b9f1bView commit details -
Configuration menu - View commit details
-
Copy full SHA for aa884e2 - Browse repository at this point
Copy the full SHA aa884e2View commit details -
Use a modified LIS algorithm to determine which internals to move
Here I'm using a variant of the longest increasing subsequence algorithm to determine which nodes to move. There are two key differences in my algorithm: 1. I am looping over the nodes in reverse order, so my algorithm is actually a longest decreasing subsequence (LDS) instead of longest increasing subsequence (LIS). 2. I don't use a binary search to insert new nodes into the "wip" LDS array.
Configuration menu - View commit details
-
Copy full SHA for e80c37a - Browse repository at this point
Copy the full SHA e80c37aView commit details -
Configuration menu - View commit details
-
Copy full SHA for c707247 - Browse repository at this point
Copy the full SHA c707247View commit details
Commits on Jan 20, 2023
-
Configuration menu - View commit details
-
Copy full SHA for e04e7e7 - Browse repository at this point
Copy the full SHA e04e7e7View commit details
Commits on Jan 21, 2023
-
Configuration menu - View commit details
-
Copy full SHA for ffb7d52 - Browse repository at this point
Copy the full SHA ffb7d52View commit details
Commits on Jan 22, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 91c8247 - Browse repository at this point
Copy the full SHA 91c8247View commit details -
Eagerly clear _prev to prevent code in mount, patch, or insert from t…
…rying to read it
Configuration menu - View commit details
-
Copy full SHA for 133d09a - Browse repository at this point
Copy the full SHA 133d09aView commit details -
Configuration menu - View commit details
-
Copy full SHA for b0484d0 - Browse repository at this point
Copy the full SHA b0484d0View commit details -
Configuration menu - View commit details
-
Copy full SHA for 14a23f6 - Browse repository at this point
Copy the full SHA 14a23f6View commit details
Commits on Jan 23, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 1337b1d - Browse repository at this point
Copy the full SHA 1337b1dView commit details
Commits on Jan 26, 2023
-
Configuration menu - View commit details
-
Copy full SHA for fce7ce4 - Browse repository at this point
Copy the full SHA fce7ce4View commit details
Commits on Jan 28, 2023
-
Configuration menu - View commit details
-
Copy full SHA for d6bc741 - Browse repository at this point
Copy the full SHA d6bc741View commit details -
Configuration menu - View commit details
-
Copy full SHA for bc4bc4c - Browse repository at this point
Copy the full SHA bc4bc4cView commit details
Commits on Jan 29, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 4bd061b - Browse repository at this point
Copy the full SHA 4bd061bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 7fd9f59 - Browse repository at this point
Copy the full SHA 7fd9f59View commit details
Commits on Jan 30, 2023
-
Configuration menu - View commit details
-
Copy full SHA for d759b08 - Browse repository at this point
Copy the full SHA d759b08View commit details -
Configuration menu - View commit details
-
Copy full SHA for 682399b - Browse repository at this point
Copy the full SHA 682399bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 0576c45 - Browse repository at this point
Copy the full SHA 0576c45View commit details -
Configuration menu - View commit details
-
Copy full SHA for a43e559 - Browse repository at this point
Copy the full SHA a43e559View commit details -
Configuration menu - View commit details
-
Copy full SHA for 4ee0483 - Browse repository at this point
Copy the full SHA 4ee0483View commit details -
Configuration menu - View commit details
-
Copy full SHA for f9aaf2c - Browse repository at this point
Copy the full SHA f9aaf2cView commit details -
Configuration menu - View commit details
-
Copy full SHA for 6ccd7e9 - Browse repository at this point
Copy the full SHA 6ccd7e9View commit details -
Configuration menu - View commit details
-
Copy full SHA for 1e3f694 - Browse repository at this point
Copy the full SHA 1e3f694View commit details
Commits on Jan 31, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 560d403 - Browse repository at this point
Copy the full SHA 560d403View commit details -
Configuration menu - View commit details
-
Copy full SHA for 9fe14d7 - Browse repository at this point
Copy the full SHA 9fe14d7View commit details -
Configuration menu - View commit details
-
Copy full SHA for 1e22b22 - Browse repository at this point
Copy the full SHA 1e22b22View commit details -
Configuration menu - View commit details
-
Copy full SHA for 5db19bd - Browse repository at this point
Copy the full SHA 5db19bdView commit details -
Configuration menu - View commit details
-
Copy full SHA for 6e6a5d6 - Browse repository at this point
Copy the full SHA 6e6a5d6View commit details -
Configuration menu - View commit details
-
Copy full SHA for e3a5320 - Browse repository at this point
Copy the full SHA e3a5320View commit details
Commits on Feb 1, 2023
-
When we are rendering after a hydration that suspended, we need to detect the node that suspended while hydrating and send through the mount code path so it can resume hydration if on this rerender it can resume. Doing this also ensures the suspended hydration flags and state are preserved so additional rerenders have the same behavior.
Configuration menu - View commit details
-
Copy full SHA for 6db4fb6 - Browse repository at this point
Copy the full SHA 6db4fb6View commit details
Commits on Feb 3, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 0a0fa83 - Browse repository at this point
Copy the full SHA 0a0fa83View commit details -
Remove internal check around LDS loop
Instead, check the length of the wipLDS array in the loop body. This change allows us to use the LDS loop to detect portals at the start of the child internal list
Configuration menu - View commit details
-
Copy full SHA for 0d60437 - Browse repository at this point
Copy the full SHA 0d60437View commit details
Commits on Feb 6, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 13ade35 - Browse repository at this point
Copy the full SHA 13ade35View commit details -
Configuration menu - View commit details
-
Copy full SHA for 1970840 - Browse repository at this point
Copy the full SHA 1970840View commit details -
Configuration menu - View commit details
-
Copy full SHA for ef7a9b6 - Browse repository at this point
Copy the full SHA ef7a9b6View commit details -
Configuration menu - View commit details
-
Copy full SHA for a5c25c3 - Browse repository at this point
Copy the full SHA a5c25c3View commit details -
=== BEGIN v11-linked-list-prev-index-nextDom === Use flags to track m…
…atched vs unmatched internals
Configuration menu - View commit details
-
Copy full SHA for b3d8fe7 - Browse repository at this point
Copy the full SHA b3d8fe7View commit details -
Configuration menu - View commit details
-
Copy full SHA for 9f7db6d - Browse repository at this point
Copy the full SHA 9f7db6dView commit details
Commits on Feb 7, 2023
-
WIP: Walk loop forwards and pass along the boundary dom node in patch…
… recursion I focused on the keys, render, fragments, and placholder tests for this commit
Configuration menu - View commit details
-
Copy full SHA for 0354b3d - Browse repository at this point
Copy the full SHA 0354b3dView commit details -
See test "should support moving Fragments between beginning and end" for an example failure this change fixes
Configuration menu - View commit details
-
Copy full SHA for 6be6e89 - Browse repository at this point
Copy the full SHA 6be6e89View commit details -
See test "should insert a portal before new siblings when changing container to match siblings"
Configuration menu - View commit details
-
Copy full SHA for 1b940e6 - Browse repository at this point
Copy the full SHA 1b940e6View commit details -
Configuration menu - View commit details
-
Copy full SHA for cf64778 - Browse repository at this point
Copy the full SHA cf64778View commit details -
Clean up patchChildren implementation
* Remove usages of MODE_UNMOUNTING & MATCHED_INTERNAL * Clean up and improve comments
Configuration menu - View commit details
-
Copy full SHA for c251d82 - Browse repository at this point
Copy the full SHA c251d82View commit details -
Remove _prev and rename _prevLIS to _tempNext...
... since we are reusing it for different purposes in the diff algorithm
Configuration menu - View commit details
-
Copy full SHA for 0e3c34c - Browse repository at this point
Copy the full SHA 0e3c34cView commit details -
Configuration menu - View commit details
-
Copy full SHA for 994b6e3 - Browse repository at this point
Copy the full SHA 994b6e3View commit details -
To fix this I had to teach getDomSibling to skip over nodes marked for insertion, as well as properly handle nodes with no children. See the fragment test "should preserve state when it does not change positions" for a test case that was fixed. Note: This breaks a Portal test when changing a portal from having a different parent to the same parent. Probably need to detect that and set the moved flag to true. Maybe we could detect it in findMatches and set the move flag as well as a PORTAL flag on the internal to speed up similar checks
Configuration menu - View commit details
-
Copy full SHA for b65e1b6 - Browse repository at this point
Copy the full SHA b65e1b6View commit details -
Remove usage of boundary node parameter
Speeds up benchmark perf on many_updates
Configuration menu - View commit details
-
Copy full SHA for fba2129 - Browse repository at this point
Copy the full SHA fba2129View commit details
Commits on Feb 12, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 5c955a1 - Browse repository at this point
Copy the full SHA 5c955a1View commit details
Commits on Feb 13, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 61985ec - Browse repository at this point
Copy the full SHA 61985ecView commit details -
Configuration menu - View commit details
-
Copy full SHA for 72550c4 - Browse repository at this point
Copy the full SHA 72550c4View commit details -
Configuration menu - View commit details
-
Copy full SHA for 869a20b - Browse repository at this point
Copy the full SHA 869a20bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 5de56b0 - Browse repository at this point
Copy the full SHA 5de56b0View commit details
Commits on Feb 17, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 4e9b5e5 - Browse repository at this point
Copy the full SHA 4e9b5e5View commit details -
Inline insertionLoop into patchChildren
Reduces recursion level by 1 function
Configuration menu - View commit details
-
Copy full SHA for a9f0d59 - Browse repository at this point
Copy the full SHA a9f0d59View commit details -
Configuration menu - View commit details
-
Copy full SHA for 51053fb - Browse repository at this point
Copy the full SHA 51053fbView commit details -
Configuration menu - View commit details
-
Copy full SHA for 38bc3f6 - Browse repository at this point
Copy the full SHA 38bc3f6View commit details -
Configuration menu - View commit details
-
Copy full SHA for a5310ad - Browse repository at this point
Copy the full SHA a5310adView commit details
Commits on Feb 18, 2023
-
Move building the key map into its own function to save some bytes
I think this saves bytes cuz the implementation is another "loop over internals" and putting it into its own function gives the core internal variable the same minified name as other functions that also loop over internals.
Configuration menu - View commit details
-
Copy full SHA for d00f85c - Browse repository at this point
Copy the full SHA d00f85cView commit details -
Lots of tests changed cuz we unmount before doing insertions now
Configuration menu - View commit details
-
Copy full SHA for 9e7cac2 - Browse repository at this point
Copy the full SHA 9e7cac2View commit details -
Skip over internals that haven't been mounted yet when searching for …
…DOM nodes Fixes the portal test "should insert a portal before new siblings when changing container to match siblings"
Configuration menu - View commit details
-
Copy full SHA for 2b042c0 - Browse repository at this point
Copy the full SHA 2b042c0View commit details
Commits on Mar 6, 2023
-
Configuration menu - View commit details
-
Copy full SHA for ef08d9b - Browse repository at this point
Copy the full SHA ef08d9bView commit details
Commits on Mar 7, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 77cb172 - Browse repository at this point
Copy the full SHA 77cb172View commit details -
Configuration menu - View commit details
-
Copy full SHA for 1e505c5 - Browse repository at this point
Copy the full SHA 1e505c5View commit details
Commits on Jan 16, 2024
-
Merge branch 'v11-benchmark-base' into v11-linked-list-prev-index-nex…
…tDom-2-benchmark
Configuration menu - View commit details
-
Copy full SHA for ccbaf42 - Browse repository at this point
Copy the full SHA ccbaf42View commit details