Skip to content

Conversation

@wemeetagain
Copy link
Member

@wemeetagain wemeetagain commented Mar 13, 2025

🤖 I have created a release beep boop

ssz: 1.2.0

1.2.0 (2025-03-13)

Features


This PR was generated with Release Please. See documentation.

@wemeetagain wemeetagain requested a review from a team as a code owner March 13, 2025 15:07
@github-actions github-actions bot added the ssz label Mar 13, 2025
@github-actions
Copy link

github-actions bot commented Mar 13, 2025

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: fe2f69b Previous: 9432799 Ratio
digestTwoHashObjects 50023 times 48.305 ms/op 48.190 ms/op 1.00
digest2Bytes32 50023 times 54.694 ms/op 54.982 ms/op 0.99
digest 50023 times 53.420 ms/op 53.426 ms/op 1.00
input length 32 1.1810 us/op 1.1950 us/op 0.99
input length 64 1.3090 us/op 1.3270 us/op 0.99
input length 128 2.2750 us/op 2.3020 us/op 0.99
input length 256 3.3660 us/op 3.4080 us/op 0.99
input length 512 5.5150 us/op 5.6030 us/op 0.98
input length 1024 10.673 us/op 10.697 us/op 1.00
digest 1000000 times 849.62 ms/op 866.85 ms/op 0.98
hashObjectToByteArray 50023 times 1.2317 ms/op 1.2298 ms/op 1.00
byteArrayToHashObject 50023 times 1.5490 ms/op 1.5267 ms/op 1.01
digest64 200092 times 214.37 ms/op 213.60 ms/op 1.00
hash 200092 times using batchHash4UintArray64s 233.06 ms/op 235.27 ms/op 0.99
digest64HashObjects 200092 times 195.23 ms/op 193.65 ms/op 1.01
hash 200092 times using batchHash4HashObjectInputs 196.78 ms/op 204.89 ms/op 0.96
getGindicesAtDepth 3.5470 us/op 3.4400 us/op 1.03
iterateAtDepth 6.6900 us/op 6.3190 us/op 1.06
getGindexBits 402.00 ns/op 376.00 ns/op 1.07
gindexIterator 903.00 ns/op 838.00 ns/op 1.08
HashComputationLevel.push then loop 29.121 ms/op 27.475 ms/op 1.06
HashComputation[] push then loop 48.015 ms/op 47.266 ms/op 1.02
hash 2 Uint8Array 500000 times - hashtree 223.43 ms/op 214.31 ms/op 1.04
hashTwoObjects 500000 times - hashtree 214.15 ms/op 215.65 ms/op 0.99
executeHashComputations - hashtree 10.073 ms/op 9.6212 ms/op 1.05
hash 2 Uint8Array 500000 times - as-sha256 567.69 ms/op 563.46 ms/op 1.01
hashTwoObjects 500000 times - as-sha256 507.64 ms/op 514.70 ms/op 0.99
executeHashComputations - as-sha256 47.602 ms/op 45.409 ms/op 1.05
hash 2 Uint8Array 500000 times - noble 1.2390 s/op 1.2306 s/op 1.01
hashTwoObjects 500000 times - noble 1.6176 s/op 1.6710 s/op 0.97
executeHashComputations - noble 36.472 ms/op 36.372 ms/op 1.00
getHashComputations 2.2012 ms/op 2.2012 ms/op 1.00
executeHashComputations 9.6965 ms/op 11.167 ms/op 0.87
get root 15.428 ms/op 15.722 ms/op 0.98
getNodeH() x7812.5 avg hindex 12.349 us/op 12.393 us/op 1.00
getNodeH() x7812.5 index 0 7.4720 us/op 7.5620 us/op 0.99
getNodeH() x7812.5 index 7 7.4840 us/op 7.4770 us/op 1.00
getNodeH() x7812.5 index 7 with key array 6.3630 us/op 6.3700 us/op 1.00
new LeafNode() x7812.5 289.62 us/op 310.69 us/op 0.93
getHashComputations 250000 nodes 14.536 ms/op 16.562 ms/op 0.88
batchHash 250000 nodes 81.846 ms/op 85.454 ms/op 0.96
get root 250000 nodes 119.31 ms/op 118.71 ms/op 1.01
getHashComputations 500000 nodes 39.519 ms/op 41.234 ms/op 0.96
batchHash 500000 nodes 149.07 ms/op 155.25 ms/op 0.96
get root 500000 nodes 231.84 ms/op 236.96 ms/op 0.98
getHashComputations 1000000 nodes 66.358 ms/op 62.412 ms/op 1.06
batchHash 1000000 nodes 359.03 ms/op 322.80 ms/op 1.11
get root 1000000 nodes 458.06 ms/op 476.06 ms/op 0.96
multiproof - depth 15, 1 requested leaves 8.4650 us/op 8.7750 us/op 0.96
tree offset multiproof - depth 15, 1 requested leaves 18.004 us/op 19.158 us/op 0.94
compact multiproof - depth 15, 1 requested leaves 3.1740 us/op 3.2240 us/op 0.98
multiproof - depth 15, 2 requested leaves 12.102 us/op 12.922 us/op 0.94
tree offset multiproof - depth 15, 2 requested leaves 22.159 us/op 22.506 us/op 0.98
compact multiproof - depth 15, 2 requested leaves 3.3960 us/op 3.2270 us/op 1.05
multiproof - depth 15, 3 requested leaves 16.517 us/op 16.615 us/op 0.99
tree offset multiproof - depth 15, 3 requested leaves 28.371 us/op 27.437 us/op 1.03
compact multiproof - depth 15, 3 requested leaves 4.0160 us/op 4.1650 us/op 0.96
multiproof - depth 15, 4 requested leaves 21.686 us/op 22.887 us/op 0.95
tree offset multiproof - depth 15, 4 requested leaves 34.478 us/op 35.307 us/op 0.98
compact multiproof - depth 15, 4 requested leaves 4.5810 us/op 4.6740 us/op 0.98
packedRootsBytesToLeafNodes bytes 4000 offset 0 5.9830 us/op 5.9400 us/op 1.01
packedRootsBytesToLeafNodes bytes 4000 offset 1 6.1190 us/op 6.0210 us/op 1.02
packedRootsBytesToLeafNodes bytes 4000 offset 2 5.9650 us/op 6.0170 us/op 0.99
packedRootsBytesToLeafNodes bytes 4000 offset 3 5.8170 us/op 5.8190 us/op 1.00
subtreeFillToContents depth 40 count 250000 47.854 ms/op 49.759 ms/op 0.96
setRoot - gindexBitstring 20.259 ms/op 21.219 ms/op 0.95
setRoot - gindex 21.026 ms/op 20.291 ms/op 1.04
getRoot - gindexBitstring 2.4940 ms/op 2.4920 ms/op 1.00
getRoot - gindex 2.9429 ms/op 3.2535 ms/op 0.90
getHashObject then setHashObject 21.330 ms/op 20.709 ms/op 1.03
setNodeWithFn 19.568 ms/op 18.646 ms/op 1.05
getNodeAtDepth depth 0 x100000 282.66 us/op 280.30 us/op 1.01
setNodeAtDepth depth 0 x100000 2.4699 ms/op 2.2987 ms/op 1.07
getNodesAtDepth depth 0 x100000 313.47 us/op 311.82 us/op 1.01
setNodesAtDepth depth 0 x100000 765.30 us/op 808.26 us/op 0.95
getNodeAtDepth depth 1 x100000 342.26 us/op 346.61 us/op 0.99
setNodeAtDepth depth 1 x100000 7.9234 ms/op 7.6144 ms/op 1.04
getNodesAtDepth depth 1 x100000 437.44 us/op 437.30 us/op 1.00
setNodesAtDepth depth 1 x100000 6.8292 ms/op 6.5519 ms/op 1.04
getNodeAtDepth depth 2 x100000 862.00 us/op 749.18 us/op 1.15
setNodeAtDepth depth 2 x100000 15.781 ms/op 14.147 ms/op 1.12
getNodesAtDepth depth 2 x100000 17.930 ms/op 18.786 ms/op 0.95
setNodesAtDepth depth 2 x100000 21.659 ms/op 22.487 ms/op 0.96
tree.getNodesAtDepth - gindexes 8.5315 ms/op 8.7799 ms/op 0.97
tree.getNodesAtDepth - push all nodes 2.2639 ms/op 1.8364 ms/op 1.23
tree.getNodesAtDepth - navigation 314.11 us/op 313.78 us/op 1.00
tree.setNodesAtDepth - indexes 682.86 us/op 642.21 us/op 1.06
set at depth 8 666.00 ns/op 711.00 ns/op 0.94
set at depth 16 1.2080 us/op 1.0650 us/op 1.13
set at depth 32 2.0540 us/op 1.7940 us/op 1.14
iterateNodesAtDepth 8 256 14.058 us/op 14.755 us/op 0.95
getNodesAtDepth 8 256 3.7050 us/op 3.6770 us/op 1.01
iterateNodesAtDepth 16 65536 4.7091 ms/op 4.8336 ms/op 0.97
getNodesAtDepth 16 65536 1.8978 ms/op 1.5721 ms/op 1.21
iterateNodesAtDepth 32 250000 16.640 ms/op 17.205 ms/op 0.97
getNodesAtDepth 32 250000 4.7942 ms/op 4.4260 ms/op 1.08
iterateNodesAtDepth 40 250000 16.430 ms/op 17.891 ms/op 0.92
getNodesAtDepth 40 250000 4.7449 ms/op 4.4542 ms/op 1.07
250000 validators root getter 116.64 ms/op 120.20 ms/op 0.97
250000 validators batchHash() 89.593 ms/op 91.242 ms/op 0.98
250000 validators hashComputations 13.581 ms/op 19.712 ms/op 0.69
bitlist bytes to struct (120,90) 927.00 ns/op 741.00 ns/op 1.25
bitlist bytes to tree (120,90) 2.9080 us/op 3.1190 us/op 0.93
bitlist bytes to struct (2048,2048) 1.1090 us/op 1.1910 us/op 0.93
bitlist bytes to tree (2048,2048) 4.2870 us/op 4.0980 us/op 1.05
ByteListType - deserialize 7.8004 ms/op 7.7318 ms/op 1.01
BasicListType - deserialize 16.720 ms/op 14.765 ms/op 1.13
ByteListType - serialize 7.5387 ms/op 7.5429 ms/op 1.00
BasicListType - serialize 10.726 ms/op 10.322 ms/op 1.04
BasicListType - tree_convertToStruct 29.198 ms/op 26.526 ms/op 1.10
List[uint8, 68719476736] len 300000 ViewDU.getAll() + iterate 5.0552 ms/op 4.9435 ms/op 1.02
List[uint8, 68719476736] len 300000 ViewDU.get(i) 4.5642 ms/op 4.3855 ms/op 1.04
Array.push len 300000 empty Array - number 6.8832 ms/op 7.2747 ms/op 0.95
Array.set len 300000 from new Array - number 2.1618 ms/op 1.7086 ms/op 1.27
Array.set len 300000 - number 5.5205 ms/op 6.0755 ms/op 0.91
Uint8Array.set len 300000 476.31 us/op 495.11 us/op 0.96
Uint32Array.set len 300000 902.69 us/op 567.55 us/op 1.59
Container({a: uint8, b: uint8}) getViewDU x300000 71.416 ms/op 31.052 ms/op 2.30
ContainerNodeStruct({a: uint8, b: uint8}) getViewDU x300000 14.912 ms/op 10.466 ms/op 1.42
List(Container) len 300000 ViewDU.getAllReadonly() + iterate 186.91 ms/op 217.21 ms/op 0.86
List(Container) len 300000 ViewDU.getAllReadonlyValues() + iterate 214.74 ms/op 263.36 ms/op 0.82
List(Container) len 300000 ViewDU.get(i) 6.2628 ms/op 7.7889 ms/op 0.80
List(Container) len 300000 ViewDU.getReadonly(i) 6.2339 ms/op 7.1258 ms/op 0.87
List(ContainerNodeStruct) len 300000 ViewDU.getAllReadonly() + iterate 36.758 ms/op 38.197 ms/op 0.96
List(ContainerNodeStruct) len 300000 ViewDU.getAllReadonlyValues() + iterate 5.0030 ms/op 5.1995 ms/op 0.96
List(ContainerNodeStruct) len 300000 ViewDU.get(i) 6.0834 ms/op 6.3529 ms/op 0.96
List(ContainerNodeStruct) len 300000 ViewDU.getReadonly(i) 6.1039 ms/op 6.3950 ms/op 0.95
Array.push len 300000 empty Array - object 6.2173 ms/op 6.8604 ms/op 0.91
Array.set len 300000 from new Array - object 1.9560 ms/op 2.0627 ms/op 0.95
Array.set len 300000 - object 5.7246 ms/op 6.6323 ms/op 0.86
cachePermanentRootStruct no cache 3.3700 us/op 3.4940 us/op 0.96
cachePermanentRootStruct with cache 207.00 ns/op 211.00 ns/op 0.98
epochParticipation len 250000 rws 7813 2.2762 ms/op 2.3836 ms/op 0.95
Deneb BeaconBlock.hashTreeRoot(), numTransaction=200 5.2354 ms/op 5.4784 ms/op 0.96
BeaconState ViewDU batchHashTreeRoot vc=200000 mod=100000 222.80 ms/op 231.12 ms/op 0.96
BeaconState ViewDU batchHashTreeRoot - commit step vc=200000 mod=100000 197.94 ms/op 194.92 ms/op 1.02
BeaconState ViewDU batchHashTreeRoot - hash step vc=200000 mod=100000 45.677 ms/op 48.722 ms/op 0.94
BeaconState ViewDU hashTreeRoot() vc=200000 mod=100000 779.20 ms/op 810.83 ms/op 0.96
BeaconState ViewDU hashTreeRoot - commit step vc=200000 mod=100000 67.148 ms/op 67.607 ms/op 0.99
BeaconState ViewDU hashTreeRoot - validator tree creation vc=100000 mod=100000 267.70 ms/op 276.72 ms/op 0.97
deserialize Attestation - tree 3.5950 us/op 3.4440 us/op 1.04
deserialize Attestation - struct 1.8360 us/op 2.0370 us/op 0.90
deserialize SignedAggregateAndProof - tree 4.9910 us/op 4.9020 us/op 1.02
deserialize SignedAggregateAndProof - struct 2.9530 us/op 3.0150 us/op 0.98
deserialize SyncCommitteeMessage - tree 1.4230 us/op 1.3880 us/op 1.03
deserialize SyncCommitteeMessage - struct 988.00 ns/op 1.1180 us/op 0.88
deserialize SignedContributionAndProof - tree 3.0310 us/op 2.9020 us/op 1.04
deserialize SignedContributionAndProof - struct 2.2180 us/op 2.2910 us/op 0.97
deserialize SignedBeaconBlock - tree 287.14 us/op 267.89 us/op 1.07
deserialize SignedBeaconBlock - struct 119.43 us/op 122.42 us/op 0.98
BeaconState vc 300000 - deserialize tree 651.96 ms/op 656.89 ms/op 0.99
BeaconState vc 300000 - serialize tree 93.341 ms/op 87.978 ms/op 1.06
BeaconState.historicalRoots vc 300000 - deserialize tree 954.00 ns/op 892.00 ns/op 1.07
BeaconState.historicalRoots vc 300000 - serialize tree 673.00 ns/op 691.00 ns/op 0.97
BeaconState.validators vc 300000 - deserialize tree 629.12 ms/op 618.18 ms/op 1.02
BeaconState.validators vc 300000 - serialize tree 47.409 ms/op 48.383 ms/op 0.98
BeaconState.balances vc 300000 - deserialize tree 26.506 ms/op 27.077 ms/op 0.98
BeaconState.balances vc 300000 - serialize tree 4.8033 ms/op 4.3331 ms/op 1.11
BeaconState.previousEpochParticipation vc 300000 - deserialize tree 1.1840 ms/op 1.0215 ms/op 1.16
BeaconState.previousEpochParticipation vc 300000 - serialize tree 357.66 us/op 340.76 us/op 1.05
BeaconState.currentEpochParticipation vc 300000 - deserialize tree 1.0971 ms/op 1.0596 ms/op 1.04
BeaconState.currentEpochParticipation vc 300000 - serialize tree 356.24 us/op 349.59 us/op 1.02
BeaconState.inactivityScores vc 300000 - deserialize tree 30.469 ms/op 27.027 ms/op 1.13
BeaconState.inactivityScores vc 300000 - serialize tree 4.2470 ms/op 4.8252 ms/op 0.88
hashTreeRoot Attestation - struct 13.194 us/op 12.978 us/op 1.02
hashTreeRoot Attestation - tree 9.0940 us/op 9.1550 us/op 0.99
hashTreeRoot SignedAggregateAndProof - struct 16.013 us/op 15.989 us/op 1.00
hashTreeRoot SignedAggregateAndProof - tree 13.631 us/op 13.789 us/op 0.99
hashTreeRoot SyncCommitteeMessage - struct 3.8770 us/op 3.9210 us/op 0.99
hashTreeRoot SyncCommitteeMessage - tree 3.7260 us/op 3.7800 us/op 0.99
hashTreeRoot SignedContributionAndProof - struct 9.4160 us/op 9.2590 us/op 1.02
hashTreeRoot SignedContributionAndProof - tree 9.3730 us/op 9.4550 us/op 0.99
hashTreeRoot SignedBeaconBlock - struct 822.79 us/op 808.71 us/op 1.02
hashTreeRoot SignedBeaconBlock - tree 821.00 us/op 825.39 us/op 0.99
hashTreeRoot Validator - struct 4.7020 us/op 4.8290 us/op 0.97
hashTreeRoot Validator - tree 6.9620 us/op 7.0140 us/op 0.99
BeaconState vc 300000 - hashTreeRoot tree 2.2922 s/op 2.3436 s/op 0.98
BeaconState vc 300000 - batchHashTreeRoot tree 4.0674 s/op 4.1171 s/op 0.99
BeaconState.historicalRoots vc 300000 - hashTreeRoot tree 1.0620 us/op 1.0330 us/op 1.03
BeaconState.validators vc 300000 - hashTreeRoot tree 2.4365 s/op 2.4295 s/op 1.00
BeaconState.balances vc 300000 - hashTreeRoot tree 35.008 ms/op 40.260 ms/op 0.87
BeaconState.previousEpochParticipation vc 300000 - hashTreeRoot tree 4.3006 ms/op 4.3728 ms/op 0.98
BeaconState.currentEpochParticipation vc 300000 - hashTreeRoot tree 4.3350 ms/op 4.3703 ms/op 0.99
BeaconState.inactivityScores vc 300000 - hashTreeRoot tree 37.316 ms/op 35.710 ms/op 1.04
hash64 x18 9.1650 us/op 9.0850 us/op 1.01
hashTwoObjects x18 7.9550 us/op 8.0780 us/op 0.98
hash64 x1740 841.56 us/op 821.88 us/op 1.02
hashTwoObjects x1740 755.29 us/op 756.36 us/op 1.00
hash64 x2700000 1.2972 s/op 1.3031 s/op 1.00
hashTwoObjects x2700000 1.1734 s/op 1.1837 s/op 0.99
get_exitEpoch - ContainerType 279.00 ns/op 285.00 ns/op 0.98
get_exitEpoch - ContainerNodeStructType 282.00 ns/op 273.00 ns/op 1.03
set_exitEpoch - ContainerType 300.00 ns/op 295.00 ns/op 1.02
set_exitEpoch - ContainerNodeStructType 292.00 ns/op 280.00 ns/op 1.04
get_pubkey - ContainerType 1.1210 us/op 1.0820 us/op 1.04
get_pubkey - ContainerNodeStructType 276.00 ns/op 251.00 ns/op 1.10
hashTreeRoot - ContainerType 427.00 ns/op 411.00 ns/op 1.04
hashTreeRoot - ContainerNodeStructType 459.00 ns/op 422.00 ns/op 1.09
createProof - ContainerType 4.7390 us/op 4.2520 us/op 1.11
createProof - ContainerNodeStructType 24.764 us/op 23.243 us/op 1.07
serialize - ContainerType 1.9030 us/op 1.8500 us/op 1.03
serialize - ContainerNodeStructType 1.3640 us/op 1.3330 us/op 1.02
set_exitEpoch_and_hashTreeRoot - ContainerType 4.2580 us/op 3.1710 us/op 1.34
set_exitEpoch_and_hashTreeRoot - ContainerNodeStructType 7.6000 us/op 7.7000 us/op 0.99
doBatchHashTreeRootValidators 3.9970 us/op 4.0750 us/op 0.98
ContainerNodeStructViewDU hashTreeRoot 26.431 us/op 27.356 us/op 0.97
Array - for of 5.8650 us/op 6.4410 us/op 0.91
Array - for(;;) 5.6750 us/op 6.4410 us/op 0.88
basicListValue.readonlyValuesArray() 4.5641 ms/op 5.4135 ms/op 0.84
basicListValue.readonlyValuesArray() + loop all 4.8265 ms/op 5.8242 ms/op 0.83
compositeListValue.readonlyValuesArray() 27.069 ms/op 32.340 ms/op 0.84
compositeListValue.readonlyValuesArray() + loop all 31.609 ms/op 34.092 ms/op 0.93
Number64UintType - get balances list 4.8513 ms/op 4.7846 ms/op 1.01
Number64UintType - set balances list 10.014 ms/op 10.102 ms/op 0.99
Number64UintType - get and increase 10 then set 41.351 ms/op 41.598 ms/op 0.99
Number64UintType - increase 10 using applyDelta 17.807 ms/op 16.927 ms/op 1.05
Number64UintType - increase 10 using applyDeltaInBatch 17.819 ms/op 17.252 ms/op 1.03
tree_newTreeFromUint64Deltas 23.304 ms/op 23.700 ms/op 0.98
unsafeUint8ArrayToTree 39.666 ms/op 36.512 ms/op 1.09
bitLength(50) 256.00 ns/op 248.00 ns/op 1.03
bitLengthStr(50) 236.00 ns/op 215.00 ns/op 1.10
bitLength(8000) 247.00 ns/op 226.00 ns/op 1.09
bitLengthStr(8000) 284.00 ns/op 267.00 ns/op 1.06
bitLength(250000) 247.00 ns/op 220.00 ns/op 1.12
bitLengthStr(250000) 317.00 ns/op 298.00 ns/op 1.06
merkleize 32 chunks 15.492 us/op 14.873 us/op 1.04
merkleizeBlocksBytes 32 chunks 3.5310 us/op 3.4680 us/op 1.02
merkleizeBlockArray 32 chunks 6.7750 us/op 6.6740 us/op 1.02
merkleize 128 chunks 61.363 us/op 59.618 us/op 1.03
merkleizeBlocksBytes 128 chunks 7.9000 us/op 7.8030 us/op 1.01
merkleizeBlockArray 128 chunks 18.838 us/op 18.807 us/op 1.00
merkleize 512 chunks 242.22 us/op 239.77 us/op 1.01
merkleizeBlocksBytes 512 chunks 22.845 us/op 23.174 us/op 0.99
merkleizeBlockArray 512 chunks 64.705 us/op 63.190 us/op 1.02
merkleize 1024 chunks 485.64 us/op 481.05 us/op 1.01
merkleizeBlocksBytes 1024 chunks 43.153 us/op 42.987 us/op 1.00
merkleizeBlockArray 1024 chunks 124.97 us/op 122.31 us/op 1.02
floor - Math.floor (53) 1.2428 ns/op 1.2485 ns/op 1.00
floor - << 0 (53) 1.2433 ns/op 1.2439 ns/op 1.00
floor - Math.floor (512) 1.2434 ns/op 1.2591 ns/op 0.99
floor - << 0 (512) 1.2453 ns/op 1.2456 ns/op 1.00
fnIf(0) 1.5549 ns/op 1.5556 ns/op 1.00
fnSwitch(0) 2.1746 ns/op 2.1757 ns/op 1.00
fnObj(0) 1.5570 ns/op 1.5556 ns/op 1.00
fnArr(0) 1.5551 ns/op 1.5610 ns/op 1.00
fnIf(4) 2.1764 ns/op 2.1759 ns/op 1.00
fnSwitch(4) 2.2023 ns/op 2.1751 ns/op 1.01
fnObj(4) 1.5554 ns/op 1.5670 ns/op 0.99
fnArr(4) 1.5590 ns/op 1.5539 ns/op 1.00
fnIf(9) 3.1077 ns/op 3.1084 ns/op 1.00
fnSwitch(9) 2.1778 ns/op 2.1767 ns/op 1.00
fnObj(9) 1.5628 ns/op 1.5601 ns/op 1.00
fnArr(9) 1.5535 ns/op 1.5547 ns/op 1.00
Container {a,b,vec} - as struct x100000 124.48 us/op 124.98 us/op 1.00
Container {a,b,vec} - as tree x100000 563.86 us/op 563.64 us/op 1.00
Container {a,vec,b} - as struct x100000 155.87 us/op 155.59 us/op 1.00
Container {a,vec,b} - as tree x100000 559.68 us/op 560.00 us/op 1.00
get 2 props x1000000 - rawObject 312.20 us/op 314.72 us/op 0.99
get 2 props x1000000 - proxy 73.133 ms/op 73.881 ms/op 0.99
get 2 props x1000000 - customObj 313.54 us/op 313.63 us/op 1.00
Simple object binary -> struct 722.00 ns/op 580.00 ns/op 1.24
Simple object binary -> tree_backed 1.9690 us/op 1.6880 us/op 1.17
Simple object struct -> tree_backed 2.5990 us/op 2.2420 us/op 1.16
Simple object tree_backed -> struct 1.8970 us/op 1.5570 us/op 1.22
Simple object struct -> binary 988.00 ns/op 845.00 ns/op 1.17
Simple object tree_backed -> binary 1.6340 us/op 1.2710 us/op 1.29
aggregationBits binary -> struct 661.00 ns/op 485.00 ns/op 1.36
aggregationBits binary -> tree_backed 2.6670 us/op 2.1420 us/op 1.25
aggregationBits struct -> tree_backed 3.0520 us/op 2.5060 us/op 1.22
aggregationBits tree_backed -> struct 1.2470 us/op 960.00 ns/op 1.30
aggregationBits struct -> binary 819.00 ns/op 751.00 ns/op 1.09
aggregationBits tree_backed -> binary 1.0760 us/op 904.00 ns/op 1.19
List(uint8) 100000 binary -> struct 1.5456 ms/op 1.6856 ms/op 0.92
List(uint8) 100000 binary -> tree_backed 308.68 us/op 293.30 us/op 1.05
List(uint8) 100000 struct -> tree_backed 1.4302 ms/op 1.4386 ms/op 0.99
List(uint8) 100000 tree_backed -> struct 1.1265 ms/op 1.1882 ms/op 0.95
List(uint8) 100000 struct -> binary 1.0996 ms/op 1.0797 ms/op 1.02
List(uint8) 100000 tree_backed -> binary 111.17 us/op 112.02 us/op 0.99
List(uint64Number) 100000 binary -> struct 1.4504 ms/op 1.3946 ms/op 1.04
List(uint64Number) 100000 binary -> tree_backed 4.8885 ms/op 4.8164 ms/op 1.01
List(uint64Number) 100000 struct -> tree_backed 6.7721 ms/op 6.9578 ms/op 0.97
List(uint64Number) 100000 tree_backed -> struct 2.5297 ms/op 2.7416 ms/op 0.92
List(uint64Number) 100000 struct -> binary 1.5016 ms/op 1.5189 ms/op 0.99
List(uint64Number) 100000 tree_backed -> binary 1.4866 ms/op 1.4234 ms/op 1.04
List(Uint64Bigint) 100000 binary -> struct 4.1888 ms/op 4.1758 ms/op 1.00
List(Uint64Bigint) 100000 binary -> tree_backed 5.4952 ms/op 4.8031 ms/op 1.14
List(Uint64Bigint) 100000 struct -> tree_backed 7.4396 ms/op 7.6438 ms/op 0.97
List(Uint64Bigint) 100000 tree_backed -> struct 5.4385 ms/op 5.2431 ms/op 1.04
List(Uint64Bigint) 100000 struct -> binary 2.1047 ms/op 2.1115 ms/op 1.00
List(Uint64Bigint) 100000 tree_backed -> binary 1.4243 ms/op 1.3313 ms/op 1.07
Vector(Root) 100000 binary -> struct 39.308 ms/op 38.009 ms/op 1.03
Vector(Root) 100000 binary -> tree_backed 42.586 ms/op 43.288 ms/op 0.98
Vector(Root) 100000 struct -> tree_backed 54.669 ms/op 53.928 ms/op 1.01
Vector(Root) 100000 tree_backed -> struct 53.239 ms/op 53.272 ms/op 1.00
Vector(Root) 100000 struct -> binary 3.1392 ms/op 3.3676 ms/op 0.93
Vector(Root) 100000 tree_backed -> binary 6.2962 ms/op 6.6746 ms/op 0.94
List(Validator) 100000 binary -> struct 120.13 ms/op 105.57 ms/op 1.14
List(Validator) 100000 binary -> tree_backed 370.29 ms/op 366.40 ms/op 1.01
List(Validator) 100000 struct -> tree_backed 392.75 ms/op 392.75 ms/op 1.00
List(Validator) 100000 tree_backed -> struct 212.35 ms/op 224.96 ms/op 0.94
List(Validator) 100000 struct -> binary 30.691 ms/op 30.055 ms/op 1.02
List(Validator) 100000 tree_backed -> binary 108.33 ms/op 110.32 ms/op 0.98
List(Validator-NS) 100000 binary -> struct 110.97 ms/op 112.21 ms/op 0.99
List(Validator-NS) 100000 binary -> tree_backed 165.61 ms/op 167.30 ms/op 0.99
List(Validator-NS) 100000 struct -> tree_backed 190.01 ms/op 193.07 ms/op 0.98
List(Validator-NS) 100000 tree_backed -> struct 151.43 ms/op 154.47 ms/op 0.98
List(Validator-NS) 100000 struct -> binary 8.6984 ms/op 8.7874 ms/op 0.99
List(Validator-NS) 100000 tree_backed -> binary 14.215 ms/op 14.747 ms/op 0.96
get epochStatuses - MutableVector 130.26 us/op 101.24 us/op 1.29
get epochStatuses - ViewDU 210.08 us/op 211.47 us/op 0.99
set epochStatuses - ListTreeView 2.2569 ms/op 2.2565 ms/op 1.00
set epochStatuses - ListTreeView - set() 467.67 us/op 470.11 us/op 0.99
set epochStatuses - ListTreeView - commit() 756.81 us/op 733.42 us/op 1.03
bitstring 518.58 ns/op 513.72 ns/op 1.01
bit mask 14.106 ns/op 13.527 ns/op 1.04
struct - increase slot to 1000000 963.00 us/op 933.13 us/op 1.03
UintNumberType - increase slot to 1000000 25.217 ms/op 29.381 ms/op 0.86
UintBigintType - increase slot to 1000000 172.94 ms/op 172.69 ms/op 1.00
UintBigint8 x 100000 tree_deserialize 5.9062 ms/op 5.7911 ms/op 1.02
UintBigint8 x 100000 tree_serialize 1.1344 ms/op 1.1388 ms/op 1.00
UintBigint16 x 100000 tree_deserialize 5.5855 ms/op 5.4447 ms/op 1.03
UintBigint16 x 100000 tree_serialize 1.3942 ms/op 1.3937 ms/op 1.00
UintBigint32 x 100000 tree_deserialize 5.8833 ms/op 5.6449 ms/op 1.04
UintBigint32 x 100000 tree_serialize 1.8595 ms/op 1.8853 ms/op 0.99
UintBigint64 x 100000 tree_deserialize 6.0170 ms/op 6.6804 ms/op 0.90
UintBigint64 x 100000 tree_serialize 2.5009 ms/op 2.8182 ms/op 0.89
UintBigint8 x 100000 value_deserialize 435.37 us/op 436.61 us/op 1.00
UintBigint8 x 100000 value_serialize 771.17 us/op 806.94 us/op 0.96
UintBigint16 x 100000 value_deserialize 471.30 us/op 466.81 us/op 1.01
UintBigint16 x 100000 value_serialize 806.74 us/op 822.31 us/op 0.98
UintBigint32 x 100000 value_deserialize 498.26 us/op 498.54 us/op 1.00
UintBigint32 x 100000 value_serialize 845.63 us/op 883.98 us/op 0.96
UintBigint64 x 100000 value_deserialize 561.48 us/op 562.24 us/op 1.00
UintBigint64 x 100000 value_serialize 1.0502 ms/op 1.1908 ms/op 0.88
UintBigint8 x 100000 deserialize 3.3836 ms/op 3.4657 ms/op 0.98
UintBigint8 x 100000 serialize 1.5304 ms/op 1.5825 ms/op 0.97
UintBigint16 x 100000 deserialize 3.5209 ms/op 3.5572 ms/op 0.99
UintBigint16 x 100000 serialize 1.5624 ms/op 1.6074 ms/op 0.97
UintBigint32 x 100000 deserialize 3.6486 ms/op 3.7354 ms/op 0.98
UintBigint32 x 100000 serialize 2.9666 ms/op 2.9920 ms/op 0.99
UintBigint64 x 100000 deserialize 4.1985 ms/op 4.4819 ms/op 0.94
UintBigint64 x 100000 serialize 1.6136 ms/op 1.6403 ms/op 0.98
UintBigint128 x 100000 deserialize 5.9573 ms/op 6.4945 ms/op 0.92
UintBigint128 x 100000 serialize 15.640 ms/op 16.068 ms/op 0.97
UintBigint256 x 100000 deserialize 8.9592 ms/op 9.6559 ms/op 0.93
UintBigint256 x 100000 serialize 44.956 ms/op 46.615 ms/op 0.96
Slice from Uint8Array x25000 1.5261 ms/op 1.7082 ms/op 0.89
Slice from ArrayBuffer x25000 15.941 ms/op 17.849 ms/op 0.89
Slice from ArrayBuffer x25000 + new Uint8Array 15.957 ms/op 19.768 ms/op 0.81
Copy Uint8Array 100000 iterate 2.7999 ms/op 2.7742 ms/op 1.01
Copy Uint8Array 100000 slice 86.187 us/op 104.47 us/op 0.82
Copy Uint8Array 100000 Uint8Array.prototype.slice.call 92.457 us/op 108.37 us/op 0.85
Copy Buffer 100000 Uint8Array.prototype.slice.call 88.730 us/op 107.26 us/op 0.83
Copy Uint8Array 100000 slice + set 175.34 us/op 215.85 us/op 0.81
Copy Uint8Array 100000 subarray + set 86.085 us/op 107.73 us/op 0.80
Copy Uint8Array 100000 slice arrayBuffer 87.788 us/op 106.86 us/op 0.82
Uint64 deserialize 100000 - iterate Uint8Array 1.8471 ms/op 1.9927 ms/op 0.93
Uint64 deserialize 100000 - by Uint32A 1.8051 ms/op 1.9343 ms/op 0.93
Uint64 deserialize 100000 - by DataView.getUint32 x2 2.0294 ms/op 2.1427 ms/op 0.95
Uint64 deserialize 100000 - by DataView.getBigUint64 4.7742 ms/op 5.0042 ms/op 0.95
Uint64 deserialize 100000 - by byte 40.934 ms/op 41.407 ms/op 0.99

by benchmarkbot/action

nazarhussain
nazarhussain previously approved these changes Mar 13, 2025
@wemeetagain wemeetagain merged commit 1ab49ad into master Mar 13, 2025
12 checks passed
@wemeetagain wemeetagain deleted the release-please--branches--master branch March 13, 2025 17:22
@wemeetagain
Copy link
Member Author

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

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.

4 participants