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

feat: publish more methods #334

Merged
merged 2 commits into from
Sep 14, 2023
Merged

Conversation

twoeths
Copy link
Contributor

@twoeths twoeths commented Sep 14, 2023

Motivation

Description

Publish the above methods in ssz

@twoeths twoeths requested a review from a team as a code owner September 14, 2023 07:39
@github-actions github-actions bot added the ssz label Sep 14, 2023
@github-actions
Copy link

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: 73376b4 Previous: 0d60dd0 Ratio
digestTwoHashObjects 50023 times 72.799 ms/op 58.854 ms/op 1.24
digest64 50023 times 80.405 ms/op 60.735 ms/op 1.32
digest 50023 times 79.167 ms/op 60.607 ms/op 1.31
input length 32 1.8510 us/op 1.4560 us/op 1.27
input length 64 2.1480 us/op 1.6070 us/op 1.34
input length 128 3.6170 us/op 2.7690 us/op 1.31
input length 256 5.1730 us/op 4.1530 us/op 1.25
input length 512 8.8900 us/op 6.7790 us/op 1.31
input length 1024 17.148 us/op 13.566 us/op 1.26
digest 1000000 times 1.3254 s/op 1.0475 s/op 1.27
hashObjectToByteArray 50023 times 2.8133 ms/op 2.7317 ms/op 1.03
byteArrayToHashObject 50023 times 3.3445 ms/op 2.7794 ms/op 1.20
getGindicesAtDepth 7.5530 us/op 6.3800 us/op 1.18
iterateAtDepth 15.108 us/op 12.924 us/op 1.17
getGindexBits 766.00 ns/op 578.00 ns/op 1.33
gindexIterator 1.5400 us/op 1.2620 us/op 1.22
hash 2 Uint8Array 2250026 times - as-sha256 3.6389 s/op 2.7744 s/op 1.31
hashTwoObjects 2250026 times - as-sha256 3.4588 s/op 2.6330 s/op 1.31
hash 2 Uint8Array 2250026 times - noble 9.9087 s/op 7.3802 s/op 1.34
hashTwoObjects 2250026 times - noble 13.280 s/op 10.990 s/op 1.21
getNodeH() x7812.5 avg hindex 31.362 us/op 25.865 us/op 1.21
getNodeH() x7812.5 index 0 9.0470 us/op 10.967 us/op 0.82
getNodeH() x7812.5 index 7 8.7890 us/op 10.916 us/op 0.81
getNodeH() x7812.5 index 7 with key array 8.7390 us/op 10.916 us/op 0.80
new LeafNode() x7812.5 382.16 us/op 205.76 us/op 1.86
multiproof - depth 15, 1 requested leaves 18.102 us/op 14.062 us/op 1.29
tree offset multiproof - depth 15, 1 requested leaves 40.453 us/op 30.311 us/op 1.33
compact multiproof - depth 15, 1 requested leaves 11.661 us/op 8.9890 us/op 1.30
multiproof - depth 15, 2 requested leaves 26.328 us/op 20.701 us/op 1.27
tree offset multiproof - depth 15, 2 requested leaves 45.100 us/op 36.363 us/op 1.24
compact multiproof - depth 15, 2 requested leaves 6.6420 us/op 5.0130 us/op 1.32
multiproof - depth 15, 3 requested leaves 33.566 us/op 28.600 us/op 1.17
tree offset multiproof - depth 15, 3 requested leaves 65.428 us/op 48.050 us/op 1.36
compact multiproof - depth 15, 3 requested leaves 13.227 us/op 8.8380 us/op 1.50
multiproof - depth 15, 4 requested leaves 50.457 us/op 38.964 us/op 1.29
tree offset multiproof - depth 15, 4 requested leaves 70.350 us/op 60.504 us/op 1.16
compact multiproof - depth 15, 4 requested leaves 11.882 us/op 9.0360 us/op 1.31
packedRootsBytesToLeafNodes bytes 4000 offset 0 3.9060 us/op 3.5030 us/op 1.12
packedRootsBytesToLeafNodes bytes 4000 offset 1 5.1490 us/op 3.6960 us/op 1.39
packedRootsBytesToLeafNodes bytes 4000 offset 2 4.6530 us/op 3.6020 us/op 1.29
packedRootsBytesToLeafNodes bytes 4000 offset 3 4.6090 us/op 3.4880 us/op 1.32
subtreeFillToContents depth 40 count 250000 94.194 ms/op 75.574 ms/op 1.25
setRoot - gindexBitstring 20.560 ms/op 18.317 ms/op 1.12
setRoot - gindex 20.415 ms/op 18.043 ms/op 1.13
getRoot - gindexBitstring 4.4260 ms/op 4.3758 ms/op 1.01
getRoot - gindex 5.5652 ms/op 4.8038 ms/op 1.16
getHashObject then setHashObject 19.107 ms/op 20.034 ms/op 0.95
setNodeWithFn 16.665 ms/op 17.181 ms/op 0.97
getNodeAtDepth depth 0 x100000 1.9216 ms/op 2.3717 ms/op 0.81
setNodeAtDepth depth 0 x100000 4.5886 ms/op 5.5493 ms/op 0.83
getNodesAtDepth depth 0 x100000 1.7618 ms/op 2.0954 ms/op 0.84
setNodesAtDepth depth 0 x100000 2.4415 ms/op 2.7978 ms/op 0.87
getNodeAtDepth depth 1 x100000 2.1361 ms/op 2.5242 ms/op 0.85
setNodeAtDepth depth 1 x100000 11.198 ms/op 11.255 ms/op 0.99
getNodesAtDepth depth 1 x100000 1.9759 ms/op 2.3685 ms/op 0.83
setNodesAtDepth depth 1 x100000 8.7382 ms/op 9.1750 ms/op 0.95
getNodeAtDepth depth 2 x100000 2.7422 ms/op 3.1983 ms/op 0.86
setNodeAtDepth depth 2 x100000 19.813 ms/op 20.470 ms/op 0.97
getNodesAtDepth depth 2 x100000 36.704 ms/op 32.082 ms/op 1.14
setNodesAtDepth depth 2 x100000 25.866 ms/op 26.741 ms/op 0.97
tree.getNodesAtDepth - gindexes 11.016 ms/op 11.222 ms/op 0.98
tree.getNodesAtDepth - push all nodes 2.9738 ms/op 3.7664 ms/op 0.79
tree.getNodesAtDepth - navigation 209.16 us/op 168.11 us/op 1.24
tree.setNodesAtDepth - indexes 743.66 us/op 708.96 us/op 1.05
set at depth 8 1.1570 us/op 871.00 ns/op 1.33
set at depth 16 1.3750 us/op 1.1570 us/op 1.19
set at depth 32 2.2990 us/op 1.8150 us/op 1.27
iterateNodesAtDepth 8 256 28.543 us/op 25.954 us/op 1.10
getNodesAtDepth 8 256 6.0530 us/op 6.7290 us/op 0.90
iterateNodesAtDepth 16 65536 7.7908 ms/op 7.3223 ms/op 1.06
getNodesAtDepth 16 65536 2.4325 ms/op 3.5054 ms/op 0.69
iterateNodesAtDepth 32 250000 28.873 ms/op 29.904 ms/op 0.97
getNodesAtDepth 32 250000 7.6365 ms/op 8.2248 ms/op 0.93
iterateNodesAtDepth 40 250000 29.572 ms/op 26.374 ms/op 1.12
getNodesAtDepth 40 250000 7.3744 ms/op 7.7910 ms/op 0.95
250k validators 14.304 s/op 11.935 s/op 1.20
bitlist bytes to struct (120,90) 1.2020 us/op 866.00 ns/op 1.39
bitlist bytes to tree (120,90) 4.1160 us/op 4.0240 us/op 1.02
bitlist bytes to struct (2048,2048) 2.0980 us/op 1.9140 us/op 1.10
bitlist bytes to tree (2048,2048) 7.4320 us/op 6.4460 us/op 1.15
ByteListType - deserialize 19.097 ms/op 18.435 ms/op 1.04
BasicListType - deserialize 14.701 ms/op 14.362 ms/op 1.02
ByteListType - serialize 19.631 ms/op 17.715 ms/op 1.11
BasicListType - serialize 21.391 ms/op 20.932 ms/op 1.02
BasicListType - tree_convertToStruct 36.288 ms/op 32.652 ms/op 1.11
List[uint8, 68719476736] len 300000 ViewDU.getAll() + iterate 7.8418 ms/op 6.2392 ms/op 1.26
List[uint8, 68719476736] len 300000 ViewDU.get(i) 6.6950 ms/op 6.7988 ms/op 0.98
Array.push len 300000 empty Array - number 11.613 ms/op 8.6118 ms/op 1.35
Array.set len 300000 from new Array - number 2.7260 ms/op 2.6655 ms/op 1.02
Array.set len 300000 - number 9.9032 ms/op 8.2857 ms/op 1.20
Uint8Array.set len 300000 360.92 us/op 266.81 us/op 1.35
Uint32Array.set len 300000 518.65 us/op 426.34 us/op 1.22
Container({a: uint8, b: uint8}) getViewDU x300000 101.96 ms/op 36.989 ms/op 2.76
ContainerNodeStruct({a: uint8, b: uint8}) getViewDU x300000 22.165 ms/op 13.805 ms/op 1.61
List(Container) len 300000 ViewDU.getAllReadonly() + iterate 731.14 ms/op 379.60 ms/op 1.93
List(Container) len 300000 ViewDU.getAllReadonlyValues() + iterate 636.47 ms/op 443.77 ms/op 1.43
List(Container) len 300000 ViewDU.get(i) 16.414 ms/op 11.832 ms/op 1.39
List(Container) len 300000 ViewDU.getReadonly(i) 15.040 ms/op 11.363 ms/op 1.32
List(ContainerNodeStruct) len 300000 ViewDU.getAllReadonly() + iterate 78.046 ms/op 55.677 ms/op 1.40
List(ContainerNodeStruct) len 300000 ViewDU.getAllReadonlyValues() + iterate 10.628 ms/op 8.4361 ms/op 1.26
List(ContainerNodeStruct) len 300000 ViewDU.get(i) 13.134 ms/op 10.485 ms/op 1.25
List(ContainerNodeStruct) len 300000 ViewDU.getReadonly(i) 12.972 ms/op 9.9499 ms/op 1.30
Array.push len 300000 empty Array - object 10.561 ms/op 8.4152 ms/op 1.26
Array.set len 300000 from new Array - object 3.7094 ms/op 2.8028 ms/op 1.32
Array.set len 300000 - object 11.875 ms/op 8.7698 ms/op 1.35
cachePermanentRootStruct no cache 17.051 us/op 11.941 us/op 1.43
cachePermanentRootStruct with cache 390.00 ns/op 302.00 ns/op 1.29
epochParticipation len 250000 rws 7813 4.5559 ms/op 3.3378 ms/op 1.36
deserialize Attestation - tree 6.2200 us/op 4.2200 us/op 1.47
deserialize Attestation - struct 4.1050 us/op 2.9620 us/op 1.39
deserialize SignedAggregateAndProof - tree 8.2770 us/op 5.4170 us/op 1.53
deserialize SignedAggregateAndProof - struct 6.9660 us/op 4.7420 us/op 1.47
deserialize SyncCommitteeMessage - tree 2.0140 us/op 1.4820 us/op 1.36
deserialize SyncCommitteeMessage - struct 2.4530 us/op 1.8550 us/op 1.32
deserialize SignedContributionAndProof - tree 3.9840 us/op 2.7920 us/op 1.43
deserialize SignedContributionAndProof - struct 5.1740 us/op 4.1220 us/op 1.26
deserialize SignedBeaconBlock - tree 487.56 us/op 325.05 us/op 1.50
deserialize SignedBeaconBlock - struct 285.00 us/op 215.55 us/op 1.32
BeaconState vc 300000 - deserialize tree 1.3107 s/op 1.0236 s/op 1.28
BeaconState vc 300000 - serialize tree 377.40 ms/op 310.79 ms/op 1.21
BeaconState.historicalRoots vc 300000 - deserialize tree 1.4060 us/op 1.2780 us/op 1.10
BeaconState.historicalRoots vc 300000 - serialize tree 1.7060 us/op 1.1770 us/op 1.45
BeaconState.validators vc 300000 - deserialize tree 1.2268 s/op 982.66 ms/op 1.25
BeaconState.validators vc 300000 - serialize tree 310.81 ms/op 274.16 ms/op 1.13
BeaconState.balances vc 300000 - deserialize tree 49.823 ms/op 37.449 ms/op 1.33
BeaconState.balances vc 300000 - serialize tree 5.8594 ms/op 6.5275 ms/op 0.90
BeaconState.previousEpochParticipation vc 300000 - deserialize tree 1.0674 ms/op 812.80 us/op 1.31
BeaconState.previousEpochParticipation vc 300000 - serialize tree 486.81 us/op 487.92 us/op 1.00
BeaconState.currentEpochParticipation vc 300000 - deserialize tree 1.0007 ms/op 776.23 us/op 1.29
BeaconState.currentEpochParticipation vc 300000 - serialize tree 475.51 us/op 480.53 us/op 0.99
BeaconState.inactivityScores vc 300000 - deserialize tree 53.376 ms/op 38.746 ms/op 1.38
BeaconState.inactivityScores vc 300000 - serialize tree 6.7905 ms/op 6.1441 ms/op 1.11
hashTreeRoot Attestation - struct 61.119 us/op 38.403 us/op 1.59
hashTreeRoot Attestation - tree 31.493 us/op 25.506 us/op 1.23
hashTreeRoot SignedAggregateAndProof - struct 76.325 us/op 62.022 us/op 1.23
hashTreeRoot SignedAggregateAndProof - tree 53.523 us/op 34.437 us/op 1.55
hashTreeRoot SyncCommitteeMessage - struct 20.015 us/op 12.877 us/op 1.55
hashTreeRoot SyncCommitteeMessage - tree 12.138 us/op 7.6110 us/op 1.59
hashTreeRoot SignedContributionAndProof - struct 51.472 us/op 36.187 us/op 1.42
hashTreeRoot SignedContributionAndProof - tree 29.587 us/op 24.838 us/op 1.19
hashTreeRoot SignedBeaconBlock - struct 4.2978 ms/op 3.0321 ms/op 1.42
hashTreeRoot SignedBeaconBlock - tree 2.7090 ms/op 2.0427 ms/op 1.33
hashTreeRoot Validator - struct 23.293 us/op 17.489 us/op 1.33
hashTreeRoot Validator - tree 18.874 us/op 14.337 us/op 1.32
BeaconState vc 300000 - hashTreeRoot tree 6.0088 s/op 4.5628 s/op 1.32
BeaconState.historicalRoots vc 300000 - hashTreeRoot tree 2.3190 us/op 1.7590 us/op 1.32
BeaconState.validators vc 300000 - hashTreeRoot tree 5.9386 s/op 4.3048 s/op 1.38
BeaconState.balances vc 300000 - hashTreeRoot tree 134.26 ms/op 111.27 ms/op 1.21
BeaconState.previousEpochParticipation vc 300000 - hashTreeRoot tree 14.361 ms/op 11.129 ms/op 1.29
BeaconState.currentEpochParticipation vc 300000 - hashTreeRoot tree 13.994 ms/op 11.122 ms/op 1.26
BeaconState.inactivityScores vc 300000 - hashTreeRoot tree 130.54 ms/op 111.11 ms/op 1.17
hash64 x18 31.081 us/op 24.860 us/op 1.25
hashTwoObjects x18 29.182 us/op 22.064 us/op 1.32
hash64 x1740 3.1015 ms/op 2.3176 ms/op 1.34
hashTwoObjects x1740 2.7703 ms/op 2.0948 ms/op 1.32
hash64 x2700000 4.7361 s/op 3.6102 s/op 1.31
hashTwoObjects x2700000 4.2221 s/op 3.2600 s/op 1.30
get_exitEpoch - ContainerType 599.00 ns/op 485.00 ns/op 1.24
get_exitEpoch - ContainerNodeStructType 473.00 ns/op 401.00 ns/op 1.18
set_exitEpoch - ContainerType 513.00 ns/op 329.00 ns/op 1.56
set_exitEpoch - ContainerNodeStructType 485.00 ns/op 302.00 ns/op 1.61
get_pubkey - ContainerType 1.9860 us/op 1.5970 us/op 1.24
get_pubkey - ContainerNodeStructType 355.00 ns/op 301.00 ns/op 1.18
hashTreeRoot - ContainerType 585.00 ns/op 514.00 ns/op 1.14
hashTreeRoot - ContainerNodeStructType 693.00 ns/op 567.00 ns/op 1.22
createProof - ContainerType 7.9540 us/op 6.5370 us/op 1.22
createProof - ContainerNodeStructType 45.709 us/op 34.813 us/op 1.31
serialize - ContainerType 3.4530 us/op 2.8360 us/op 1.22
serialize - ContainerNodeStructType 2.8300 us/op 2.2870 us/op 1.24
set_exitEpoch_and_hashTreeRoot - ContainerType 6.8070 us/op 5.3090 us/op 1.28
set_exitEpoch_and_hashTreeRoot - ContainerNodeStructType 20.991 us/op 15.021 us/op 1.40
Array - for of 31.109 us/op 18.121 us/op 1.72
Array - for(;;) 29.044 us/op 16.614 us/op 1.75
basicListValue.readonlyValuesArray() 6.0396 ms/op 5.5566 ms/op 1.09
basicListValue.readonlyValuesArray() + loop all 6.1384 ms/op 5.7519 ms/op 1.07
compositeListValue.readonlyValuesArray() 54.607 ms/op 39.266 ms/op 1.39
compositeListValue.readonlyValuesArray() + loop all 40.715 ms/op 37.952 ms/op 1.07
Number64UintType - get balances list 7.6262 ms/op 6.3842 ms/op 1.19
Number64UintType - set balances list 17.791 ms/op 15.014 ms/op 1.18
Number64UintType - get and increase 10 then set 79.407 ms/op 57.853 ms/op 1.37
Number64UintType - increase 10 using applyDelta 31.196 ms/op 25.661 ms/op 1.22
Number64UintType - increase 10 using applyDeltaInBatch 30.709 ms/op 26.017 ms/op 1.18
tree_newTreeFromUint64Deltas 38.147 ms/op 26.744 ms/op 1.43
unsafeUint8ArrayToTree 56.280 ms/op 52.044 ms/op 1.08
bitLength(50) 359.00 ns/op 313.00 ns/op 1.15
bitLengthStr(50) 426.00 ns/op 372.00 ns/op 1.15
bitLength(8000) 361.00 ns/op 304.00 ns/op 1.19
bitLengthStr(8000) 557.00 ns/op 502.00 ns/op 1.11
bitLength(250000) 360.00 ns/op 302.00 ns/op 1.19
bitLengthStr(250000) 662.00 ns/op 597.00 ns/op 1.11
floor - Math.floor (53) 0.70884 ns/op 0.66978 ns/op 1.06
floor - << 0 (53) 0.70854 ns/op 0.66980 ns/op 1.06
floor - Math.floor (512) 0.70658 ns/op 0.66982 ns/op 1.05
floor - << 0 (512) 0.71136 ns/op 0.66994 ns/op 1.06
fnIf(0) 2.1929 ns/op 3.0126 ns/op 0.73
fnSwitch(0) 3.3197 ns/op 5.0197 ns/op 0.66
fnObj(0) 0.69194 ns/op 0.67002 ns/op 1.03
fnArr(0) 0.71276 ns/op 0.66969 ns/op 1.06
fnIf(4) 3.1498 ns/op 4.3508 ns/op 0.72
fnSwitch(4) 3.3519 ns/op 5.0206 ns/op 0.67
fnObj(4) 0.66899 ns/op 0.66989 ns/op 1.00
fnArr(4) 0.71511 ns/op 0.66979 ns/op 1.07
fnIf(9) 4.3347 ns/op 6.6958 ns/op 0.65
fnSwitch(9) 3.1573 ns/op 5.0227 ns/op 0.63
fnObj(9) 0.67829 ns/op 0.66979 ns/op 1.01
fnArr(9) 0.65768 ns/op 0.66976 ns/op 0.98
Container {a,b,vec} - as struct x100000 70.246 us/op 67.358 us/op 1.04
Container {a,b,vec} - as tree x100000 665.42 us/op 837.04 us/op 0.79
Container {a,vec,b} - as struct x100000 111.65 us/op 100.81 us/op 1.11
Container {a,vec,b} - as tree x100000 760.12 us/op 903.91 us/op 0.84
get 2 props x1000000 - rawObject 390.32 us/op 335.29 us/op 1.16
get 2 props x1000000 - proxy 122.91 ms/op 144.70 ms/op 0.85
get 2 props x1000000 - customObj 386.59 us/op 335.15 us/op 1.15
Simple object binary -> struct 1.2290 us/op 863.00 ns/op 1.42
Simple object binary -> tree_backed 3.2820 us/op 2.3990 us/op 1.37
Simple object struct -> tree_backed 4.6450 us/op 3.1160 us/op 1.49
Simple object tree_backed -> struct 3.7020 us/op 2.6320 us/op 1.41
Simple object struct -> binary 1.7850 us/op 1.4040 us/op 1.27
Simple object tree_backed -> binary 3.1860 us/op 2.4000 us/op 1.33
aggregationBits binary -> struct 964.00 ns/op 760.00 ns/op 1.27
aggregationBits binary -> tree_backed 4.0420 us/op 3.1560 us/op 1.28
aggregationBits struct -> tree_backed 4.8260 us/op 4.0950 us/op 1.18
aggregationBits tree_backed -> struct 2.0080 us/op 1.6950 us/op 1.18
aggregationBits struct -> binary 1.3540 us/op 1.2260 us/op 1.10
aggregationBits tree_backed -> binary 1.7540 us/op 1.4960 us/op 1.17
List(uint8) 100000 binary -> struct 1.8389 ms/op 2.0855 ms/op 0.88
List(uint8) 100000 binary -> tree_backed 235.79 us/op 165.94 us/op 1.42
List(uint8) 100000 struct -> tree_backed 2.2423 ms/op 2.5075 ms/op 0.89
List(uint8) 100000 tree_backed -> struct 1.4995 ms/op 1.6030 ms/op 0.94
List(uint8) 100000 struct -> binary 2.0154 ms/op 2.3056 ms/op 0.87
List(uint8) 100000 tree_backed -> binary 163.84 us/op 148.36 us/op 1.10
List(uint64Number) 100000 binary -> struct 2.0701 ms/op 1.9179 ms/op 1.08
List(uint64Number) 100000 binary -> tree_backed 6.7633 ms/op 5.6722 ms/op 1.19
List(uint64Number) 100000 struct -> tree_backed 9.5577 ms/op 8.7163 ms/op 1.10
List(uint64Number) 100000 tree_backed -> struct 3.7031 ms/op 3.3398 ms/op 1.11
List(uint64Number) 100000 struct -> binary 2.6220 ms/op 2.6761 ms/op 0.98
List(uint64Number) 100000 tree_backed -> binary 1.7173 ms/op 1.5922 ms/op 1.08
List(Uint64Bigint) 100000 binary -> struct 6.6613 ms/op 5.4418 ms/op 1.22
List(Uint64Bigint) 100000 binary -> tree_backed 6.9315 ms/op 5.6915 ms/op 1.22
List(Uint64Bigint) 100000 struct -> tree_backed 10.871 ms/op 8.1273 ms/op 1.34
List(Uint64Bigint) 100000 tree_backed -> struct 7.9529 ms/op 7.2772 ms/op 1.09
List(Uint64Bigint) 100000 struct -> binary 3.4754 ms/op 3.3595 ms/op 1.03
List(Uint64Bigint) 100000 tree_backed -> binary 1.4803 ms/op 1.5219 ms/op 0.97
Vector(Root) 100000 binary -> struct 70.399 ms/op 49.423 ms/op 1.42
Vector(Root) 100000 binary -> tree_backed 72.055 ms/op 57.417 ms/op 1.25
Vector(Root) 100000 struct -> tree_backed 80.360 ms/op 66.494 ms/op 1.21
Vector(Root) 100000 tree_backed -> struct 91.393 ms/op 74.389 ms/op 1.23
Vector(Root) 100000 struct -> binary 3.7219 ms/op 3.5430 ms/op 1.05
Vector(Root) 100000 tree_backed -> binary 14.479 ms/op 14.132 ms/op 1.02
List(Validator) 100000 binary -> struct 229.27 ms/op 192.08 ms/op 1.19
List(Validator) 100000 binary -> tree_backed 649.14 ms/op 484.24 ms/op 1.34
List(Validator) 100000 struct -> tree_backed 694.14 ms/op 551.04 ms/op 1.26
List(Validator) 100000 tree_backed -> struct 389.45 ms/op 304.94 ms/op 1.28
List(Validator) 100000 struct -> binary 58.596 ms/op 51.056 ms/op 1.15
List(Validator) 100000 tree_backed -> binary 173.72 ms/op 134.94 ms/op 1.29
List(Validator-NS) 100000 binary -> struct 259.69 ms/op 203.49 ms/op 1.28
List(Validator-NS) 100000 binary -> tree_backed 333.38 ms/op 273.58 ms/op 1.22
List(Validator-NS) 100000 struct -> tree_backed 421.00 ms/op 341.52 ms/op 1.23
List(Validator-NS) 100000 tree_backed -> struct 350.68 ms/op 284.04 ms/op 1.23
List(Validator-NS) 100000 struct -> binary 55.798 ms/op 51.636 ms/op 1.08
List(Validator-NS) 100000 tree_backed -> binary 67.645 ms/op 57.841 ms/op 1.17
get epochStatuses - MutableVector 160.14 us/op 140.74 us/op 1.14
get epochStatuses - ViewDU 285.74 us/op 293.32 us/op 0.97
set epochStatuses - ListTreeView 2.5680 ms/op 2.1473 ms/op 1.20
set epochStatuses - ListTreeView - set() 653.14 us/op 632.31 us/op 1.03
set epochStatuses - ListTreeView - commit() 683.15 us/op 647.80 us/op 1.05
bitstring 956.21 ns/op 800.75 ns/op 1.19
bit mask 16.626 ns/op 12.899 ns/op 1.29
struct - increase slot to 1000000 3.0907 ms/op 2.1855 ms/op 1.41
UintNumberType - increase slot to 1000000 53.753 ms/op 48.785 ms/op 1.10
UintBigintType - increase slot to 1000000 738.59 ms/op 643.40 ms/op 1.15
UintBigint8 x 100000 tree_deserialize 8.1554 ms/op 6.8770 ms/op 1.19
UintBigint8 x 100000 tree_serialize 2.3804 ms/op 2.2653 ms/op 1.05
UintBigint16 x 100000 tree_deserialize 6.7904 ms/op 6.2761 ms/op 1.08
UintBigint16 x 100000 tree_serialize 2.1675 ms/op 2.2444 ms/op 0.97
UintBigint32 x 100000 tree_deserialize 8.5532 ms/op 8.0848 ms/op 1.06
UintBigint32 x 100000 tree_serialize 2.1391 ms/op 2.1436 ms/op 1.00
UintBigint64 x 100000 tree_deserialize 9.7837 ms/op 8.5868 ms/op 1.14
UintBigint64 x 100000 tree_serialize 2.9528 ms/op 2.9538 ms/op 1.00
UintBigint8 x 100000 value_deserialize 723.01 us/op 870.90 us/op 0.83
UintBigint8 x 100000 value_serialize 1.5137 ms/op 1.3197 ms/op 1.15
UintBigint16 x 100000 value_deserialize 723.22 us/op 932.61 us/op 0.78
UintBigint16 x 100000 value_serialize 1.5516 ms/op 1.3492 ms/op 1.15
UintBigint32 x 100000 value_deserialize 701.94 us/op 837.02 us/op 0.84
UintBigint32 x 100000 value_serialize 1.4871 ms/op 1.3810 ms/op 1.08
UintBigint64 x 100000 value_deserialize 804.24 us/op 956.74 us/op 0.84
UintBigint64 x 100000 value_serialize 1.6888 ms/op 1.7132 ms/op 0.99
UintBigint8 x 100000 deserialize 7.9109 ms/op 6.9238 ms/op 1.14
UintBigint8 x 100000 serialize 2.4451 ms/op 2.6356 ms/op 0.93
UintBigint16 x 100000 deserialize 8.6081 ms/op 6.8312 ms/op 1.26
UintBigint16 x 100000 serialize 2.4305 ms/op 2.6200 ms/op 0.93
UintBigint32 x 100000 deserialize 9.6608 ms/op 8.1666 ms/op 1.18
UintBigint32 x 100000 serialize 4.8932 ms/op 4.5918 ms/op 1.07
UintBigint64 x 100000 deserialize 6.4532 ms/op 5.6472 ms/op 1.14
UintBigint64 x 100000 serialize 2.5127 ms/op 2.7005 ms/op 0.93
UintBigint128 x 100000 deserialize 10.044 ms/op 8.7612 ms/op 1.15
UintBigint128 x 100000 serialize 33.808 ms/op 29.162 ms/op 1.16
UintBigint256 x 100000 deserialize 18.605 ms/op 16.673 ms/op 1.12
UintBigint256 x 100000 serialize 105.28 ms/op 85.641 ms/op 1.23
Slice from Uint8Array x25000 2.1552 ms/op 1.7312 ms/op 1.24
Slice from ArrayBuffer x25000 32.664 ms/op 29.661 ms/op 1.10
Slice from ArrayBuffer x25000 + new Uint8Array 38.287 ms/op 33.770 ms/op 1.13
Copy Uint8Array 100000 iterate 1.1624 ms/op 1.7642 ms/op 0.66
Copy Uint8Array 100000 slice 166.96 us/op 337.72 us/op 0.49
Copy Uint8Array 100000 Uint8Array.prototype.slice.call 167.64 us/op 325.88 us/op 0.51
Copy Buffer 100000 Uint8Array.prototype.slice.call 186.99 us/op 323.83 us/op 0.58
Copy Uint8Array 100000 slice + set 365.61 us/op 575.21 us/op 0.64
Copy Uint8Array 100000 subarray + set 207.31 us/op 335.35 us/op 0.62
Copy Uint8Array 100000 slice arrayBuffer 168.04 us/op 360.84 us/op 0.47
Uint64 deserialize 100000 - iterate Uint8Array 2.7781 ms/op 2.3371 ms/op 1.19
Uint64 deserialize 100000 - by Uint32A 2.6255 ms/op 2.1325 ms/op 1.23
Uint64 deserialize 100000 - by DataView.getUint32 x2 2.6155 ms/op 2.1990 ms/op 1.19
Uint64 deserialize 100000 - by DataView.getBigUint64 8.2651 ms/op 7.1209 ms/op 1.16
Uint64 deserialize 100000 - by byte 69.985 ms/op 69.241 ms/op 1.01

by benchmarkbot/action

Copy link
Member

@matthewkeil matthewkeil left a comment

Choose a reason for hiding this comment

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

LGTM 🚀

@wemeetagain wemeetagain merged commit 947c3e2 into master Sep 14, 2023
8 checks passed
@wemeetagain wemeetagain deleted the tuyen/publish_get_field_ranges branch September 14, 2023 13:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants