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

chore: release master #340

Merged
merged 1 commit into from
Feb 10, 2024
Merged

Conversation

wemeetagain
Copy link
Member

🤖 I have created a release beep boop

ssz: 0.14.1

0.14.1 (2024-02-10)

Bug Fixes

  • relax BitArray#intersectValues types (#339) (9ba2456)

This PR was generated with Release Please. See documentation.

Copy link

Performance Report

✔️ no performance regression detected

🚀🚀 Significant benchmark improvement detected

Benchmark suite Current: 9883d6b Previous: 93ab30e Ratio
getNodeH() x7812.5 avg hindex 14.591 us/op 1.2769 ms/op 0.01
new LeafNode() x7812.5 111.81 us/op 366.90 us/op 0.30
Container({a: uint8, b: uint8}) getViewDU x300000 19.782 ms/op 99.369 ms/op 0.20
BeaconState vc 300000 - serialize tree 112.54 ms/op 367.30 ms/op 0.31
struct - increase slot to 1000000 927.99 us/op 3.1197 ms/op 0.30
Copy Uint8Array 100000 Uint8Array.prototype.slice.call 87.217 us/op 322.71 us/op 0.27
Copy Buffer 100000 Uint8Array.prototype.slice.call 87.617 us/op 420.80 us/op 0.21
Copy Uint8Array 100000 slice + set 160.56 us/op 762.08 us/op 0.21
Copy Uint8Array 100000 subarray + set 86.770 us/op 415.04 us/op 0.21
Copy Uint8Array 100000 slice arrayBuffer 87.820 us/op 437.70 us/op 0.20
Full benchmark results
Benchmark suite Current: 9883d6b Previous: 93ab30e Ratio
digestTwoHashObjects 50023 times 48.379 ms/op 77.736 ms/op 0.62
digest64 50023 times 49.857 ms/op 80.273 ms/op 0.62
digest 50023 times 49.658 ms/op 80.084 ms/op 0.62
input length 32 1.1950 us/op 1.8860 us/op 0.63
input length 64 1.3510 us/op 2.0890 us/op 0.65
input length 128 2.2600 us/op 3.5690 us/op 0.63
input length 256 3.3550 us/op 5.3480 us/op 0.63
input length 512 5.4950 us/op 8.7080 us/op 0.63
input length 1024 10.829 us/op 17.761 us/op 0.61
digest 1000000 times 798.38 ms/op 1.3646 s/op 0.59
hashObjectToByteArray 50023 times 1.4293 ms/op 2.7661 ms/op 0.52
byteArrayToHashObject 50023 times 1.7912 ms/op 3.6089 ms/op 0.50
getGindicesAtDepth 4.4100 us/op 7.1790 us/op 0.61
iterateAtDepth 9.5540 us/op 15.508 us/op 0.62
getGindexBits 477.00 ns/op 690.00 ns/op 0.69
gindexIterator 1.1000 us/op 1.4860 us/op 0.74
hash 2 Uint8Array 2250026 times - as-sha256 2.2641 s/op 3.5565 s/op 0.64
hashTwoObjects 2250026 times - as-sha256 2.1450 s/op 3.3333 s/op 0.64
hash 2 Uint8Array 2250026 times - noble 4.8721 s/op 9.8489 s/op 0.49
hashTwoObjects 2250026 times - noble 6.8356 s/op 12.543 s/op 0.54
getNodeH() x7812.5 avg hindex 14.591 us/op 1.2769 ms/op 0.01
getNodeH() x7812.5 index 0 5.1020 us/op 9.1970 us/op 0.55
getNodeH() x7812.5 index 7 5.0600 us/op 8.1920 us/op 0.62
getNodeH() x7812.5 index 7 with key array 5.1230 us/op 8.1540 us/op 0.63
new LeafNode() x7812.5 111.81 us/op 366.90 us/op 0.30
multiproof - depth 15, 1 requested leaves 9.2990 us/op 17.320 us/op 0.54
tree offset multiproof - depth 15, 1 requested leaves 20.750 us/op 38.051 us/op 0.55
compact multiproof - depth 15, 1 requested leaves 5.4500 us/op 10.558 us/op 0.52
multiproof - depth 15, 2 requested leaves 12.868 us/op 23.424 us/op 0.55
tree offset multiproof - depth 15, 2 requested leaves 23.368 us/op 41.192 us/op 0.57
compact multiproof - depth 15, 2 requested leaves 3.3260 us/op 6.4190 us/op 0.52
multiproof - depth 15, 3 requested leaves 18.088 us/op 31.687 us/op 0.57
tree offset multiproof - depth 15, 3 requested leaves 30.613 us/op 57.318 us/op 0.53
compact multiproof - depth 15, 3 requested leaves 4.4730 us/op 10.429 us/op 0.43
multiproof - depth 15, 4 requested leaves 23.758 us/op 43.026 us/op 0.55
tree offset multiproof - depth 15, 4 requested leaves 37.856 us/op 69.698 us/op 0.54
compact multiproof - depth 15, 4 requested leaves 5.3480 us/op 12.176 us/op 0.44
packedRootsBytesToLeafNodes bytes 4000 offset 0 1.9980 us/op 3.9110 us/op 0.51
packedRootsBytesToLeafNodes bytes 4000 offset 1 1.9660 us/op 3.8410 us/op 0.51
packedRootsBytesToLeafNodes bytes 4000 offset 2 1.9530 us/op 3.9350 us/op 0.50
packedRootsBytesToLeafNodes bytes 4000 offset 3 1.9610 us/op 4.0590 us/op 0.48
subtreeFillToContents depth 40 count 250000 49.075 ms/op 107.79 ms/op 0.46
setRoot - gindexBitstring 8.6879 ms/op 16.654 ms/op 0.52
setRoot - gindex 9.1255 ms/op 19.115 ms/op 0.48
getRoot - gindexBitstring 2.3932 ms/op 4.2727 ms/op 0.56
getRoot - gindex 3.1500 ms/op 5.5907 ms/op 0.56
getHashObject then setHashObject 10.853 ms/op 21.313 ms/op 0.51
setNodeWithFn 9.1582 ms/op 17.625 ms/op 0.52
getNodeAtDepth depth 0 x100000 1.1449 ms/op 1.9777 ms/op 0.58
setNodeAtDepth depth 0 x100000 2.6816 ms/op 4.8319 ms/op 0.55
getNodesAtDepth depth 0 x100000 1.0847 ms/op 1.7399 ms/op 0.62
setNodesAtDepth depth 0 x100000 1.5097 ms/op 2.2933 ms/op 0.66
getNodeAtDepth depth 1 x100000 1.2062 ms/op 1.9680 ms/op 0.61
setNodeAtDepth depth 1 x100000 5.6670 ms/op 10.322 ms/op 0.55
getNodesAtDepth depth 1 x100000 1.2071 ms/op 1.8683 ms/op 0.65
setNodesAtDepth depth 1 x100000 4.6297 ms/op 8.1607 ms/op 0.57
getNodeAtDepth depth 2 x100000 1.4837 ms/op 2.6263 ms/op 0.56
setNodeAtDepth depth 2 x100000 9.7729 ms/op 19.062 ms/op 0.51
getNodesAtDepth depth 2 x100000 21.333 ms/op 34.638 ms/op 0.62
setNodesAtDepth depth 2 x100000 15.917 ms/op 27.830 ms/op 0.57
tree.getNodesAtDepth - gindexes 7.6078 ms/op 8.4481 ms/op 0.90
tree.getNodesAtDepth - push all nodes 2.1038 ms/op 3.0091 ms/op 0.70
tree.getNodesAtDepth - navigation 156.40 us/op 198.33 us/op 0.79
tree.setNodesAtDepth - indexes 368.45 us/op 612.82 us/op 0.60
set at depth 8 509.00 ns/op 951.00 ns/op 0.54
set at depth 16 658.00 ns/op 1.3380 us/op 0.49
set at depth 32 1.0280 us/op 2.0050 us/op 0.51
iterateNodesAtDepth 8 256 13.660 us/op 24.471 us/op 0.56
getNodesAtDepth 8 256 3.3460 us/op 5.8460 us/op 0.57
iterateNodesAtDepth 16 65536 4.1227 ms/op 7.5203 ms/op 0.55
getNodesAtDepth 16 65536 1.9006 ms/op 2.5382 ms/op 0.75
iterateNodesAtDepth 32 250000 15.476 ms/op 28.518 ms/op 0.54
getNodesAtDepth 32 250000 4.5447 ms/op 7.1179 ms/op 0.64
iterateNodesAtDepth 40 250000 15.275 ms/op 27.004 ms/op 0.57
getNodesAtDepth 40 250000 4.5279 ms/op 7.3968 ms/op 0.61
250k validators 7.4406 s/op 13.348 s/op 0.56
bitlist bytes to struct (120,90) 622.00 ns/op 1.1060 us/op 0.56
bitlist bytes to tree (120,90) 2.5030 us/op 4.2590 us/op 0.59
bitlist bytes to struct (2048,2048) 1.0680 us/op 1.9560 us/op 0.55
bitlist bytes to tree (2048,2048) 3.8060 us/op 7.4190 us/op 0.51
ByteListType - deserialize 8.6301 ms/op 18.320 ms/op 0.47
BasicListType - deserialize 9.2936 ms/op 14.349 ms/op 0.65
ByteListType - serialize 8.1160 ms/op 17.992 ms/op 0.45
BasicListType - serialize 10.702 ms/op 21.036 ms/op 0.51
BasicListType - tree_convertToStruct 24.148 ms/op 39.850 ms/op 0.61
List[uint8, 68719476736] len 300000 ViewDU.getAll() + iterate 4.2250 ms/op 7.3504 ms/op 0.57
List[uint8, 68719476736] len 300000 ViewDU.get(i) 4.1365 ms/op 6.7517 ms/op 0.61
Array.push len 300000 empty Array - number 6.1803 ms/op 10.950 ms/op 0.56
Array.set len 300000 from new Array - number 1.5548 ms/op 2.5240 ms/op 0.62
Array.set len 300000 - number 5.1241 ms/op 8.8973 ms/op 0.58
Uint8Array.set len 300000 204.20 us/op 348.57 us/op 0.59
Uint32Array.set len 300000 272.83 us/op 418.02 us/op 0.65
Container({a: uint8, b: uint8}) getViewDU x300000 19.782 ms/op 99.369 ms/op 0.20
ContainerNodeStruct({a: uint8, b: uint8}) getViewDU x300000 9.2553 ms/op 22.769 ms/op 0.41
List(Container) len 300000 ViewDU.getAllReadonly() + iterate 250.19 ms/op 716.64 ms/op 0.35
List(Container) len 300000 ViewDU.getAllReadonlyValues() + iterate 292.92 ms/op 573.44 ms/op 0.51
List(Container) len 300000 ViewDU.get(i) 6.5617 ms/op 12.899 ms/op 0.51
List(Container) len 300000 ViewDU.getReadonly(i) 7.2054 ms/op 12.332 ms/op 0.58
List(ContainerNodeStruct) len 300000 ViewDU.getAllReadonly() + iterate 42.321 ms/op 70.553 ms/op 0.60
List(ContainerNodeStruct) len 300000 ViewDU.getAllReadonlyValues() + iterate 5.2996 ms/op 9.1653 ms/op 0.58
List(ContainerNodeStruct) len 300000 ViewDU.get(i) 6.1150 ms/op 10.409 ms/op 0.59
List(ContainerNodeStruct) len 300000 ViewDU.getReadonly(i) 5.9650 ms/op 10.990 ms/op 0.54
Array.push len 300000 empty Array - object 6.0101 ms/op 10.815 ms/op 0.56
Array.set len 300000 from new Array - object 1.8593 ms/op 3.3966 ms/op 0.55
Array.set len 300000 - object 5.6726 ms/op 9.9895 ms/op 0.57
cachePermanentRootStruct no cache 8.8830 us/op 16.466 us/op 0.54
cachePermanentRootStruct with cache 214.00 ns/op 371.00 ns/op 0.58
epochParticipation len 250000 rws 7813 2.3331 ms/op 4.3912 ms/op 0.53
deserialize Attestation - tree 2.8030 us/op 6.3710 us/op 0.44
deserialize Attestation - struct 1.8750 us/op 4.1660 us/op 0.45
deserialize SignedAggregateAndProof - tree 3.5000 us/op 8.6410 us/op 0.41
deserialize SignedAggregateAndProof - struct 2.9480 us/op 6.3330 us/op 0.47
deserialize SyncCommitteeMessage - tree 1.0830 us/op 1.8900 us/op 0.57
deserialize SyncCommitteeMessage - struct 1.1550 us/op 2.1860 us/op 0.53
deserialize SignedContributionAndProof - tree 1.8790 us/op 3.8440 us/op 0.49
deserialize SignedContributionAndProof - struct 2.3430 us/op 5.4430 us/op 0.43
deserialize SignedBeaconBlock - tree 208.40 us/op 499.58 us/op 0.42
deserialize SignedBeaconBlock - struct 122.63 us/op 279.05 us/op 0.44
BeaconState vc 300000 - deserialize tree 675.15 ms/op 1.2072 s/op 0.56
BeaconState vc 300000 - serialize tree 112.54 ms/op 367.30 ms/op 0.31
BeaconState.historicalRoots vc 300000 - deserialize tree 831.00 ns/op 1.1880 us/op 0.70
BeaconState.historicalRoots vc 300000 - serialize tree 798.00 ns/op 1.5940 us/op 0.50
BeaconState.validators vc 300000 - deserialize tree 631.28 ms/op 1.2360 s/op 0.51
BeaconState.validators vc 300000 - serialize tree 117.48 ms/op 290.77 ms/op 0.40
BeaconState.balances vc 300000 - deserialize tree 23.880 ms/op 49.244 ms/op 0.48
BeaconState.balances vc 300000 - serialize tree 3.1322 ms/op 5.5780 ms/op 0.56
BeaconState.previousEpochParticipation vc 300000 - deserialize tree 388.99 us/op 958.16 us/op 0.41
BeaconState.previousEpochParticipation vc 300000 - serialize tree 268.79 us/op 458.68 us/op 0.59
BeaconState.currentEpochParticipation vc 300000 - deserialize tree 378.92 us/op 950.84 us/op 0.40
BeaconState.currentEpochParticipation vc 300000 - serialize tree 268.59 us/op 487.42 us/op 0.55
BeaconState.inactivityScores vc 300000 - deserialize tree 25.151 ms/op 49.014 ms/op 0.51
BeaconState.inactivityScores vc 300000 - serialize tree 3.2221 ms/op 5.7566 ms/op 0.56
hashTreeRoot Attestation - struct 30.876 us/op 58.186 us/op 0.53
hashTreeRoot Attestation - tree 18.557 us/op 29.190 us/op 0.64
hashTreeRoot SignedAggregateAndProof - struct 41.583 us/op 76.700 us/op 0.54
hashTreeRoot SignedAggregateAndProof - tree 28.208 us/op 51.781 us/op 0.54
hashTreeRoot SyncCommitteeMessage - struct 9.9100 us/op 17.794 us/op 0.56
hashTreeRoot SyncCommitteeMessage - tree 6.2070 us/op 12.005 us/op 0.52
hashTreeRoot SignedContributionAndProof - struct 28.116 us/op 50.868 us/op 0.55
hashTreeRoot SignedContributionAndProof - tree 20.319 us/op 29.269 us/op 0.69
hashTreeRoot SignedBeaconBlock - struct 2.3676 ms/op 4.4560 ms/op 0.53
hashTreeRoot SignedBeaconBlock - tree 1.6787 ms/op 2.6544 ms/op 0.63
hashTreeRoot Validator - struct 12.502 us/op 22.812 us/op 0.55
hashTreeRoot Validator - tree 10.886 us/op 19.539 us/op 0.56
BeaconState vc 300000 - hashTreeRoot tree 3.6169 s/op 5.9103 s/op 0.61
BeaconState.historicalRoots vc 300000 - hashTreeRoot tree 1.4940 us/op 2.3680 us/op 0.63
BeaconState.validators vc 300000 - hashTreeRoot tree 3.4599 s/op 5.6794 s/op 0.61
BeaconState.balances vc 300000 - hashTreeRoot tree 88.325 ms/op 140.91 ms/op 0.63
BeaconState.previousEpochParticipation vc 300000 - hashTreeRoot tree 9.0190 ms/op 14.273 ms/op 0.63
BeaconState.currentEpochParticipation vc 300000 - hashTreeRoot tree 9.0107 ms/op 14.367 ms/op 0.63
BeaconState.inactivityScores vc 300000 - hashTreeRoot tree 83.688 ms/op 142.50 ms/op 0.59
hash64 x18 19.848 us/op 31.820 us/op 0.62
hashTwoObjects x18 17.980 us/op 27.632 us/op 0.65
hash64 x1740 1.8262 ms/op 2.9347 ms/op 0.62
hashTwoObjects x1740 1.7258 ms/op 2.7014 ms/op 0.64
hash64 x2700000 2.8497 s/op 4.5627 s/op 0.62
hashTwoObjects x2700000 2.6532 s/op 4.1799 s/op 0.63
get_exitEpoch - ContainerType 228.00 ns/op 567.00 ns/op 0.40
get_exitEpoch - ContainerNodeStructType 211.00 ns/op 465.00 ns/op 0.45
set_exitEpoch - ContainerType 253.00 ns/op 503.00 ns/op 0.50
set_exitEpoch - ContainerNodeStructType 221.00 ns/op 353.00 ns/op 0.63
get_pubkey - ContainerType 1.0530 us/op 1.8300 us/op 0.58
get_pubkey - ContainerNodeStructType 225.00 ns/op 359.00 ns/op 0.63
hashTreeRoot - ContainerType 392.00 ns/op 568.00 ns/op 0.69
hashTreeRoot - ContainerNodeStructType 437.00 ns/op 713.00 ns/op 0.61
createProof - ContainerType 4.0320 us/op 8.2170 us/op 0.49
createProof - ContainerNodeStructType 21.454 us/op 44.039 us/op 0.49
serialize - ContainerType 2.0130 us/op 3.3340 us/op 0.60
serialize - ContainerNodeStructType 1.5760 us/op 2.7550 us/op 0.57
set_exitEpoch_and_hashTreeRoot - ContainerType 4.0040 us/op 6.8830 us/op 0.58
set_exitEpoch_and_hashTreeRoot - ContainerNodeStructType 11.514 us/op 19.340 us/op 0.60
Array - for of 7.5420 us/op 30.661 us/op 0.25
Array - for(;;) 6.8130 us/op 26.349 us/op 0.26
basicListValue.readonlyValuesArray() 3.8698 ms/op 5.9383 ms/op 0.65
basicListValue.readonlyValuesArray() + loop all 3.9934 ms/op 6.1437 ms/op 0.65
compositeListValue.readonlyValuesArray() 29.285 ms/op 48.726 ms/op 0.60
compositeListValue.readonlyValuesArray() + loop all 25.548 ms/op 46.805 ms/op 0.55
Number64UintType - get balances list 4.1444 ms/op 7.2311 ms/op 0.57
Number64UintType - set balances list 9.5422 ms/op 17.542 ms/op 0.54
Number64UintType - get and increase 10 then set 38.775 ms/op 77.909 ms/op 0.50
Number64UintType - increase 10 using applyDelta 15.506 ms/op 30.333 ms/op 0.51
Number64UintType - increase 10 using applyDeltaInBatch 15.142 ms/op 31.195 ms/op 0.49
tree_newTreeFromUint64Deltas 17.657 ms/op 34.696 ms/op 0.51
unsafeUint8ArrayToTree 30.338 ms/op 56.249 ms/op 0.54
bitLength(50) 232.00 ns/op 362.00 ns/op 0.64
bitLengthStr(50) 234.00 ns/op 431.00 ns/op 0.54
bitLength(8000) 220.00 ns/op 357.00 ns/op 0.62
bitLengthStr(8000) 275.00 ns/op 582.00 ns/op 0.47
bitLength(250000) 222.00 ns/op 368.00 ns/op 0.60
bitLengthStr(250000) 311.00 ns/op 685.00 ns/op 0.45
floor - Math.floor (53) 0.46447 ns/op 0.68434 ns/op 0.68
floor - << 0 (53) 0.46565 ns/op 0.69194 ns/op 0.67
floor - Math.floor (512) 0.46765 ns/op 0.68089 ns/op 0.69
floor - << 0 (512) 0.46386 ns/op 0.68873 ns/op 0.67
fnIf(0) 1.5464 ns/op 2.1342 ns/op 0.72
fnSwitch(0) 2.4744 ns/op 3.3480 ns/op 0.74
fnObj(0) 0.46452 ns/op 0.67376 ns/op 0.69
fnArr(0) 0.46413 ns/op 0.68918 ns/op 0.67
fnIf(4) 2.1655 ns/op 3.1444 ns/op 0.69
fnSwitch(4) 2.5082 ns/op 3.2590 ns/op 0.77
fnObj(4) 0.46527 ns/op 0.67471 ns/op 0.69
fnArr(4) 0.46889 ns/op 0.69428 ns/op 0.68
fnIf(9) 3.0955 ns/op 4.3439 ns/op 0.71
fnSwitch(9) 2.4781 ns/op 3.3944 ns/op 0.73
fnObj(9) 0.46504 ns/op 0.68443 ns/op 0.68
fnArr(9) 0.46467 ns/op 0.68015 ns/op 0.68
Container {a,b,vec} - as struct x100000 46.613 us/op 69.487 us/op 0.67
Container {a,b,vec} - as tree x100000 371.35 us/op 672.84 us/op 0.55
Container {a,vec,b} - as struct x100000 77.485 us/op 105.38 us/op 0.74
Container {a,vec,b} - as tree x100000 402.25 us/op 765.48 us/op 0.53
get 2 props x1000000 - rawObject 309.22 us/op 388.45 us/op 0.80
get 2 props x1000000 - proxy 71.168 ms/op 116.89 ms/op 0.61
get 2 props x1000000 - customObj 310.31 us/op 390.21 us/op 0.80
Simple object binary -> struct 857.00 ns/op 1.3020 us/op 0.66
Simple object binary -> tree_backed 2.2700 us/op 3.2640 us/op 0.70
Simple object struct -> tree_backed 2.9270 us/op 4.6390 us/op 0.63
Simple object tree_backed -> struct 2.4380 us/op 3.7180 us/op 0.66
Simple object struct -> binary 1.1970 us/op 1.8450 us/op 0.65
Simple object tree_backed -> binary 2.1710 us/op 3.3830 us/op 0.64
aggregationBits binary -> struct 828.00 ns/op 1.1270 us/op 0.73
aggregationBits binary -> tree_backed 2.5470 us/op 4.2030 us/op 0.61
aggregationBits struct -> tree_backed 2.9290 us/op 4.9730 us/op 0.59
aggregationBits tree_backed -> struct 1.2680 us/op 1.9800 us/op 0.64
aggregationBits struct -> binary 893.00 ns/op 1.3990 us/op 0.64
aggregationBits tree_backed -> binary 1.1000 us/op 1.7520 us/op 0.63
List(uint8) 100000 binary -> struct 1.2678 ms/op 1.9465 ms/op 0.65
List(uint8) 100000 binary -> tree_backed 84.547 us/op 226.38 us/op 0.37
List(uint8) 100000 struct -> tree_backed 1.3200 ms/op 2.2191 ms/op 0.59
List(uint8) 100000 tree_backed -> struct 951.93 us/op 1.5113 ms/op 0.63
List(uint8) 100000 struct -> binary 1.2226 ms/op 2.0898 ms/op 0.59
List(uint8) 100000 tree_backed -> binary 81.524 us/op 161.39 us/op 0.51
List(uint64Number) 100000 binary -> struct 1.2039 ms/op 2.2212 ms/op 0.54
List(uint64Number) 100000 binary -> tree_backed 3.7163 ms/op 7.1330 ms/op 0.52
List(uint64Number) 100000 struct -> tree_backed 4.8802 ms/op 11.459 ms/op 0.43
List(uint64Number) 100000 tree_backed -> struct 2.1149 ms/op 3.4802 ms/op 0.61
List(uint64Number) 100000 struct -> binary 1.4408 ms/op 2.5311 ms/op 0.57
List(uint64Number) 100000 tree_backed -> binary 822.52 us/op 1.4266 ms/op 0.58
List(Uint64Bigint) 100000 binary -> struct 3.4584 ms/op 6.1954 ms/op 0.56
List(Uint64Bigint) 100000 binary -> tree_backed 3.6886 ms/op 6.9303 ms/op 0.53
List(Uint64Bigint) 100000 struct -> tree_backed 5.7840 ms/op 10.879 ms/op 0.53
List(Uint64Bigint) 100000 tree_backed -> struct 4.4258 ms/op 7.8438 ms/op 0.56
List(Uint64Bigint) 100000 struct -> binary 2.0160 ms/op 3.3000 ms/op 0.61
List(Uint64Bigint) 100000 tree_backed -> binary 749.74 us/op 1.2166 ms/op 0.62
Vector(Root) 100000 binary -> struct 35.150 ms/op 69.217 ms/op 0.51
Vector(Root) 100000 binary -> tree_backed 37.903 ms/op 72.949 ms/op 0.52
Vector(Root) 100000 struct -> tree_backed 37.451 ms/op 84.458 ms/op 0.44
Vector(Root) 100000 tree_backed -> struct 43.937 ms/op 94.108 ms/op 0.47
Vector(Root) 100000 struct -> binary 1.8398 ms/op 3.7477 ms/op 0.49
Vector(Root) 100000 tree_backed -> binary 8.2377 ms/op 15.241 ms/op 0.54
List(Validator) 100000 binary -> struct 127.76 ms/op 228.16 ms/op 0.56
List(Validator) 100000 binary -> tree_backed 326.15 ms/op 667.08 ms/op 0.49
List(Validator) 100000 struct -> tree_backed 341.39 ms/op 701.45 ms/op 0.49
List(Validator) 100000 tree_backed -> struct 193.65 ms/op 394.13 ms/op 0.49
List(Validator) 100000 struct -> binary 29.784 ms/op 55.315 ms/op 0.54
List(Validator) 100000 tree_backed -> binary 94.951 ms/op 173.48 ms/op 0.55
List(Validator-NS) 100000 binary -> struct 118.01 ms/op 254.60 ms/op 0.46
List(Validator-NS) 100000 binary -> tree_backed 179.90 ms/op 346.48 ms/op 0.52
List(Validator-NS) 100000 struct -> tree_backed 217.50 ms/op 412.97 ms/op 0.53
List(Validator-NS) 100000 tree_backed -> struct 173.20 ms/op 352.93 ms/op 0.49
List(Validator-NS) 100000 struct -> binary 30.184 ms/op 58.219 ms/op 0.52
List(Validator-NS) 100000 tree_backed -> binary 35.961 ms/op 67.324 ms/op 0.53
get epochStatuses - MutableVector 95.615 us/op 194.00 us/op 0.49
get epochStatuses - ViewDU 200.51 us/op 283.80 us/op 0.71
set epochStatuses - ListTreeView 1.5519 ms/op 2.4204 ms/op 0.64
set epochStatuses - ListTreeView - set() 429.19 us/op 696.01 us/op 0.62
set epochStatuses - ListTreeView - commit() 401.19 us/op 696.92 us/op 0.58
bitstring 643.76 ns/op 870.54 ns/op 0.74
bit mask 13.806 ns/op 16.171 ns/op 0.85
struct - increase slot to 1000000 927.99 us/op 3.1197 ms/op 0.30
UintNumberType - increase slot to 1000000 28.157 ms/op 50.108 ms/op 0.56
UintBigintType - increase slot to 1000000 422.11 ms/op 742.95 ms/op 0.57
UintBigint8 x 100000 tree_deserialize 3.9206 ms/op 7.2105 ms/op 0.54
UintBigint8 x 100000 tree_serialize 1.1852 ms/op 2.1184 ms/op 0.56
UintBigint16 x 100000 tree_deserialize 4.4543 ms/op 7.2165 ms/op 0.62
UintBigint16 x 100000 tree_serialize 1.1624 ms/op 2.1317 ms/op 0.55
UintBigint32 x 100000 tree_deserialize 4.9415 ms/op 9.3805 ms/op 0.53
UintBigint32 x 100000 tree_serialize 1.2291 ms/op 2.2403 ms/op 0.55
UintBigint64 x 100000 tree_deserialize 5.2655 ms/op 9.7289 ms/op 0.54
UintBigint64 x 100000 tree_serialize 1.6279 ms/op 2.7724 ms/op 0.59
UintBigint8 x 100000 value_deserialize 433.20 us/op 694.80 us/op 0.62
UintBigint8 x 100000 value_serialize 612.07 us/op 1.5971 ms/op 0.38
UintBigint16 x 100000 value_deserialize 464.26 us/op 696.49 us/op 0.67
UintBigint16 x 100000 value_serialize 646.08 us/op 1.6112 ms/op 0.40
UintBigint32 x 100000 value_deserialize 433.07 us/op 700.35 us/op 0.62
UintBigint32 x 100000 value_serialize 645.18 us/op 1.6432 ms/op 0.39
UintBigint64 x 100000 value_deserialize 465.61 us/op 765.00 us/op 0.61
UintBigint64 x 100000 value_serialize 828.04 us/op 1.7961 ms/op 0.46
UintBigint8 x 100000 deserialize 4.8560 ms/op 7.9877 ms/op 0.61
UintBigint8 x 100000 serialize 1.4471 ms/op 2.4504 ms/op 0.59
UintBigint16 x 100000 deserialize 4.7237 ms/op 8.3749 ms/op 0.56
UintBigint16 x 100000 serialize 1.5028 ms/op 2.7444 ms/op 0.55
UintBigint32 x 100000 deserialize 5.6758 ms/op 9.5079 ms/op 0.60
UintBigint32 x 100000 serialize 2.9073 ms/op 4.5931 ms/op 0.63
UintBigint64 x 100000 deserialize 3.8225 ms/op 6.2289 ms/op 0.61
UintBigint64 x 100000 serialize 1.5090 ms/op 2.4042 ms/op 0.63
UintBigint128 x 100000 deserialize 5.9658 ms/op 10.244 ms/op 0.58
UintBigint128 x 100000 serialize 18.007 ms/op 34.102 ms/op 0.53
UintBigint256 x 100000 deserialize 11.490 ms/op 18.303 ms/op 0.63
UintBigint256 x 100000 serialize 51.615 ms/op 105.82 ms/op 0.49
Slice from Uint8Array x25000 973.00 us/op 1.9050 ms/op 0.51
Slice from ArrayBuffer x25000 17.125 ms/op 33.094 ms/op 0.52
Slice from ArrayBuffer x25000 + new Uint8Array 19.457 ms/op 36.703 ms/op 0.53
Copy Uint8Array 100000 iterate 814.11 us/op 1.1367 ms/op 0.72
Copy Uint8Array 100000 slice 87.084 us/op 144.02 us/op 0.60
Copy Uint8Array 100000 Uint8Array.prototype.slice.call 87.217 us/op 322.71 us/op 0.27
Copy Buffer 100000 Uint8Array.prototype.slice.call 87.617 us/op 420.80 us/op 0.21
Copy Uint8Array 100000 slice + set 160.56 us/op 762.08 us/op 0.21
Copy Uint8Array 100000 subarray + set 86.770 us/op 415.04 us/op 0.21
Copy Uint8Array 100000 slice arrayBuffer 87.820 us/op 437.70 us/op 0.20
Uint64 deserialize 100000 - iterate Uint8Array 1.8410 ms/op 2.7068 ms/op 0.68
Uint64 deserialize 100000 - by Uint32A 1.8440 ms/op 2.4316 ms/op 0.76
Uint64 deserialize 100000 - by DataView.getUint32 x2 1.8358 ms/op 2.4497 ms/op 0.75
Uint64 deserialize 100000 - by DataView.getBigUint64 4.9265 ms/op 8.0940 ms/op 0.61
Uint64 deserialize 100000 - by byte 43.457 ms/op 68.528 ms/op 0.63

by benchmarkbot/action

@wemeetagain wemeetagain merged commit 2fd4936 into master Feb 10, 2024
8 checks passed
@wemeetagain wemeetagain deleted the release-please--branches--master branch February 10, 2024 05:02
@wemeetagain
Copy link
Member Author

🤖 Release is at https://github.com/ChainSafe/ssz/releases/tag/ssz-v0.14.1 🌻

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant