Skip to content

chore: bump @lodestar/spec-test-util to 1.42.0#518

Merged
nflaig merged 1 commit intomasterfrom
bump-spec-utils
Apr 21, 2026
Merged

chore: bump @lodestar/spec-test-util to 1.42.0#518
nflaig merged 1 commit intomasterfrom
bump-spec-utils

Conversation

@nflaig
Copy link
Copy Markdown
Member

@nflaig nflaig commented Apr 21, 2026

this should speed up downloading the spec tests

@nflaig nflaig requested a review from a team as a code owner April 21, 2026 11:26
@github-actions github-actions Bot added the ssz label Apr 21, 2026
@nflaig nflaig merged commit 67a26aa into master Apr 21, 2026
10 checks passed
@nflaig nflaig deleted the bump-spec-utils branch April 21, 2026 11:45
@github-actions github-actions Bot mentioned this pull request Apr 21, 2026
@github-actions
Copy link
Copy Markdown
Contributor

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: 2f419a4 Previous: 7781a3d Ratio
digestTwoHashObjects 50023 times 45.413 ms/op 48.382 ms/op 0.94
digest2Bytes32 50023 times 51.058 ms/op 55.602 ms/op 0.92
digest 50023 times 50.084 ms/op 54.560 ms/op 0.92
input length 32 1.2060 us/op 1.2650 us/op 0.95
input length 64 1.3280 us/op 1.4550 us/op 0.91
input length 128 2.2290 us/op 2.3540 us/op 0.95
input length 256 3.3190 us/op 3.6040 us/op 0.92
input length 512 5.4340 us/op 5.8220 us/op 0.93
input length 1024 10.147 us/op 11.052 us/op 0.92
digest 1000000 times 807.97 ms/op 889.87 ms/op 0.91
hashObjectToByteArray 50023 times 1.0446 ms/op 937.36 us/op 1.11
byteArrayToHashObject 50023 times 1.5095 ms/op 1.5434 ms/op 0.98
digest64 200092 times 200.83 ms/op 223.15 ms/op 0.90
hash 200092 times using batchHash4UintArray64s 223.12 ms/op 241.66 ms/op 0.92
digest64HashObjects 200092 times 181.31 ms/op 192.69 ms/op 0.94
hash 200092 times using batchHash4HashObjectInputs 187.60 ms/op 199.93 ms/op 0.94
getGindicesAtDepth 3.8460 us/op 4.1280 us/op 0.93
iterateAtDepth 6.8580 us/op 7.1250 us/op 0.96
getGindexBits 476.00 ns/op 500.00 ns/op 0.95
gindexIterator 987.00 ns/op 1.0680 us/op 0.92
HashComputationLevel.push then loop 30.116 ms/op 34.291 ms/op 0.88
HashComputation[] push then loop 50.219 ms/op 56.928 ms/op 0.88
hash 2 32 bytes Uint8Array 500000 times - hashtree 143.05 ms/op 149.39 ms/op 0.96
batch hash 16 x 64 Uint8Array 31250 times - hashtree 26.534 ms/op 24.665 ms/op 1.08
hashTwoObjects 500000 times - hashtree 170.80 ms/op 164.99 ms/op 1.04
executeHashComputations - hashtree 9.5403 ms/op 10.491 ms/op 0.91
hash 2 32 bytes Uint8Array 500000 times - as-sha256 463.34 ms/op 493.95 ms/op 0.94
batch hash 16 x 64 Uint8Array 31250 times - as-sha256 505.62 ms/op 562.41 ms/op 0.90
hashTwoObjects 500000 times - as-sha256 479.26 ms/op 502.29 ms/op 0.95
executeHashComputations - as-sha256 43.752 ms/op 50.028 ms/op 0.87
hash 2 32 bytes Uint8Array 500000 times - noble 1.2771 s/op 1.4207 s/op 0.90
batch hash 16 x 64 Uint8Array 31250 times - noble 1.2294 s/op 1.3712 s/op 0.90
hashTwoObjects 500000 times - noble 1.6904 s/op 1.9003 s/op 0.89
executeHashComputations - noble 34.636 ms/op 37.346 ms/op 0.93
getHashComputations 2.4995 ms/op 2.8928 ms/op 0.86
executeHashComputations 9.4141 ms/op 10.879 ms/op 0.87
get root 12.478 ms/op 13.121 ms/op 0.95
getNodeH() x7812.5 avg hindex 13.602 us/op 12.395 us/op 1.10
getNodeH() x7812.5 index 0 8.7350 us/op 7.5000 us/op 1.16
getNodeH() x7812.5 index 7 8.4180 us/op 7.8170 us/op 1.08
getNodeH() x7812.5 index 7 with key array 7.2720 us/op 6.4340 us/op 1.13
new LeafNode() x7812.5 332.75 us/op 440.18 us/op 0.76
getHashComputations 250000 nodes 17.632 ms/op 17.589 ms/op 1.00
batchHash 250000 nodes 86.000 ms/op 106.17 ms/op 0.81
get root 250000 nodes 93.498 ms/op 95.725 ms/op 0.98
getHashComputations 500000 nodes 33.070 ms/op 35.839 ms/op 0.92
batchHash 500000 nodes 162.37 ms/op 185.08 ms/op 0.88
get root 500000 nodes 186.60 ms/op 190.57 ms/op 0.98
getHashComputations 1000000 nodes 68.444 ms/op 74.405 ms/op 0.92
batchHash 1000000 nodes 329.96 ms/op 391.65 ms/op 0.84
get root 1000000 nodes 371.37 ms/op 383.17 ms/op 0.97
multiproof - depth 15, 1 requested leaves 7.8090 us/op 7.9550 us/op 0.98
tree offset multiproof - depth 15, 1 requested leaves 16.893 us/op 20.270 us/op 0.83
compact multiproof - depth 15, 1 requested leaves 3.7420 us/op 4.6140 us/op 0.81
multiproof - depth 15, 2 requested leaves 11.381 us/op 13.116 us/op 0.87
tree offset multiproof - depth 15, 2 requested leaves 20.060 us/op 24.443 us/op 0.82
compact multiproof - depth 15, 2 requested leaves 3.7840 us/op 4.9580 us/op 0.76
multiproof - depth 15, 3 requested leaves 15.683 us/op 17.998 us/op 0.87
tree offset multiproof - depth 15, 3 requested leaves 25.989 us/op 31.157 us/op 0.83
compact multiproof - depth 15, 3 requested leaves 4.2710 us/op 5.9570 us/op 0.72
multiproof - depth 15, 4 requested leaves 20.332 us/op 24.210 us/op 0.84
tree offset multiproof - depth 15, 4 requested leaves 31.851 us/op 39.215 us/op 0.81
compact multiproof - depth 15, 4 requested leaves 4.2020 us/op 5.7380 us/op 0.73
packedRootsBytesToLeafNodes bytes 4000 offset 0 6.0710 us/op 7.5300 us/op 0.81
packedRootsBytesToLeafNodes bytes 4000 offset 1 6.0520 us/op 6.8050 us/op 0.89
packedRootsBytesToLeafNodes bytes 4000 offset 2 6.0390 us/op 6.6480 us/op 0.91
packedRootsBytesToLeafNodes bytes 4000 offset 3 6.0620 us/op 6.5810 us/op 0.92
subtreeFillToContents depth 40 count 250000 50.335 ms/op 54.755 ms/op 0.92
setRoot - gindexBitstring 23.220 ms/op 25.336 ms/op 0.92
setRoot - gindex 23.879 ms/op 28.202 ms/op 0.85
getRoot - gindexBitstring 2.6225 ms/op 2.9651 ms/op 0.88
getRoot - gindex 2.8616 ms/op 3.3559 ms/op 0.85
getHashObject then setHashObject 24.129 ms/op 24.606 ms/op 0.98
setNodeWithFn 21.977 ms/op 23.813 ms/op 0.92
getNodeAtDepth depth 0 x100000 262.98 us/op 280.74 us/op 0.94
setNodeAtDepth depth 0 x100000 2.4901 ms/op 2.9694 ms/op 0.84
getNodesAtDepth depth 0 x100000 309.39 us/op 313.26 us/op 0.99
setNodesAtDepth depth 0 x100000 794.17 us/op 765.11 us/op 1.04
getNodeAtDepth depth 1 x100000 320.81 us/op 343.27 us/op 0.93
setNodeAtDepth depth 1 x100000 9.5149 ms/op 9.8449 ms/op 0.97
getNodesAtDepth depth 1 x100000 413.25 us/op 436.85 us/op 0.95
setNodesAtDepth depth 1 x100000 7.7172 ms/op 9.5315 ms/op 0.81
getNodeAtDepth depth 2 x100000 668.60 us/op 808.66 us/op 0.83
setNodeAtDepth depth 2 x100000 16.959 ms/op 19.195 ms/op 0.88
getNodesAtDepth depth 2 x100000 16.870 ms/op 20.056 ms/op 0.84
setNodesAtDepth depth 2 x100000 23.853 ms/op 23.795 ms/op 1.00
tree.getNodesAtDepth - gindexes 10.031 ms/op 11.338 ms/op 0.88
tree.getNodesAtDepth - push all nodes 2.6932 ms/op 2.6349 ms/op 1.02
tree.getNodesAtDepth - navigation 358.32 us/op 312.31 us/op 1.15
tree.setNodesAtDepth - indexes 700.49 us/op 794.41 us/op 0.88
set at depth 8 927.00 ns/op 960.00 ns/op 0.97
set at depth 16 1.0490 us/op 1.1580 us/op 0.91
set at depth 32 2.3490 us/op 2.1650 us/op 1.08
iterateNodesAtDepth 8 256 14.882 us/op 15.099 us/op 0.99
getNodesAtDepth 8 256 3.6970 us/op 3.9490 us/op 0.94
iterateNodesAtDepth 16 65536 4.8126 ms/op 4.8062 ms/op 1.00
getNodesAtDepth 16 65536 1.2160 ms/op 1.1933 ms/op 1.02
iterateNodesAtDepth 32 250000 17.560 ms/op 16.888 ms/op 1.04
getNodesAtDepth 32 250000 5.4335 ms/op 4.7986 ms/op 1.13
iterateNodesAtDepth 40 250000 17.337 ms/op 16.832 ms/op 1.03
getNodesAtDepth 40 250000 7.0439 ms/op 4.8637 ms/op 1.45
250000 validators root getter 95.853 ms/op 99.837 ms/op 0.96
250000 validators batchHash() 91.619 ms/op 112.68 ms/op 0.81
250000 validators hashComputations 17.006 ms/op 21.452 ms/op 0.79
bitlist bytes to struct (120,90) 526.00 ns/op 548.00 ns/op 0.96
bitlist bytes to tree (120,90) 2.4110 us/op 2.6280 us/op 0.92
bitlist bytes to struct (2048,2048) 976.00 ns/op 1.0680 us/op 0.91
bitlist bytes to tree (2048,2048) 3.8400 us/op 4.4280 us/op 0.87
ByteListType - deserialize 9.7429 ms/op 9.6676 ms/op 1.01
BasicListType - deserialize 11.586 ms/op 10.868 ms/op 1.07
ByteListType - serialize 9.8094 ms/op 9.7838 ms/op 1.00
BasicListType - serialize 10.856 ms/op 12.081 ms/op 0.90
BasicListType - tree_convertToStruct 23.034 ms/op 25.101 ms/op 0.92
List[uint8, 68719476736] len 300000 ViewDU.getAll() + iterate 5.4845 ms/op 5.1855 ms/op 1.06
List[uint8, 68719476736] len 300000 ViewDU.get(i) 4.9149 ms/op 4.3918 ms/op 1.12
Array.push len 300000 empty Array - number 7.6966 ms/op 8.0722 ms/op 0.95
Array.set len 300000 from new Array - number 2.5111 ms/op 2.2587 ms/op 1.11
Array.set len 300000 - number 7.7412 ms/op 7.2738 ms/op 1.06
Uint8Array.set len 300000 306.86 us/op 407.39 us/op 0.75
Uint32Array.set len 300000 430.17 us/op 540.76 us/op 0.80
Container({a: uint8, b: uint8}) getViewDU x300000 37.796 ms/op 34.703 ms/op 1.09
ContainerNodeStruct({a: uint8, b: uint8}) getViewDU x300000 12.465 ms/op 12.206 ms/op 1.02
List(Container) len 300000 ViewDU.getAllReadonly() + iterate 223.10 ms/op 249.70 ms/op 0.89
List(Container) len 300000 ViewDU.getAllReadonlyValues() + iterate 251.91 ms/op 286.63 ms/op 0.88
List(Container) len 300000 ViewDU.get(i) 7.4668 ms/op 7.5264 ms/op 0.99
List(Container) len 300000 ViewDU.getReadonly(i) 7.5252 ms/op 7.9606 ms/op 0.95
List(ContainerNodeStruct) len 300000 ViewDU.getAllReadonly() + iterate 41.174 ms/op 36.381 ms/op 1.13
List(ContainerNodeStruct) len 300000 ViewDU.getAllReadonlyValues() + iterate 5.5388 ms/op 8.8061 ms/op 0.63
List(ContainerNodeStruct) len 300000 ViewDU.get(i) 7.2390 ms/op 7.3115 ms/op 0.99
List(ContainerNodeStruct) len 300000 ViewDU.getReadonly(i) 7.2750 ms/op 7.3381 ms/op 0.99
Array.push len 300000 empty Array - object 7.0149 ms/op 8.4120 ms/op 0.83
Array.set len 300000 from new Array - object 2.1544 ms/op 1.9301 ms/op 1.12
Array.set len 300000 - object 7.0478 ms/op 6.8298 ms/op 1.03
cachePermanentRootStruct no cache 3.4450 us/op 3.4350 us/op 1.00
cachePermanentRootStruct with cache 203.00 ns/op 178.00 ns/op 1.14
epochParticipation len 250000 rws 7813 2.5851 ms/op 2.4893 ms/op 1.04
Deneb BeaconBlock.hashTreeRoot(), numTransaction=200 4.8586 ms/op 4.9927 ms/op 0.97
BeaconState ViewDU batchHashTreeRoot vc=200000 mod=100000 236.78 ms/op 244.57 ms/op 0.97
BeaconState ViewDU batchHashTreeRoot - commit step vc=200000 mod=100000 200.11 ms/op 205.00 ms/op 0.98
BeaconState ViewDU batchHashTreeRoot - hash step vc=200000 mod=100000 56.031 ms/op 58.170 ms/op 0.96
BeaconState ViewDU hashTreeRoot() vc=200000 mod=100000 753.73 ms/op 755.53 ms/op 1.00
BeaconState ViewDU hashTreeRoot - commit step vc=200000 mod=100000 70.795 ms/op 73.913 ms/op 0.96
BeaconState ViewDU hashTreeRoot - validator tree creation vc=100000 mod=100000 301.34 ms/op 306.29 ms/op 0.98
deserialize Attestation - tree 5.1680 us/op 5.2590 us/op 0.98
deserialize Attestation - struct 2.6940 us/op 2.3440 us/op 1.15
deserialize Attestation - struct (reuse bytes) 1.8840 us/op 2.0390 us/op 0.92
deserialize SignedAggregateAndProof - tree 7.0100 us/op 5.2100 us/op 1.35
deserialize SignedAggregateAndProof - struct 4.2070 us/op 3.6940 us/op 1.14
deserialize SignedAggregateAndProof - struct (reuse bytes) 2.4200 us/op 2.4060 us/op 1.01
deserialize SyncCommitteeMessage - tree 1.9860 us/op 1.7450 us/op 1.14
deserialize SyncCommitteeMessage - struct 1.4090 us/op 1.3130 us/op 1.07
deserialize SyncCommitteeMessage - struct (reuse bytes) 1.0200 us/op 875.00 ns/op 1.17
deserialize SignedContributionAndProof - tree 3.1950 us/op 3.4430 us/op 0.93
deserialize SignedContributionAndProof - struct 2.9900 us/op 2.9110 us/op 1.03
deserialize SignedContributionAndProof - struct (reuse bytes) 1.5720 us/op 1.6500 us/op 0.95
deserialize SignedBeaconBlock - tree 322.01 us/op 316.72 us/op 1.02
deserialize SignedBeaconBlock - struct 146.47 us/op 152.30 us/op 0.96
deserialize SignedBeaconBlock - struct (reuse bytes) 88.380 us/op 85.695 us/op 1.03
BeaconState vc 300000 - deserialize tree 759.42 ms/op 781.27 ms/op 0.97
BeaconState vc 300000 - serialize tree 109.54 ms/op 120.06 ms/op 0.91
BeaconState.historicalRoots vc 300000 - deserialize tree 1.0300 us/op 1.3250 us/op 0.78
BeaconState.historicalRoots vc 300000 - serialize tree 861.00 ns/op 746.00 ns/op 1.15
BeaconState.validators vc 300000 - deserialize tree 693.83 ms/op 690.27 ms/op 1.01
BeaconState.validators vc 300000 - serialize tree 37.646 ms/op 40.618 ms/op 0.93
BeaconState.balances vc 300000 - deserialize tree 28.877 ms/op 30.634 ms/op 0.94
BeaconState.balances vc 300000 - serialize tree 7.3466 ms/op 6.7302 ms/op 1.09
BeaconState.previousEpochParticipation vc 300000 - deserialize tree 1.4763 ms/op 1.1630 ms/op 1.27
BeaconState.previousEpochParticipation vc 300000 - serialize tree 350.62 us/op 320.79 us/op 1.09
BeaconState.currentEpochParticipation vc 300000 - deserialize tree 1.4697 ms/op 1.0287 ms/op 1.43
BeaconState.currentEpochParticipation vc 300000 - serialize tree 350.89 us/op 335.28 us/op 1.05
BeaconState.inactivityScores vc 300000 - deserialize tree 30.586 ms/op 28.436 ms/op 1.08
BeaconState.inactivityScores vc 300000 - serialize tree 4.6634 ms/op 5.7333 ms/op 0.81
hashTreeRoot Attestation - struct 11.072 us/op 11.353 us/op 0.98
hashTreeRoot Attestation - tree 7.4340 us/op 7.7890 us/op 0.95
hashTreeRoot SignedAggregateAndProof - struct 13.330 us/op 14.082 us/op 0.95
hashTreeRoot SignedAggregateAndProof - tree 11.019 us/op 11.102 us/op 0.99
hashTreeRoot SyncCommitteeMessage - struct 3.5330 us/op 3.4270 us/op 1.03
hashTreeRoot SyncCommitteeMessage - tree 3.1170 us/op 2.9530 us/op 1.06
hashTreeRoot SignedContributionAndProof - struct 7.9100 us/op 8.6910 us/op 0.91
hashTreeRoot SignedContributionAndProof - tree 7.6320 us/op 7.6690 us/op 1.00
hashTreeRoot SignedBeaconBlock - struct 753.68 us/op 855.63 us/op 0.88
hashTreeRoot SignedBeaconBlock - tree 660.50 us/op 664.09 us/op 0.99
hashTreeRoot Validator - struct 4.5270 us/op 4.7190 us/op 0.96
hashTreeRoot Validator - tree 5.9310 us/op 5.9970 us/op 0.99
BeaconState vc 300000 - hashTreeRoot tree 2.1851 s/op 2.1695 s/op 1.01
BeaconState vc 300000 - batchHashTreeRoot tree 4.3926 s/op 4.6664 s/op 0.94
BeaconState.historicalRoots vc 300000 - hashTreeRoot tree 932.00 ns/op 935.00 ns/op 1.00
BeaconState.validators vc 300000 - hashTreeRoot tree 2.3139 s/op 2.4404 s/op 0.95
BeaconState.balances vc 300000 - hashTreeRoot tree 27.813 ms/op 28.062 ms/op 0.99
BeaconState.previousEpochParticipation vc 300000 - hashTreeRoot tree 3.4386 ms/op 3.4612 ms/op 0.99
BeaconState.currentEpochParticipation vc 300000 - hashTreeRoot tree 3.4498 ms/op 3.4894 ms/op 0.99
BeaconState.inactivityScores vc 300000 - hashTreeRoot tree 29.221 ms/op 30.036 ms/op 0.97
hash64 x18 8.0120 us/op 8.3340 us/op 0.96
hashTwoObjects x18 6.6490 us/op 6.8110 us/op 0.98
hash64 x1740 695.54 us/op 736.16 us/op 0.94
hashTwoObjects x1740 610.76 us/op 578.67 us/op 1.06
hash64 x2700000 1.1131 s/op 1.1408 s/op 0.98
hashTwoObjects x2700000 936.74 ms/op 897.47 ms/op 1.04
get_exitEpoch - ContainerType 287.00 ns/op 308.00 ns/op 0.93
get_exitEpoch - ContainerNodeStructType 294.00 ns/op 312.00 ns/op 0.94
set_exitEpoch - ContainerType 309.00 ns/op 390.00 ns/op 0.79
set_exitEpoch - ContainerNodeStructType 277.00 ns/op 481.00 ns/op 0.58
get_pubkey - ContainerType 993.00 ns/op 1.1350 us/op 0.87
get_pubkey - ContainerNodeStructType 253.00 ns/op 290.00 ns/op 0.87
hashTreeRoot - ContainerType 476.00 ns/op 554.00 ns/op 0.86
hashTreeRoot - ContainerNodeStructType 476.00 ns/op 589.00 ns/op 0.81
createProof - ContainerType 4.0650 us/op 4.8760 us/op 0.83
createProof - ContainerNodeStructType 19.775 us/op 22.871 us/op 0.86
serialize - ContainerType 1.7890 us/op 2.0360 us/op 0.88
serialize - ContainerNodeStructType 1.2750 us/op 1.4540 us/op 0.88
set_exitEpoch_and_hashTreeRoot - ContainerType 2.8850 us/op 2.8070 us/op 1.03
set_exitEpoch_and_hashTreeRoot - ContainerNodeStructType 7.0090 us/op 7.4820 us/op 0.94
doBatchHashTreeRootValidators 3.8330 us/op 3.7340 us/op 1.03
ContainerNodeStructViewDU hashTreeRoot 23.718 us/op 24.671 us/op 0.96
Array - for of 7.0850 us/op 5.6070 us/op 1.26
Array - for(;;) 6.6410 us/op 5.6280 us/op 1.18
basicListValue.readonlyValuesArray() 3.8276 ms/op 5.5073 ms/op 0.70
basicListValue.readonlyValuesArray() + loop all 4.5622 ms/op 4.7245 ms/op 0.97
compositeListValue.readonlyValuesArray() 32.441 ms/op 32.937 ms/op 0.98
compositeListValue.readonlyValuesArray() + loop all 33.051 ms/op 33.122 ms/op 1.00
Number64UintType - get balances list 4.8670 ms/op 5.1705 ms/op 0.94
Number64UintType - set balances list 10.224 ms/op 9.9517 ms/op 1.03
Number64UintType - get and increase 10 then set 43.161 ms/op 44.231 ms/op 0.98
Number64UintType - increase 10 using applyDelta 17.318 ms/op 17.719 ms/op 0.98
Number64UintType - increase 10 using applyDeltaInBatch 17.365 ms/op 17.441 ms/op 1.00
tree_newTreeFromUint64Deltas 22.659 ms/op 24.743 ms/op 0.92
unsafeUint8ArrayToTree 37.817 ms/op 40.839 ms/op 0.93
bitLength(50) 290.00 ns/op 315.00 ns/op 0.92
bitLengthStr(50) 246.00 ns/op 275.00 ns/op 0.89
bitLength(8000) 272.00 ns/op 290.00 ns/op 0.94
bitLengthStr(8000) 350.00 ns/op 356.00 ns/op 0.98
bitLength(250000) 257.00 ns/op 279.00 ns/op 0.92
bitLengthStr(250000) 330.00 ns/op 322.00 ns/op 1.02
merkleize 32 chunks 12.637 us/op 13.613 us/op 0.93
merkleizeBlocksBytes 32 chunks 3.2090 us/op 3.2080 us/op 1.00
merkleizeBlockArray 32 chunks 6.1790 us/op 6.7820 us/op 0.91
merkleize 128 chunks 49.936 us/op 53.775 us/op 0.93
merkleizeBlocksBytes 128 chunks 7.6370 us/op 7.2430 us/op 1.05
merkleizeBlockArray 128 chunks 17.884 us/op 18.332 us/op 0.98
merkleize 512 chunks 198.37 us/op 218.64 us/op 0.91
merkleizeBlocksBytes 512 chunks 24.728 us/op 23.051 us/op 1.07
merkleizeBlockArray 512 chunks 62.316 us/op 64.733 us/op 0.96
merkleize 1024 chunks 399.11 us/op 434.63 us/op 0.92
merkleizeBlocksBytes 1024 chunks 46.789 us/op 43.119 us/op 1.09
merkleizeBlockArray 1024 chunks 120.70 us/op 124.56 us/op 0.97
floor - Math.floor (53) 1.2316 ns/op 1.2468 ns/op 0.99
floor - << 0 (53) 1.2331 ns/op 1.2453 ns/op 0.99
floor - Math.floor (512) 1.2355 ns/op 1.2449 ns/op 0.99
floor - << 0 (512) 1.2360 ns/op 1.2461 ns/op 0.99
fnIf(0) 1.7169 ns/op 1.5587 ns/op 1.10
fnSwitch(0) 2.2887 ns/op 2.1801 ns/op 1.05
fnObj(0) 1.7618 ns/op 1.5574 ns/op 1.13
fnArr(0) 1.7616 ns/op 1.5590 ns/op 1.13
fnIf(4) 2.2856 ns/op 2.1793 ns/op 1.05
fnSwitch(4) 2.2912 ns/op 2.1787 ns/op 1.05
fnObj(4) 1.7619 ns/op 1.5656 ns/op 1.13
fnArr(4) 1.7603 ns/op 1.5591 ns/op 1.13
fnIf(9) 3.1666 ns/op 3.1122 ns/op 1.02
fnSwitch(9) 2.2889 ns/op 2.1790 ns/op 1.05
fnObj(9) 1.7606 ns/op 1.5598 ns/op 1.13
fnArr(9) 1.7608 ns/op 1.5574 ns/op 1.13
Container {a,b,vec} - as struct x100000 141.10 us/op 124.84 us/op 1.13
Container {a,b,vec} - as tree x100000 564.21 us/op 562.55 us/op 1.00
Container {a,vec,b} - as struct x100000 158.97 us/op 156.10 us/op 1.02
Container {a,vec,b} - as tree x100000 599.22 us/op 561.17 us/op 1.07
get 2 props x1000000 - rawObject 352.26 us/op 313.88 us/op 1.12
get 2 props x1000000 - proxy 71.007 ms/op 73.539 ms/op 0.97
get 2 props x1000000 - customObj 352.22 us/op 312.28 us/op 1.13
Simple object binary -> struct 612.00 ns/op 611.00 ns/op 1.00
Simple object binary -> tree_backed 1.7650 us/op 1.8260 us/op 0.97
Simple object struct -> tree_backed 2.3730 us/op 2.6130 us/op 0.91
Simple object tree_backed -> struct 1.6320 us/op 1.6060 us/op 1.02
Simple object struct -> binary 955.00 ns/op 1.0020 us/op 0.95
Simple object tree_backed -> binary 1.3370 us/op 1.3900 us/op 0.96
aggregationBits binary -> struct 515.00 ns/op 523.00 ns/op 0.98
aggregationBits binary -> tree_backed 2.2530 us/op 2.6200 us/op 0.86
aggregationBits struct -> tree_backed 2.7870 us/op 2.9790 us/op 0.94
aggregationBits tree_backed -> struct 1.0540 us/op 1.3230 us/op 0.80
aggregationBits struct -> binary 766.00 ns/op 811.00 ns/op 0.94
aggregationBits tree_backed -> binary 923.00 ns/op 960.00 ns/op 0.96
List(uint8) 100000 binary -> struct 1.0305 ms/op 997.50 us/op 1.03
List(uint8) 100000 binary -> tree_backed 292.23 us/op 312.82 us/op 0.93
List(uint8) 100000 struct -> tree_backed 1.4174 ms/op 1.3953 ms/op 1.02
List(uint8) 100000 tree_backed -> struct 1.0727 ms/op 1.0635 ms/op 1.01
List(uint8) 100000 struct -> binary 1.0851 ms/op 1.0830 ms/op 1.00
List(uint8) 100000 tree_backed -> binary 97.381 us/op 112.90 us/op 0.86
List(uint64Number) 100000 binary -> struct 1.4437 ms/op 1.4985 ms/op 0.96
List(uint64Number) 100000 binary -> tree_backed 4.7340 ms/op 5.2647 ms/op 0.90
List(uint64Number) 100000 struct -> tree_backed 6.9226 ms/op 7.4630 ms/op 0.93
List(uint64Number) 100000 tree_backed -> struct 2.5116 ms/op 2.6319 ms/op 0.95
List(uint64Number) 100000 struct -> binary 1.3970 ms/op 1.4787 ms/op 0.94
List(uint64Number) 100000 tree_backed -> binary 1.0902 ms/op 1.2992 ms/op 0.84
List(Uint64Bigint) 100000 binary -> struct 4.0711 ms/op 4.1482 ms/op 0.98
List(Uint64Bigint) 100000 binary -> tree_backed 5.0729 ms/op 5.8306 ms/op 0.87
List(Uint64Bigint) 100000 struct -> tree_backed 6.9627 ms/op 7.8491 ms/op 0.89
List(Uint64Bigint) 100000 tree_backed -> struct 5.2145 ms/op 5.5718 ms/op 0.94
List(Uint64Bigint) 100000 struct -> binary 2.0187 ms/op 2.1356 ms/op 0.95
List(Uint64Bigint) 100000 tree_backed -> binary 1.1631 ms/op 1.4979 ms/op 0.78
Vector(Root) 100000 binary -> struct 36.586 ms/op 43.545 ms/op 0.84
Vector(Root) 100000 binary -> tree_backed 41.041 ms/op 45.553 ms/op 0.90
Vector(Root) 100000 struct -> tree_backed 49.807 ms/op 57.529 ms/op 0.87
Vector(Root) 100000 tree_backed -> struct 51.573 ms/op 57.530 ms/op 0.90
Vector(Root) 100000 struct -> binary 2.8939 ms/op 3.2895 ms/op 0.88
Vector(Root) 100000 tree_backed -> binary 7.2133 ms/op 7.8967 ms/op 0.91
List(Validator) 100000 binary -> struct 120.32 ms/op 133.50 ms/op 0.90
List(Validator) 100000 binary -> tree_backed 359.53 ms/op 412.68 ms/op 0.87
List(Validator) 100000 struct -> tree_backed 373.09 ms/op 421.00 ms/op 0.89
List(Validator) 100000 tree_backed -> struct 216.51 ms/op 246.43 ms/op 0.88
List(Validator) 100000 struct -> binary 29.967 ms/op 30.788 ms/op 0.97
List(Validator) 100000 tree_backed -> binary 114.36 ms/op 134.90 ms/op 0.85
List(Validator-NS) 100000 binary -> struct 115.50 ms/op 118.07 ms/op 0.98
List(Validator-NS) 100000 binary -> tree_backed 159.03 ms/op 184.56 ms/op 0.86
List(Validator-NS) 100000 struct -> tree_backed 189.49 ms/op 212.50 ms/op 0.89
List(Validator-NS) 100000 tree_backed -> struct 154.78 ms/op 169.90 ms/op 0.91
List(Validator-NS) 100000 struct -> binary 7.3775 ms/op 8.2035 ms/op 0.90
List(Validator-NS) 100000 tree_backed -> binary 13.700 ms/op 14.524 ms/op 0.94
get epochStatuses - MutableVector 104.97 us/op 108.49 us/op 0.97
get epochStatuses - ViewDU 212.42 us/op 209.89 us/op 1.01
set epochStatuses - ListTreeView 2.1993 ms/op 2.2856 ms/op 0.96
set epochStatuses - ListTreeView - set() 378.93 us/op 465.80 us/op 0.81
set epochStatuses - ListTreeView - commit() 768.90 us/op 871.03 us/op 0.88
bitstring 535.73 ns/op 519.45 ns/op 1.03
bit mask 12.666 ns/op 13.345 ns/op 0.95
struct - increase slot to 1000000 1.0568 ms/op 934.41 us/op 1.13
UintNumberType - increase slot to 1000000 28.897 ms/op 25.475 ms/op 1.13
UintBigintType - increase slot to 1000000 179.99 ms/op 191.91 ms/op 0.94
UintBigint8 x 100000 tree_deserialize 5.5925 ms/op 5.8797 ms/op 0.95
UintBigint8 x 100000 tree_serialize 1.2036 ms/op 1.1331 ms/op 1.06
UintBigint16 x 100000 tree_deserialize 5.9608 ms/op 6.0084 ms/op 0.99
UintBigint16 x 100000 tree_serialize 1.4470 ms/op 1.5132 ms/op 0.96
UintBigint32 x 100000 tree_deserialize 5.8829 ms/op 6.1780 ms/op 0.95
UintBigint32 x 100000 tree_serialize 1.8603 ms/op 1.8755 ms/op 0.99
UintBigint64 x 100000 tree_deserialize 6.6948 ms/op 6.7895 ms/op 0.99
UintBigint64 x 100000 tree_serialize 1.8163 ms/op 2.0112 ms/op 0.90
UintBigint8 x 100000 value_deserialize 423.83 us/op 406.62 us/op 1.04
UintBigint8 x 100000 value_serialize 832.36 us/op 818.71 us/op 1.02
UintBigint16 x 100000 value_deserialize 458.52 us/op 467.66 us/op 0.98
UintBigint16 x 100000 value_serialize 848.67 us/op 893.42 us/op 0.95
UintBigint32 x 100000 value_deserialize 475.83 us/op 499.32 us/op 0.95
UintBigint32 x 100000 value_serialize 886.84 us/op 996.05 us/op 0.89
UintBigint64 x 100000 value_deserialize 541.61 us/op 534.28 us/op 1.01
UintBigint64 x 100000 value_serialize 1.0847 ms/op 1.1638 ms/op 0.93
UintBigint8 x 100000 deserialize 3.6191 ms/op 4.2851 ms/op 0.84
UintBigint8 x 100000 serialize 1.7900 ms/op 1.5287 ms/op 1.17
UintBigint16 x 100000 deserialize 3.6987 ms/op 4.5204 ms/op 0.82
UintBigint16 x 100000 serialize 1.7697 ms/op 1.6070 ms/op 1.10
UintBigint32 x 100000 deserialize 3.7317 ms/op 4.2967 ms/op 0.87
UintBigint32 x 100000 serialize 2.7805 ms/op 3.1275 ms/op 0.89
UintBigint64 x 100000 deserialize 4.6068 ms/op 4.8690 ms/op 0.95
UintBigint64 x 100000 serialize 1.6292 ms/op 1.7260 ms/op 0.94
UintBigint128 x 100000 deserialize 6.0171 ms/op 7.2428 ms/op 0.83
UintBigint128 x 100000 serialize 14.567 ms/op 17.165 ms/op 0.85
UintBigint256 x 100000 deserialize 9.0355 ms/op 10.756 ms/op 0.84
UintBigint256 x 100000 serialize 42.534 ms/op 49.067 ms/op 0.87
Slice from Uint8Array x25000 1.4612 ms/op 1.9443 ms/op 0.75
Slice from ArrayBuffer x25000 16.121 ms/op 17.381 ms/op 0.93
Slice from ArrayBuffer x25000 + new Uint8Array 17.268 ms/op 19.341 ms/op 0.89
Copy Uint8Array 100000 iterate 1.6383 ms/op 1.8214 ms/op 0.90
Copy Uint8Array 100000 slice 75.635 us/op 148.93 us/op 0.51
Copy Uint8Array 100000 Uint8Array.prototype.slice.call 75.797 us/op 141.35 us/op 0.54
Copy Buffer 100000 Uint8Array.prototype.slice.call 76.256 us/op 133.10 us/op 0.57
Copy Uint8Array 100000 slice + set 178.63 us/op 267.45 us/op 0.67
Copy Uint8Array 100000 subarray + set 76.620 us/op 130.63 us/op 0.59
Copy Uint8Array 100000 slice arrayBuffer 77.340 us/op 128.32 us/op 0.60
Uint64 deserialize 100000 - iterate Uint8Array 2.1892 ms/op 2.2524 ms/op 0.97
Uint64 deserialize 100000 - by Uint32A 2.0864 ms/op 2.3740 ms/op 0.88
Uint64 deserialize 100000 - by DataView.getUint32 x2 2.0799 ms/op 2.1330 ms/op 0.98
Uint64 deserialize 100000 - by DataView.getBigUint64 5.0842 ms/op 5.3045 ms/op 0.96
Uint64 deserialize 100000 - by byte 44.390 ms/op 40.711 ms/op 1.09

