Skip to content
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

Implement RHT.GC #864

Merged
merged 11 commits into from
May 17, 2024
Merged

Implement RHT.GC #864

merged 11 commits into from
May 17, 2024

Conversation

hackerwins
Copy link
Member

@hackerwins hackerwins commented May 14, 2024

What this PR does / why we need it:

Implement RHT.GC

This commit adds GC to RHT data structure. RHT is used in Tree and Text, and when Style methods are executed, values that need to be GC'ed are added to the GC cache. This commit generalizes GC logic by introducing abstract types GCParent and GCChild and managing them flatly from the root.

Which issue(s) this PR fixes:

Address #796

Special notes for your reviewer:

Does this PR introduce a user-facing change?:


Additional documentation:


Checklist:

  • Added relevant tests or not required
  • Didn't break anything

Copy link

codecov bot commented May 14, 2024

Codecov Report

Attention: Patch coverage is 45.38462% with 71 lines in your changes are missing coverage. Please review.

Project coverage is 50.64%. Comparing base (18224f1) to head (ccacc0a).

Current head ccacc0a differs from pull request most recent head 1e5ca67

Please upload reports for the commit 1e5ca67 to get more accurate results.

Files Patch % Lines
pkg/document/crdt/tree.go 36.06% 37 Missing and 2 partials ⚠️
pkg/document/crdt/rht.go 66.66% 16 Missing and 1 partial ⚠️
pkg/document/crdt/root.go 18.75% 12 Missing and 1 partial ⚠️
pkg/document/change/context.go 0.00% 2 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #864      +/-   ##
==========================================
- Coverage   50.81%   50.64%   -0.17%     
==========================================
  Files          70       70              
  Lines       10285    10342      +57     
==========================================
+ Hits         5226     5238      +12     
- Misses       4530     4573      +43     
- Partials      529      531       +2     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Go Benchmark