by benchmarkbot/action

matthewkeil pushed a commit that referenced this pull request Apr 21, 2026
🤖 I have created a release *beep* *boop*
---


<details><summary>as-sha256: 1.2.4</summary>

##
[1.2.4](as-sha256-v1.2.3...as-sha256-v1.2.4)
(2026-04-21)


### Bug Fixes

* update package.json repo links so provenance works
([#523](#523))
([d619c45](d619c45))
</details>

<details><summary>persistent-merkle-tree: 1.2.5</summary>

##
[1.2.5](persistent-merkle-tree-v1.2.4...persistent-merkle-tree-v1.2.5)
(2026-04-21)


### Bug Fixes

* update package.json repo links so provenance works
([#523](#523))
([d619c45](d619c45))


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * @chainsafe/as-sha256 bumped to 1.2.4
</details>

<details><summary>persistent-ts: 1.0.3</summary>

##
[1.0.3](persistent-ts-v1.0.2...persistent-ts-v1.0.3)
(2026-04-21)


### Bug Fixes

* update package.json repo links so provenance works
([#523](#523))
([d619c45](d619c45))
</details>

<details><summary>ssz: 1.3.4</summary>

##
[1.3.4](ssz-v1.3.3...ssz-v1.3.4)
(2026-04-21)


### Bug Fixes

* update package.json repo links so provenance works
([#523](#523))
([d619c45](d619c45))


### Miscellaneous

* bump @lodestar/spec-test-util to 1.42.0
([#518](#518))
([67a26aa](67a26aa))


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * @chainsafe/as-sha256 bumped to 1.2.4
    * @chainsafe/persistent-merkle-tree bumped to 1.2.5
  * devDependencies
    * @chainsafe/persistent-ts bumped to 1.0.3
</details>

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
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.

2 participants