Benchmark suite Current: 1e5ca67 Previous: 7718986 Ratio
BenchmarkDocument/constructor_test 1434 ns/op 1288 B/op 22 allocs/op 1479 ns/op 1288 B/op 22 allocs/op 0.97
BenchmarkDocument/constructor_test - ns/op 1434 ns/op 1479 ns/op 0.97
BenchmarkDocument/constructor_test - B/op 1288 B/op 1288 B/op 1
BenchmarkDocument/constructor_test - allocs/op 22 allocs/op 22 allocs/op 1
BenchmarkDocument/status_test 899.9 ns/op 1256 B/op 20 allocs/op 896.6 ns/op 1256 B/op 20 allocs/op 1.00
BenchmarkDocument/status_test - ns/op 899.9 ns/op 896.6 ns/op 1.00
BenchmarkDocument/status_test - B/op 1256 B/op 1256 B/op 1
BenchmarkDocument/status_test - allocs/op 20 allocs/op 20 allocs/op 1
BenchmarkDocument/equals_test 8379 ns/op 7233 B/op 128 allocs/op 7628 ns/op 7233 B/op 128 allocs/op 1.10
BenchmarkDocument/equals_test - ns/op 8379 ns/op 7628 ns/op 1.10
BenchmarkDocument/equals_test - B/op 7233 B/op 7233 B/op 1
BenchmarkDocument/equals_test - allocs/op 128 allocs/op 128 allocs/op 1
BenchmarkDocument/nested_update_test 16749 ns/op 12187 B/op 262 allocs/op 16833 ns/op 12186 B/op 262 allocs/op 1.00
BenchmarkDocument/nested_update_test - ns/op 16749 ns/op 16833 ns/op 1.00
BenchmarkDocument/nested_update_test - B/op 12187 B/op 12186 B/op 1.00
BenchmarkDocument/nested_update_test - allocs/op 262 allocs/op 262 allocs/op 1
BenchmarkDocument/delete_test 22691 ns/op 15411 B/op 341 allocs/op 22520 ns/op 15411 B/op 341 allocs/op 1.01
BenchmarkDocument/delete_test - ns/op 22691 ns/op 22520 ns/op 1.01
BenchmarkDocument/delete_test - B/op 15411 B/op 15411 B/op 1
BenchmarkDocument/delete_test - allocs/op 341 allocs/op 341 allocs/op 1
BenchmarkDocument/object_test 8589 ns/op 6881 B/op 120 allocs/op 8568 ns/op 6881 B/op 120 allocs/op 1.00
BenchmarkDocument/object_test - ns/op 8589 ns/op 8568 ns/op 1.00
BenchmarkDocument/object_test - B/op 6881 B/op 6881 B/op 1
BenchmarkDocument/object_test - allocs/op 120 allocs/op 120 allocs/op 1
BenchmarkDocument/array_test 29207 ns/op 12011 B/op 276 allocs/op 33868 ns/op 12011 B/op 276 allocs/op 0.86
BenchmarkDocument/array_test - ns/op 29207 ns/op 33868 ns/op 0.86
BenchmarkDocument/array_test - B/op 12011 B/op 12011 B/op 1
BenchmarkDocument/array_test - allocs/op 276 allocs/op 276 allocs/op 1
BenchmarkDocument/text_test 30828 ns/op 15044 B/op 472 allocs/op 30878 ns/op 15044 B/op 472 allocs/op 1.00
BenchmarkDocument/text_test - ns/op 30828 ns/op 30878 ns/op 1.00
BenchmarkDocument/text_test - B/op 15044 B/op 15044 B/op 1
BenchmarkDocument/text_test - allocs/op 472 allocs/op 472 allocs/op 1
BenchmarkDocument/text_composition_test 29053 ns/op 18556 B/op 481 allocs/op 29428 ns/op 18559 B/op 481 allocs/op 0.99
BenchmarkDocument/text_composition_test - ns/op 29053 ns/op 29428 ns/op 0.99
BenchmarkDocument/text_composition_test - B/op 18556 B/op 18559 B/op 1.00
BenchmarkDocument/text_composition_test - allocs/op 481 allocs/op 481 allocs/op 1
BenchmarkDocument/rich_text_test 80812 ns/op 38804 B/op 1151 allocs/op 80946 ns/op 38805 B/op 1151 allocs/op 1.00
BenchmarkDocument/rich_text_test - ns/op 80812 ns/op 80946 ns/op 1.00
BenchmarkDocument/rich_text_test - B/op 38804 B/op 38805 B/op 1.00
BenchmarkDocument/rich_text_test - allocs/op 1151 allocs/op 1151 allocs/op 1
BenchmarkDocument/counter_test 17431 ns/op 10786 B/op 244 allocs/op 17495 ns/op 10786 B/op 244 allocs/op 1.00
BenchmarkDocument/counter_test - ns/op 17431 ns/op 17495 ns/op 1.00
BenchmarkDocument/counter_test - B/op 10786 B/op 10786 B/op 1
BenchmarkDocument/counter_test - allocs/op 244 allocs/op 244 allocs/op 1
BenchmarkDocument/text_edit_gc_100 2882136 ns/op 1658535 B/op 17096 allocs/op 2905413 ns/op 1658726 B/op 17096 allocs/op 0.99
BenchmarkDocument/text_edit_gc_100 - ns/op 2882136 ns/op 2905413 ns/op 0.99
BenchmarkDocument/text_edit_gc_100 - B/op 1658535 B/op 1658726 B/op 1.00
BenchmarkDocument/text_edit_gc_100 - allocs/op 17096 allocs/op 17096 allocs/op 1
BenchmarkDocument/text_edit_gc_1000 229719621 ns/op 144383990 B/op 200946 allocs/op 230998526 ns/op 144389884 B/op 200973 allocs/op 0.99
BenchmarkDocument/text_edit_gc_1000 - ns/op 229719621 ns/op 230998526 ns/op 0.99
BenchmarkDocument/text_edit_gc_1000 - B/op 144383990 B/op 144389884 B/op 1.00
BenchmarkDocument/text_edit_gc_1000 - allocs/op 200946 allocs/op 200973 allocs/op 1.00
BenchmarkDocument/text_split_gc_100 3399424 ns/op 2317026 B/op 16200 allocs/op 3485324 ns/op 2316783 B/op 16196 allocs/op 0.98
BenchmarkDocument/text_split_gc_100 - ns/op 3399424 ns/op 3485324 ns/op 0.98
BenchmarkDocument/text_split_gc_100 - B/op 2317026 B/op 2316783 B/op 1.00
BenchmarkDocument/text_split_gc_100 - allocs/op 16200 allocs/op 16196 allocs/op 1.00
BenchmarkDocument/text_split_gc_1000 292878534 ns/op 228929788 B/op 203980 allocs/op 297894835 ns/op 228928660 B/op 203984 allocs/op 0.98
BenchmarkDocument/text_split_gc_1000 - ns/op 292878534 ns/op 297894835 ns/op 0.98
BenchmarkDocument/text_split_gc_1000 - B/op 228929788 B/op 228928660 B/op 1.00
BenchmarkDocument/text_split_gc_1000 - allocs/op 203980 allocs/op 203984 allocs/op 1.00
BenchmarkDocument/text_delete_all_10000 10787788 ns/op 5810588 B/op 40675 allocs/op 10997636 ns/op 5810867 B/op 40677 allocs/op 0.98
BenchmarkDocument/text_delete_all_10000 - ns/op 10787788 ns/op 10997636 ns/op 0.98
BenchmarkDocument/text_delete_all_10000 - B/op 5810588 B/op 5810867 B/op 1.00
BenchmarkDocument/text_delete_all_10000 - allocs/op 40675 allocs/op 40677 allocs/op 1.00
BenchmarkDocument/text_delete_all_100000 188330524 ns/op 81909578 B/op 411656 allocs/op 199147401 ns/op 81899712 B/op 411615 allocs/op 0.95
BenchmarkDocument/text_delete_all_100000 - ns/op 188330524 ns/op 199147401 ns/op 0.95
BenchmarkDocument/text_delete_all_100000 - B/op 81909578 B/op 81899712 B/op 1.00
BenchmarkDocument/text_delete_all_100000 - allocs/op 411656 allocs/op 411615 allocs/op 1.00
BenchmarkDocument/text_100 219353 ns/op 120265 B/op 5084 allocs/op 223597 ns/op 120267 B/op 5084 allocs/op 0.98
BenchmarkDocument/text_100 - ns/op 219353 ns/op 223597 ns/op 0.98
BenchmarkDocument/text_100 - B/op 120265 B/op 120267 B/op 1.00
BenchmarkDocument/text_100 - allocs/op 5084 allocs/op 5084 allocs/op 1
BenchmarkDocument/text_1000 2383109 ns/op 1169253 B/op 50088 allocs/op 2403540 ns/op 1169254 B/op 50088 allocs/op 0.99
BenchmarkDocument/text_1000 - ns/op 2383109 ns/op 2403540 ns/op 0.99
BenchmarkDocument/text_1000 - B/op 1169253 B/op 1169254 B/op 1.00
BenchmarkDocument/text_1000 - allocs/op 50088 allocs/op 50088 allocs/op 1
BenchmarkDocument/array_1000 1205638 ns/op 1091410 B/op 11831 allocs/op 1205332 ns/op 1091516 B/op 11832 allocs/op 1.00
BenchmarkDocument/array_1000 - ns/op 1205638 ns/op 1205332 ns/op 1.00
BenchmarkDocument/array_1000 - B/op 1091410 B/op 1091516 B/op 1.00
BenchmarkDocument/array_1000 - allocs/op 11831 allocs/op 11832 allocs/op 1.00
BenchmarkDocument/array_10000 13633010 ns/op 9800051 B/op 120296 allocs/op 13442695 ns/op 9799736 B/op 120296 allocs/op 1.01
BenchmarkDocument/array_10000 - ns/op 13633010 ns/op 13442695 ns/op 1.01
BenchmarkDocument/array_10000 - B/op 9800051 B/op 9799736 B/op 1.00
BenchmarkDocument/array_10000 - allocs/op 120296 allocs/op 120296 allocs/op 1
BenchmarkDocument/array_gc_100 145224 ns/op 132773 B/op 1260 allocs/op 147100 ns/op 132794 B/op 1261 allocs/op 0.99
BenchmarkDocument/array_gc_100 - ns/op 145224 ns/op 147100 ns/op 0.99
BenchmarkDocument/array_gc_100 - B/op 132773 B/op 132794 B/op 1.00
BenchmarkDocument/array_gc_100 - allocs/op 1260 allocs/op 1261 allocs/op 1.00
BenchmarkDocument/array_gc_1000 1382115 ns/op 1159288 B/op 12877 allocs/op 1390848 ns/op 1159211 B/op 12876 allocs/op 0.99
BenchmarkDocument/array_gc_1000 - ns/op 1382115 ns/op 1390848 ns/op 0.99
BenchmarkDocument/array_gc_1000 - B/op 1159288 B/op 1159211 B/op 1.00
BenchmarkDocument/array_gc_1000 - allocs/op 12877 allocs/op 12876 allocs/op 1.00
BenchmarkDocument/counter_1000 197222 ns/op 193142 B/op 5771 allocs/op 198169 ns/op 193142 B/op 5771 allocs/op 1.00
BenchmarkDocument/counter_1000 - ns/op 197222 ns/op 198169 ns/op 1.00
BenchmarkDocument/counter_1000 - B/op 193142 B/op 193142 B/op 1
BenchmarkDocument/counter_1000 - allocs/op 5771 allocs/op 5771 allocs/op 1
BenchmarkDocument/counter_10000 2156645 ns/op 2088055 B/op 59778 allocs/op 2139718 ns/op 2088070 B/op 59778 allocs/op 1.01
BenchmarkDocument/counter_10000 - ns/op 2156645 ns/op 2139718 ns/op 1.01
BenchmarkDocument/counter_10000 - B/op 2088055 B/op 2088070 B/op 1.00
BenchmarkDocument/counter_10000 - allocs/op 59778 allocs/op 59778 allocs/op 1
BenchmarkDocument/object_1000 1365265 ns/op 1428120 B/op 9849 allocs/op 1344201 ns/op 1428108 B/op 9849 allocs/op 1.02
BenchmarkDocument/object_1000 - ns/op 1365265 ns/op 1344201 ns/op 1.02
BenchmarkDocument/object_1000 - B/op 1428120 B/op 1428108 B/op 1.00
BenchmarkDocument/object_1000 - allocs/op 9849 allocs/op 9849 allocs/op 1
BenchmarkDocument/object_10000 15652995 ns/op 12166523 B/op 100564 allocs/op 15329698 ns/op 12165756 B/op 100560 allocs/op 1.02
BenchmarkDocument/object_10000 - ns/op 15652995 ns/op 15329698 ns/op 1.02
BenchmarkDocument/object_10000 - B/op 12166523 B/op 12165756 B/op 1.00
BenchmarkDocument/object_10000 - allocs/op 100564 allocs/op 100560 allocs/op 1.00
BenchmarkDocument/tree_100 1030869 ns/op 943907 B/op 6104 allocs/op 1023529 ns/op 943905 B/op 6104 allocs/op 1.01
BenchmarkDocument/tree_100 - ns/op 1030869 ns/op 1023529 ns/op 1.01
BenchmarkDocument/tree_100 - B/op 943907 B/op 943905 B/op 1.00
BenchmarkDocument/tree_100 - allocs/op 6104 allocs/op 6104 allocs/op 1
BenchmarkDocument/tree_1000 74118153 ns/op 86460620 B/op 60119 allocs/op 72185713 ns/op 86460608 B/op 60118 allocs/op 1.03
BenchmarkDocument/tree_1000 - ns/op 74118153 ns/op 72185713 ns/op 1.03
BenchmarkDocument/tree_1000 - B/op 86460620 B/op 86460608 B/op 1.00
BenchmarkDocument/tree_1000 - allocs/op 60119 allocs/op 60118 allocs/op 1.00
BenchmarkDocument/tree_10000 9406972834 ns/op 8580992896 B/op 600252 allocs/op 9530779861 ns/op 8580979104 B/op 600219 allocs/op 0.99
BenchmarkDocument/tree_10000 - ns/op 9406972834 ns/op 9530779861 ns/op 0.99
BenchmarkDocument/tree_10000 - B/op 8580992896 B/op 8580979104 B/op 1.00
BenchmarkDocument/tree_10000 - allocs/op 600252 allocs/op 600219 allocs/op 1.00
BenchmarkDocument/tree_delete_all_1000 73513024 ns/op 86991132 B/op 67757 allocs/op 73174085 ns/op 86990356 B/op 67753 allocs/op 1.00
BenchmarkDocument/tree_delete_all_1000 - ns/op 73513024 ns/op 73174085 ns/op 1.00
BenchmarkDocument/tree_delete_all_1000 - B/op 86991132 B/op 86990356 B/op 1.00
BenchmarkDocument/tree_delete_all_1000 - allocs/op 67757 allocs/op 67753 allocs/op 1.00
BenchmarkDocument/tree_edit_gc_100 3662817 ns/op 4121229 B/op 14361 allocs/op 3741439 ns/op 4121262 B/op 14361 allocs/op 0.98
BenchmarkDocument/tree_edit_gc_100 - ns/op 3662817 ns/op 3741439 ns/op 0.98
BenchmarkDocument/tree_edit_gc_100 - B/op 4121229 B/op 4121262 B/op 1.00
BenchmarkDocument/tree_edit_gc_100 - allocs/op 14361 allocs/op 14361 allocs/op 1
BenchmarkDocument/tree_edit_gc_1000 295531324 ns/op 383466338 B/op 145413 allocs/op 298533422 ns/op 383465874 B/op 145412 allocs/op 0.99
BenchmarkDocument/tree_edit_gc_1000 - ns/op 295531324 ns/op 298533422 ns/op 0.99
BenchmarkDocument/tree_edit_gc_1000 - B/op 383466338 B/op 383465874 B/op 1.00
BenchmarkDocument/tree_edit_gc_1000 - allocs/op 145413 allocs/op 145412 allocs/op 1.00
BenchmarkDocument/tree_split_gc_100 2477888 ns/op 2387081 B/op 10346 allocs/op 2475547 ns/op 2387081 B/op 10346 allocs/op 1.00
BenchmarkDocument/tree_split_gc_100 - ns/op 2477888 ns/op 2475547 ns/op 1.00
BenchmarkDocument/tree_split_gc_100 - B/op 2387081 B/op 2387081 B/op 1
BenchmarkDocument/tree_split_gc_100 - allocs/op 10346 allocs/op 10346 allocs/op 1
BenchmarkDocument/tree_split_gc_1000 179507440 ns/op 221991108 B/op 112256 allocs/op 185012758 ns/op 221991697 B/op 112263 allocs/op 0.97
BenchmarkDocument/tree_split_gc_1000 - ns/op 179507440 ns/op 185012758 ns/op 0.97
BenchmarkDocument/tree_split_gc_1000 - B/op 221991108 B/op 221991697 B/op 1.00
BenchmarkDocument/tree_split_gc_1000 - allocs/op 112256 allocs/op 112263 allocs/op 1.00
BenchmarkRPC/client_to_server 375753930 ns/op 16817584 B/op 174443 allocs/op 384612633 ns/op 16809112 B/op 174448 allocs/op 0.98
BenchmarkRPC/client_to_server - ns/op 375753930 ns/op 384612633 ns/op 0.98
BenchmarkRPC/client_to_server - B/op 16817584 B/op 16809112 B/op 1.00
BenchmarkRPC/client_to_server - allocs/op 174443 allocs/op 174448 allocs/op 1.00
BenchmarkRPC/client_to_client_via_server 634839773 ns/op 33209448 B/op 319641 allocs/op 639182358 ns/op 32302160 B/op 319147 allocs/op 0.99
BenchmarkRPC/client_to_client_via_server - ns/op 634839773 ns/op 639182358 ns/op 0.99
BenchmarkRPC/client_to_client_via_server - B/op 33209448 B/op 32302160 B/op 1.03
BenchmarkRPC/client_to_client_via_server - allocs/op 319641 allocs/op 319147 allocs/op 1.00
BenchmarkRPC/attach_large_document 1243927638 ns/op 1884999336 B/op 8860 allocs/op 1226130112 ns/op 1884962848 B/op 8864 allocs/op 1.01
BenchmarkRPC/attach_large_document - ns/op 1243927638 ns/op 1226130112 ns/op 1.01
BenchmarkRPC/attach_large_document - B/op 1884999336 B/op 1884962848 B/op 1.00
BenchmarkRPC/attach_large_document - allocs/op 8860 allocs/op 8864 allocs/op 1.00
BenchmarkRPC/adminCli_to_server 548722018 ns/op 35952916 B/op 289534 allocs/op 556883408 ns/op 35948656 B/op 289514 allocs/op 0.99
BenchmarkRPC/adminCli_to_server - ns/op 548722018 ns/op 556883408 ns/op 0.99
BenchmarkRPC/adminCli_to_server - B/op 35952916 B/op 35948656 B/op 1.00
BenchmarkRPC/adminCli_to_server - allocs/op 289534 allocs/op 289514 allocs/op 1.00
BenchmarkLocker 63.02 ns/op 16 B/op 1 allocs/op 63.12 ns/op 16 B/op 1 allocs/op 1.00
BenchmarkLocker - ns/op 63.02 ns/op 63.12 ns/op 1.00
BenchmarkLocker - B/op 16 B/op 16 B/op 1
BenchmarkLocker - allocs/op 1 allocs/op 1 allocs/op 1
BenchmarkLockerParallel 39.07 ns/op 0 B/op 0 allocs/op 39.54 ns/op 0 B/op 0 allocs/op 0.99
BenchmarkLockerParallel - ns/op 39.07 ns/op 39.54 ns/op 0.99
BenchmarkLockerParallel - B/op 0 B/op 0 B/op 1
BenchmarkLockerParallel - allocs/op 0 allocs/op 0 allocs/op 1
BenchmarkLockerMoreKeys 141.3 ns/op 15 B/op 0 allocs/op 148 ns/op 15 B/op 0 allocs/op 0.95
BenchmarkLockerMoreKeys - ns/op 141.3 ns/op 148 ns/op 0.95
BenchmarkLockerMoreKeys - B/op 15 B/op 15 B/op 1
BenchmarkLockerMoreKeys - allocs/op 0 allocs/op 0 allocs/op 1
BenchmarkChange/Push_10_Changes 3910327 ns/op 121547 B/op 1284 allocs/op 3982122 ns/op 121326 B/op 1284 allocs/op 0.98
BenchmarkChange/Push_10_Changes - ns/op 3910327 ns/op 3982122 ns/op 0.98
BenchmarkChange/Push_10_Changes - B/op 121547 B/op 121326 B/op 1.00
BenchmarkChange/Push_10_Changes - allocs/op 1284 allocs/op 1284 allocs/op 1
BenchmarkChange/Push_100_Changes 14666010 ns/op 575348 B/op 6655 allocs/op 15145429 ns/op 573123 B/op 6655 allocs/op 0.97
BenchmarkChange/Push_100_Changes - ns/op 14666010 ns/op 15145429 ns/op 0.97
BenchmarkChange/Push_100_Changes - B/op 575348 B/op 573123 B/op 1.00
BenchmarkChange/Push_100_Changes - allocs/op 6655 allocs/op 6655 allocs/op 1
BenchmarkChange/Push_1000_Changes 118101049 ns/op 5258205 B/op 63149 allocs/op 118932547 ns/op 5288727 B/op 63151 allocs/op 0.99
BenchmarkChange/Push_1000_Changes - ns/op 118101049 ns/op 118932547 ns/op 0.99
BenchmarkChange/Push_1000_Changes - B/op 5258205 B/op 5288727 B/op 0.99
BenchmarkChange/Push_1000_Changes - allocs/op 63149 allocs/op 63151 allocs/op 1.00
BenchmarkChange/Pull_10_Changes 2923757 ns/op 100784 B/op 1004 allocs/op 2962247 ns/op 100767 B/op 1004 allocs/op 0.99
BenchmarkChange/Pull_10_Changes - ns/op 2923757 ns/op 2962247 ns/op 0.99
BenchmarkChange/Pull_10_Changes - B/op 100784 B/op 100767 B/op 1.00
BenchmarkChange/Pull_10_Changes - allocs/op 1004 allocs/op 1004 allocs/op 1
BenchmarkChange/Pull_100_Changes 4378074 ns/op 266182 B/op 3475 allocs/op 4498263 ns/op 265733 B/op 3475 allocs/op 0.97
BenchmarkChange/Pull_100_Changes - ns/op 4378074 ns/op 4498263 ns/op 0.97
BenchmarkChange/Pull_100_Changes - B/op 266182 B/op 265733 B/op 1.00
BenchmarkChange/Pull_100_Changes - allocs/op 3475 allocs/op 3475 allocs/op 1
BenchmarkChange/Pull_1000_Changes 8620804 ns/op 1493136 B/op 29857 allocs/op 9050129 ns/op 1492530 B/op 29854 allocs/op 0.95
BenchmarkChange/Pull_1000_Changes - ns/op 8620804 ns/op 9050129 ns/op 0.95
BenchmarkChange/Pull_1000_Changes - B/op 1493136 B/op 1492530 B/op 1.00
BenchmarkChange/Pull_1000_Changes - allocs/op 29857 allocs/op 29854 allocs/op 1.00
BenchmarkSnapshot/Push_3KB_snapshot 17132929 ns/op 712617 B/op 6654 allocs/op 17216620 ns/op 712152 B/op 6659 allocs/op 1.00
BenchmarkSnapshot/Push_3KB_snapshot - ns/op 17132929 ns/op 17216620 ns/op 1.00
BenchmarkSnapshot/Push_3KB_snapshot - B/op 712617 B/op 712152 B/op 1.00
BenchmarkSnapshot/Push_3KB_snapshot - allocs/op 6654 allocs/op 6659 allocs/op 1.00
BenchmarkSnapshot/Push_30KB_snapshot 121584724 ns/op 5661521 B/op 63159 allocs/op 122366889 ns/op 5586592 B/op 63210 allocs/op 0.99
BenchmarkSnapshot/Push_30KB_snapshot - ns/op 121584724 ns/op 122366889 ns/op 0.99
BenchmarkSnapshot/Push_30KB_snapshot - B/op 5661521 B/op 5586592 B/op 1.01
BenchmarkSnapshot/Push_30KB_snapshot - allocs/op 63159 allocs/op 63210 allocs/op 1.00
BenchmarkSnapshot/Pull_3KB_snapshot 6507129 ns/op 922416 B/op 15513 allocs/op 6583617 ns/op 921476 B/op 15513 allocs/op 0.99
BenchmarkSnapshot/Pull_3KB_snapshot - ns/op 6507129 ns/op 6583617 ns/op 0.99
BenchmarkSnapshot/Pull_3KB_snapshot - B/op 922416 B/op 921476 B/op 1.00
BenchmarkSnapshot/Pull_3KB_snapshot - allocs/op 15513 allocs/op 15513 allocs/op 1
BenchmarkSnapshot/Pull_30KB_snapshot 15529088 ns/op 7163564 B/op 150112 allocs/op 15722751 ns/op 7153059 B/op 150106 allocs/op 0.99
BenchmarkSnapshot/Pull_30KB_snapshot - ns/op 15529088 ns/op 15722751 ns/op 0.99
BenchmarkSnapshot/Pull_30KB_snapshot - B/op 7163564 B/op 7153059 B/op 1.00
BenchmarkSnapshot/Pull_30KB_snapshot - allocs/op 150112 allocs/op 150106 allocs/op 1.00
BenchmarkSync/memory_sync_10_test 6936 ns/op 1286 B/op 38 allocs/op 6920 ns/op 1286 B/op 38 allocs/op 1.00
BenchmarkSync/memory_sync_10_test - ns/op 6936 ns/op 6920 ns/op 1.00
BenchmarkSync/memory_sync_10_test - B/op 1286 B/op 1286 B/op 1
BenchmarkSync/memory_sync_10_test - allocs/op 38 allocs/op 38 allocs/op 1
BenchmarkSync/memory_sync_100_test 50741 ns/op 8649 B/op 273 allocs/op 50245 ns/op 8659 B/op 274 allocs/op 1.01
BenchmarkSync/memory_sync_100_test - ns/op 50741 ns/op 50245 ns/op 1.01
BenchmarkSync/memory_sync_100_test - B/op 8649 B/op 8659 B/op 1.00
BenchmarkSync/memory_sync_100_test - allocs/op 273 allocs/op 274 allocs/op 1.00
BenchmarkSync/memory_sync_1000_test 574935 ns/op 74504 B/op 2129 allocs/op 589667 ns/op 74028 B/op 2101 allocs/op 0.98
BenchmarkSync/memory_sync_1000_test - ns/op 574935 ns/op 589667 ns/op 0.98
BenchmarkSync/memory_sync_1000_test - B/op 74504 B/op 74028 B/op 1.01
BenchmarkSync/memory_sync_1000_test - allocs/op 2129 allocs/op 2101 allocs/op 1.01
BenchmarkSync/memory_sync_10000_test 7172962 ns/op 738851 B/op 20313 allocs/op 7252654 ns/op 738360 B/op 20375 allocs/op 0.99
BenchmarkSync/memory_sync_10000_test - ns/op 7172962 ns/op 7252654 ns/op 0.99
BenchmarkSync/memory_sync_10000_test - B/op 738851 B/op 738360 B/op 1.00
BenchmarkSync/memory_sync_10000_test - allocs/op 20313 allocs/op 20375 allocs/op 1.00
BenchmarkTextEditing 18198394904 ns/op 9041785832 B/op 19922041 allocs/op 18798437870 ns/op 9042073696 B/op 19923682 allocs/op 0.97
BenchmarkTextEditing - ns/op 18198394904 ns/op 18798437870 ns/op 0.97
BenchmarkTextEditing - B/op 9041785832 B/op 9042073696 B/op 1.00
BenchmarkTextEditing - allocs/op 19922041 allocs/op 19923682 allocs/op 1.00

This comment was automatically generated by workflow using github-action-benchmark.

@hackerwins hackerwins changed the title Rht gc2 Implement RHT.GC May 14, 2024
@hackerwins hackerwins marked this pull request as ready for review May 17, 2024 04:48
@hackerwins hackerwins merged commit bd46419 into main May 17, 2024
4 checks passed
@hackerwins hackerwins deleted the rht-gc2 branch May 17, 2024 04:59
hackerwins added a commit that referenced this pull request May 17, 2024
This commit is a follow-up task of #864, applying GCPair for TextNode
and TreeNode. Additionally, when generating a document from the root,
this commit registers GCPair in the cache.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants