Skip to content

chore: release master - #546

Merged
wemeetagain merged 1 commit into
masterfrom
release-please--branches--master
Sep 1, 2026
Merged

chore: release master#546
wemeetagain merged 1 commit into
masterfrom
release-please--branches--master

Conversation

@github-actions

@github-actions github-actions Bot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

🤖 I have created a release beep boop

ssz: 1.7.0

1.7.0 (2026-09-01)

Features

  • add optional progressive list limits (#545) (32b2588)

This PR was generated with Release Please. See documentation.

@wemeetagain
wemeetagain merged commit 51485d7 into master Sep 1, 2026
10 of 11 checks passed
@wemeetagain
wemeetagain deleted the release-please--branches--master branch September 1, 2026 14:37
@github-actions

github-actions Bot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor Author

⚠️ Performance Alert ⚠️

Possible performance regression was detected for some benchmarks.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold.

Benchmark suite Current: 2459e0e Previous: 5681f33 Ratio
Copy Uint8Array 100000 slice 253.20 us/op 72.063 us/op 3.51
Copy Uint8Array 100000 Uint8Array.prototype.slice.call 396.27 us/op 71.574 us/op 5.54
Full benchmark results
Benchmark suite Current: 2459e0e Previous: 5681f33 Ratio
digestTwoHashObjects 50023 times 38.457 ms/op 40.106 ms/op 0.96
digest2Bytes32 50023 times 42.099 ms/op 45.995 ms/op 0.92
digest 50023 times 41.528 ms/op 41.234 ms/op 1.01
input length 32 908.00 ns/op 909.00 ns/op 1.00
input length 64 1.0350 us/op 1.0310 us/op 1.00
input length 128 1.7500 us/op 1.7550 us/op 1.00
input length 256 2.5970 us/op 2.6130 us/op 0.99
input length 512 4.3410 us/op 4.3630 us/op 0.99
input length 1024 8.3300 us/op 8.3480 us/op 1.00
digest 1000000 times 658.82 ms/op 647.77 ms/op 1.02
hashObjectToByteArray 50023 times 980.54 us/op 980.69 us/op 1.00
byteArrayToHashObject 50023 times 1.0840 ms/op 1.0820 ms/op 1.00
digest64 200092 times 165.33 ms/op 166.61 ms/op 0.99
hash 200092 times using batchHash4UintArray64s 179.19 ms/op 174.71 ms/op 1.03
digest64HashObjects 200092 times 154.26 ms/op 155.03 ms/op 1.00
hash 200092 times using batchHash4HashObjectInputs 160.39 ms/op 163.93 ms/op 0.98
getGindicesAtDepth 3.0340 us/op 3.0440 us/op 1.00
iterateAtDepth 5.6430 us/op 5.6330 us/op 1.00
getGindexBits 335.00 ns/op 348.00 ns/op 0.96
gindexIterator 774.00 ns/op 766.00 ns/op 1.01
HashComputationLevel.push then loop 28.421 ms/op 26.904 ms/op 1.06
HashComputation[] push then loop 41.182 ms/op 40.892 ms/op 1.01
hash 2 32 bytes Uint8Array 500000 times - hashtree 144.28 ms/op 145.41 ms/op 0.99
batch hash 16 x 64 Uint8Array 31250 times - hashtree 24.954 ms/op 24.989 ms/op 1.00
hashTwoObjects 500000 times - hashtree 167.35 ms/op 163.31 ms/op 1.02
executeHashComputations - hashtree 8.1669 ms/op 9.3823 ms/op 0.87
hash 2 32 bytes Uint8Array 500000 times - as-sha256 394.10 ms/op 394.03 ms/op 1.00
batch hash 16 x 64 Uint8Array 31250 times - as-sha256 397.45 ms/op 369.58 ms/op 1.08
hashTwoObjects 500000 times - as-sha256 408.59 ms/op 406.82 ms/op 1.00
executeHashComputations - as-sha256 31.745 ms/op 35.783 ms/op 0.89
hash 2 32 bytes Uint8Array 500000 times - noble 1.0537 s/op 1.0282 s/op 1.02
batch hash 16 x 64 Uint8Array 31250 times - noble 1.0248 s/op 997.09 ms/op 1.03
hashTwoObjects 500000 times - noble 1.5687 s/op 1.6105 s/op 0.97
executeHashComputations - noble 29.010 ms/op 29.789 ms/op 0.97
getHashComputations 1.4434 ms/op 1.8808 ms/op 0.77
executeHashComputations 7.1559 ms/op 7.9080 ms/op 0.90
get root 12.972 ms/op 14.065 ms/op 0.92
getNodeH() x7812.5 avg hindex 12.207 us/op 12.215 us/op 1.00
getNodeH() x7812.5 index 0 4.6820 us/op 4.6900 us/op 1.00
getNodeH() x7812.5 index 7 4.6840 us/op 4.6910 us/op 1.00
getNodeH() x7812.5 index 7 with key array 4.6800 us/op 4.6880 us/op 1.00
new LeafNode() x7812.5 279.63 us/op 266.69 us/op 1.05
getHashComputations 250000 nodes 10.440 ms/op 9.9160 ms/op 1.05
batchHash 250000 nodes 63.778 ms/op 68.005 ms/op 0.94
get root 250000 nodes 95.168 ms/op 95.385 ms/op 1.00
getHashComputations 500000 nodes 19.403 ms/op 18.910 ms/op 1.03
batchHash 500000 nodes 153.79 ms/op 157.24 ms/op 0.98
get root 500000 nodes 188.63 ms/op 189.50 ms/op 1.00
getHashComputations 1000000 nodes 39.974 ms/op 40.574 ms/op 0.99
batchHash 1000000 nodes 266.27 ms/op 276.33 ms/op 0.96
get root 1000000 nodes 380.61 ms/op 378.81 ms/op 1.00
multiproof - depth 15, 1 requested leaves 6.5350 us/op 6.4360 us/op 1.02
tree offset multiproof - depth 15, 1 requested leaves 15.663 us/op 15.452 us/op 1.01
compact multiproof - depth 15, 1 requested leaves 2.3540 us/op 2.3650 us/op 1.00
multiproof - depth 15, 2 requested leaves 9.6250 us/op 9.5400 us/op 1.01
tree offset multiproof - depth 15, 2 requested leaves 18.491 us/op 18.259 us/op 1.01
compact multiproof - depth 15, 2 requested leaves 2.3650 us/op 2.3940 us/op 0.99
multiproof - depth 15, 3 requested leaves 13.744 us/op 13.587 us/op 1.01
tree offset multiproof - depth 15, 3 requested leaves 23.902 us/op 23.560 us/op 1.01
compact multiproof - depth 15, 3 requested leaves 2.6650 us/op 2.7130 us/op 0.98
multiproof - depth 15, 4 requested leaves 18.455 us/op 18.287 us/op 1.01
tree offset multiproof - depth 15, 4 requested leaves 29.581 us/op 29.333 us/op 1.01
compact multiproof - depth 15, 4 requested leaves 3.1150 us/op 3.1610 us/op 0.99
packedRootsBytesToLeafNodes bytes 4000 offset 0 5.1390 us/op 4.7260 us/op 1.09
packedRootsBytesToLeafNodes bytes 4000 offset 1 5.1460 us/op 4.7200 us/op 1.09
packedRootsBytesToLeafNodes bytes 4000 offset 2 5.1210 us/op 4.7180 us/op 1.09
packedRootsBytesToLeafNodes bytes 4000 offset 3 5.1370 us/op 4.7140 us/op 1.09
subtreeFillToContents depth 40 count 250000 17.039 ms/op 16.697 ms/op 1.02
setRoot - gindexBitstring 18.540 ms/op 18.140 ms/op 1.02
setRoot - gindex 20.043 ms/op 18.838 ms/op 1.06
getRoot - gindexBitstring 1.9615 ms/op 1.9525 ms/op 1.00
getRoot - gindex 2.5991 ms/op 2.4638 ms/op 1.05
getHashObject then setHashObject 20.075 ms/op 20.287 ms/op 0.99
setNodeWithFn 18.331 ms/op 18.064 ms/op 1.01
getNodeAtDepth depth 0 x100000 214.64 us/op 214.31 us/op 1.00
setNodeAtDepth depth 0 x100000 1.8561 ms/op 1.8311 ms/op 1.01
getNodesAtDepth depth 0 x100000 281.13 us/op 280.41 us/op 1.00
setNodesAtDepth depth 0 x100000 690.81 us/op 693.10 us/op 1.00
getNodeAtDepth depth 1 x100000 280.16 us/op 280.13 us/op 1.00
setNodeAtDepth depth 1 x100000 7.0507 ms/op 6.8448 ms/op 1.03
getNodesAtDepth depth 1 x100000 406.74 us/op 405.69 us/op 1.00
setNodesAtDepth depth 1 x100000 5.9483 ms/op 5.4828 ms/op 1.08
getNodeAtDepth depth 2 x100000 656.08 us/op 653.70 us/op 1.00
setNodeAtDepth depth 2 x100000 13.340 ms/op 13.081 ms/op 1.02
getNodesAtDepth depth 2 x100000 15.334 ms/op 16.425 ms/op 0.93
setNodesAtDepth depth 2 x100000 19.770 ms/op 22.365 ms/op 0.88
tree.getNodesAtDepth - gindexes 11.297 ms/op 7.2941 ms/op 1.55
tree.getNodesAtDepth - push all nodes 1.0588 ms/op 1.0466 ms/op 1.01
tree.getNodesAtDepth - navigation 154.37 us/op 154.34 us/op 1.00
tree.setNodesAtDepth - indexes 601.96 us/op 635.66 us/op 0.95
set at depth 8 641.00 ns/op 630.00 ns/op 1.02
set at depth 16 943.00 ns/op 933.00 ns/op 1.01
set at depth 32 1.5830 us/op 1.5640 us/op 1.01
iterateNodesAtDepth 8 256 12.023 us/op 12.007 us/op 1.00
getNodesAtDepth 8 256 3.1600 us/op 3.1590 us/op 1.00
iterateNodesAtDepth 16 65536 3.7809 ms/op 3.7838 ms/op 1.00
getNodesAtDepth 16 65536 959.12 us/op 962.34 us/op 1.00
iterateNodesAtDepth 32 250000 14.251 ms/op 13.877 ms/op 1.03
getNodesAtDepth 32 250000 3.6526 ms/op 3.6266 ms/op 1.01
iterateNodesAtDepth 40 250000 14.290 ms/op 14.152 ms/op 1.01
getNodesAtDepth 40 250000 3.6526 ms/op 3.6091 ms/op 1.01
250000 validators root getter 102.38 ms/op 100.04 ms/op 1.02
250000 validators batchHash() 68.881 ms/op 67.914 ms/op 1.01
250000 validators hashComputations 13.545 ms/op 11.678 ms/op 1.16
bitlist bytes to struct (120,90) 354.00 ns/op 359.00 ns/op 0.99
bitlist bytes to tree (120,90) 1.7690 us/op 1.7490 us/op 1.01
bitlist bytes to struct (2048,2048) 726.00 ns/op 695.00 ns/op 1.04
bitlist bytes to tree (2048,2048) 3.6410 us/op 3.4480 us/op 1.06
ByteListType - deserialize 7.1099 ms/op 6.3346 ms/op 1.12
BasicListType - deserialize 7.0564 ms/op 7.0804 ms/op 1.00
ByteListType - serialize 6.7384 ms/op 7.8874 ms/op 0.85
BasicListType - serialize 12.477 ms/op 11.776 ms/op 1.06
BasicListType - tree_convertToStruct 19.904 ms/op 21.662 ms/op 0.92
List[uint8, 68719476736] len 300000 ViewDU.getAll() + iterate 4.1459 ms/op 4.1215 ms/op 1.01
List[uint8, 68719476736] len 300000 ViewDU.get(i) 3.7309 ms/op 3.6749 ms/op 1.02
Array.push len 300000 empty Array - number 4.1528 ms/op 4.0704 ms/op 1.02
Array.set len 300000 from new Array - number 963.08 us/op 955.73 us/op 1.01
Array.set len 300000 - number 4.1630 ms/op 4.1508 ms/op 1.00
Uint8Array.set len 300000 275.17 us/op 280.04 us/op 0.98
Uint32Array.set len 300000 764.82 us/op 570.85 us/op 1.34
Container({a: uint8, b: uint8}) getViewDU x300000 25.821 ms/op 27.367 ms/op 0.94
ContainerNodeStruct({a: uint8, b: uint8}) getViewDU x300000 9.0802 ms/op 9.0698 ms/op 1.00
List(Container) len 300000 ViewDU.getAllReadonly() + iterate 92.454 ms/op 88.906 ms/op 1.04
List(Container) len 300000 ViewDU.getAllReadonlyValues() + iterate 274.88 ms/op 266.20 ms/op 1.03
List(Container) len 300000 ViewDU.get(i) 15.915 ms/op 8.7767 ms/op 1.81
List(Container) len 300000 ViewDU.getReadonly(i) 14.316 ms/op 8.9109 ms/op 1.61
List(ContainerNodeStruct) len 300000 ViewDU.getAllReadonly() + iterate 15.042 ms/op 14.820 ms/op 1.01
List(ContainerNodeStruct) len 300000 ViewDU.getAllReadonlyValues() + iterate 4.0657 ms/op 4.1944 ms/op 0.97
List(ContainerNodeStruct) len 300000 ViewDU.get(i) 11.559 ms/op 7.7867 ms/op 1.48
List(ContainerNodeStruct) len 300000 ViewDU.getReadonly(i) 12.304 ms/op 6.9937 ms/op 1.76
Array.push len 300000 empty Array - object 4.3969 ms/op 4.1621 ms/op 1.06
Array.set len 300000 from new Array - object 1.0871 ms/op 1.2269 ms/op 0.89
Array.set len 300000 - object 4.3505 ms/op 4.3414 ms/op 1.00
cachePermanentRootStruct no cache 2.6190 us/op 2.6640 us/op 0.98
cachePermanentRootStruct with cache 156.00 ns/op 155.00 ns/op 1.01
epochParticipation len 250000 rws 7813 2.2790 ms/op 2.2231 ms/op 1.03
Deneb BeaconBlock.hashTreeRoot(), numTransaction=200 4.3344 ms/op 4.1758 ms/op 1.04
BeaconState ViewDU batchHashTreeRoot vc=200000 mod=100000 212.72 ms/op 195.71 ms/op 1.09
BeaconState ViewDU batchHashTreeRoot - commit step vc=200000 mod=100000 174.35 ms/op 169.57 ms/op 1.03
BeaconState ViewDU batchHashTreeRoot - hash step vc=200000 mod=100000 36.273 ms/op 32.366 ms/op 1.12
BeaconState ViewDU hashTreeRoot() vc=200000 mod=100000 672.08 ms/op 649.79 ms/op 1.03
BeaconState ViewDU hashTreeRoot - commit step vc=200000 mod=100000 52.459 ms/op 50.914 ms/op 1.03
BeaconState ViewDU hashTreeRoot - validator tree creation vc=100000 mod=100000 247.97 ms/op 237.84 ms/op 1.04
deserialize Attestation - tree 3.1160 us/op 3.0360 us/op 1.03
deserialize Attestation - struct 1.6260 us/op 1.6290 us/op 1.00
deserialize Attestation - struct (reuse bytes) 1.1910 us/op 1.1590 us/op 1.03
deserialize SignedAggregateAndProof - tree 4.2610 us/op 4.1370 us/op 1.03
deserialize SignedAggregateAndProof - struct 3.1500 us/op 3.0620 us/op 1.03
deserialize SignedAggregateAndProof - struct (reuse bytes) 1.5810 us/op 1.5690 us/op 1.01
deserialize SyncCommitteeMessage - tree 1.1660 us/op 1.1540 us/op 1.01
deserialize SyncCommitteeMessage - struct 957.00 ns/op 957.00 ns/op 1.00
deserialize SyncCommitteeMessage - struct (reuse bytes) 604.00 ns/op 586.00 ns/op 1.03
deserialize SignedContributionAndProof - tree 2.5670 us/op 2.4840 us/op 1.03
deserialize SignedContributionAndProof - struct 2.2210 us/op 2.4550 us/op 0.90
deserialize SignedContributionAndProof - struct (reuse bytes) 1.0050 us/op 1.0010 us/op 1.00
deserialize SignedBeaconBlock - tree 269.52 us/op 257.44 us/op 1.05
deserialize SignedBeaconBlock - struct 128.03 us/op 121.53 us/op 1.05
deserialize SignedBeaconBlock - struct (reuse bytes) 66.842 us/op 67.705 us/op 0.99
BeaconState vc 300000 - deserialize tree 330.05 ms/op 321.27 ms/op 1.03
BeaconState vc 300000 - serialize tree 103.82 ms/op 102.74 ms/op 1.01
BeaconState.historicalRoots vc 300000 - deserialize tree 650.00 ns/op 632.00 ns/op 1.03
BeaconState.historicalRoots vc 300000 - serialize tree 557.00 ns/op 539.00 ns/op 1.03
BeaconState.validators vc 300000 - deserialize tree 302.01 ms/op 292.93 ms/op 1.03
BeaconState.validators vc 300000 - serialize tree 49.101 ms/op 49.924 ms/op 0.98
BeaconState.balances vc 300000 - deserialize tree 8.3254 ms/op 8.0616 ms/op 1.03
BeaconState.balances vc 300000 - serialize tree 10.312 ms/op 9.7869 ms/op 1.05
BeaconState.previousEpochParticipation vc 300000 - deserialize tree 689.02 us/op 685.23 us/op 1.01
BeaconState.previousEpochParticipation vc 300000 - serialize tree 691.47 us/op 598.20 us/op 1.16
BeaconState.currentEpochParticipation vc 300000 - deserialize tree 688.09 us/op 686.12 us/op 1.00
BeaconState.currentEpochParticipation vc 300000 - serialize tree 643.69 us/op 633.88 us/op 1.02
BeaconState.inactivityScores vc 300000 - deserialize tree 8.2809 ms/op 8.0147 ms/op 1.03
BeaconState.inactivityScores vc 300000 - serialize tree 9.3597 ms/op 5.7522 ms/op 1.63
hashTreeRoot Attestation - struct 7.8130 us/op 7.7300 us/op 1.01
hashTreeRoot Attestation - tree 7.2290 us/op 7.3030 us/op 0.99
hashTreeRoot SignedAggregateAndProof - struct 11.232 us/op 11.167 us/op 1.01
hashTreeRoot SignedAggregateAndProof - tree 10.943 us/op 10.966 us/op 1.00
hashTreeRoot SyncCommitteeMessage - struct 2.6970 us/op 2.6680 us/op 1.01
hashTreeRoot SyncCommitteeMessage - tree 2.6780 us/op 2.6320 us/op 1.02
hashTreeRoot SignedContributionAndProof - struct 6.8180 us/op 6.7430 us/op 1.01
hashTreeRoot SignedContributionAndProof - tree 7.5250 us/op 7.5900 us/op 0.99
hashTreeRoot SignedBeaconBlock - struct 688.51 us/op 684.67 us/op 1.01
hashTreeRoot SignedBeaconBlock - tree 661.59 us/op 671.80 us/op 0.98
hashTreeRoot Validator - struct 3.5470 us/op 3.4870 us/op 1.02
hashTreeRoot Validator - tree 5.4390 us/op 5.2770 us/op 1.03
BeaconState vc 300000 - hashTreeRoot tree 1.8420 s/op 1.7838 s/op 1.03
BeaconState vc 300000 - batchHashTreeRoot tree 3.5485 s/op 3.3413 s/op 1.06
BeaconState.historicalRoots vc 300000 - hashTreeRoot tree 781.00 ns/op 800.00 ns/op 0.98
BeaconState.validators vc 300000 - hashTreeRoot tree 1.8275 s/op 1.7517 s/op 1.04
BeaconState.balances vc 300000 - hashTreeRoot tree 29.509 ms/op 28.070 ms/op 1.05
BeaconState.previousEpochParticipation vc 300000 - hashTreeRoot tree 3.5296 ms/op 3.4714 ms/op 1.02
BeaconState.currentEpochParticipation vc 300000 - hashTreeRoot tree 3.5360 ms/op 3.4578 ms/op 1.02
BeaconState.inactivityScores vc 300000 - hashTreeRoot tree 29.451 ms/op 28.064 ms/op 1.05
hash64 x18 6.3060 us/op 6.3510 us/op 0.99
hashTwoObjects x18 6.5410 us/op 6.1930 us/op 1.06
hash64 x1740 586.00 us/op 592.09 us/op 0.99
hashTwoObjects x1740 611.94 us/op 576.33 us/op 1.06
hash64 x2700000 930.94 ms/op 939.49 ms/op 0.99
hashTwoObjects x2700000 948.87 ms/op 900.51 ms/op 1.05
get_exitEpoch - ContainerType 165.00 ns/op 173.00 ns/op 0.95
get_exitEpoch - ContainerNodeStructType 176.00 ns/op 176.00 ns/op 1.00
set_exitEpoch - ContainerType 186.00 ns/op 194.00 ns/op 0.96
set_exitEpoch - ContainerNodeStructType 177.00 ns/op 179.00 ns/op 0.99
get_pubkey - ContainerType 768.00 ns/op 832.00 ns/op 0.92
get_pubkey - ContainerNodeStructType 165.00 ns/op 163.00 ns/op 1.01
hashTreeRoot - ContainerType 298.00 ns/op 307.00 ns/op 0.97
hashTreeRoot - ContainerNodeStructType 287.00 ns/op 294.00 ns/op 0.98
createProof - ContainerType 2.9770 us/op 3.0190 us/op 0.99
createProof - ContainerNodeStructType 17.619 us/op 17.297 us/op 1.02
serialize - ContainerType 1.4260 us/op 1.4580 us/op 0.98
serialize - ContainerNodeStructType 970.00 ns/op 948.00 ns/op 1.02
set_exitEpoch_and_hashTreeRoot - ContainerType 2.1490 us/op 2.0980 us/op 1.02
set_exitEpoch_and_hashTreeRoot - ContainerNodeStructType 5.9890 us/op 5.8110 us/op 1.03
doBatchHashTreeRootValidators 3.3370 us/op 3.3420 us/op 1.00
ContainerNodeStructViewDU hashTreeRoot 21.350 us/op 20.581 us/op 1.04
Array - for of 11.456 us/op 3.4690 us/op 3.30
Array - for(;;) 10.768 us/op 2.8460 us/op 3.78
basicListValue.readonlyValuesArray() 3.1750 ms/op 3.0940 ms/op 1.03
basicListValue.readonlyValuesArray() + loop all 4.5363 ms/op 4.0605 ms/op 1.12
compositeListValue.readonlyValuesArray() 10.947 ms/op 10.475 ms/op 1.05
compositeListValue.readonlyValuesArray() + loop all 12.908 ms/op 10.926 ms/op 1.18
Number64UintType - get balances list 2.7332 ms/op 2.7349 ms/op 1.00
Number64UintType - set balances list 10.125 ms/op 10.286 ms/op 0.98
Number64UintType - get and increase 10 then set 29.713 ms/op 30.327 ms/op 0.98
Number64UintType - increase 10 using applyDelta 14.792 ms/op 16.317 ms/op 0.91
Number64UintType - increase 10 using applyDeltaInBatch 14.792 ms/op 15.781 ms/op 0.94
tree_newTreeFromUint64Deltas 13.165 ms/op 13.048 ms/op 1.01
unsafeUint8ArrayToTree 21.036 ms/op 20.807 ms/op 1.01
bitLength(50) 188.00 ns/op 183.00 ns/op 1.03
bitLengthStr(50) 193.00 ns/op 193.00 ns/op 1.00
bitLength(8000) 188.00 ns/op 177.00 ns/op 1.06
bitLengthStr(8000) 237.00 ns/op 228.00 ns/op 1.04
bitLength(250000) 188.00 ns/op 177.00 ns/op 1.06
bitLengthStr(250000) 268.00 ns/op 263.00 ns/op 1.02
merkleize 32 chunks 11.264 us/op 11.541 us/op 0.98
merkleizeBlocksBytes 32 chunks 2.6940 us/op 2.6440 us/op 1.02
merkleizeBlockArray 32 chunks 4.9230 us/op 4.9650 us/op 0.99
merkleize 128 chunks 44.967 us/op 45.846 us/op 0.98
merkleizeBlocksBytes 128 chunks 6.7200 us/op 6.6600 us/op 1.01
merkleizeBlockArray 128 chunks 14.250 us/op 14.342 us/op 0.99
merkleize 512 chunks 180.15 us/op 184.18 us/op 0.98
merkleizeBlocksBytes 512 chunks 21.514 us/op 21.462 us/op 1.00
merkleizeBlockArray 512 chunks 49.307 us/op 49.498 us/op 1.00
merkleize 1024 chunks 365.86 us/op 373.07 us/op 0.98
merkleizeBlocksBytes 1024 chunks 40.802 us/op 40.725 us/op 1.00
merkleizeBlockArray 1024 chunks 95.776 us/op 96.035 us/op 1.00
floor - Math.floor (53) 0.35036 ns/op 0.35012 ns/op 1.00
floor - << 0 (53) 0.35028 ns/op 0.35956 ns/op 0.97
floor - Math.floor (512) 0.35028 ns/op 0.35019 ns/op 1.00
floor - << 0 (512) 0.35018 ns/op 0.35021 ns/op 1.00
fnIf(0) 1.5004 ns/op 1.5015 ns/op 1.00
fnSwitch(0) 2.4896 ns/op 2.4876 ns/op 1.00
fnObj(0) 0.35037 ns/op 0.35012 ns/op 1.00
fnArr(0) 0.35021 ns/op 0.35019 ns/op 1.00
fnIf(4) 2.1763 ns/op 2.1789 ns/op 1.00
fnSwitch(4) 2.1780 ns/op 2.1776 ns/op 1.00
fnObj(4) 0.35026 ns/op 0.35029 ns/op 1.00
fnArr(4) 0.35024 ns/op 0.35006 ns/op 1.00
fnIf(9) 3.1120 ns/op 3.1089 ns/op 1.00
fnSwitch(9) 2.1774 ns/op 2.1772 ns/op 1.00
fnObj(9) 0.35023 ns/op 0.35017 ns/op 1.00
fnArr(9) 0.35008 ns/op 0.35021 ns/op 1.00
Container {a,b,vec} - as struct x100000 34.832 us/op 34.834 us/op 1.00
Container {a,b,vec} - as tree x100000 653.55 us/op 1.2147 ms/op 0.54
Container {a,vec,b} - as struct x100000 77.217 us/op 77.220 us/op 1.00
Container {a,vec,b} - as tree x100000 653.63 us/op 964.41 us/op 0.68
get 2 props x1000000 - rawObject 311.25 us/op 311.29 us/op 1.00
get 2 props x1000000 - proxy 77.760 ms/op 78.375 ms/op 0.99
get 2 props x1000000 - customObj 311.30 us/op 311.22 us/op 1.00
Simple object binary -> struct 418.00 ns/op 445.00 ns/op 0.94
Simple object binary -> tree_backed 931.00 ns/op 926.00 ns/op 1.01
Simple object struct -> tree_backed 1.4390 us/op 1.4550 us/op 0.99
Simple object tree_backed -> struct 1.2480 us/op 1.2540 us/op 1.00
Simple object struct -> binary 720.00 ns/op 716.00 ns/op 1.01
Simple object tree_backed -> binary 1.0090 us/op 1.0670 us/op 0.95
aggregationBits binary -> struct 363.00 ns/op 377.00 ns/op 0.96
aggregationBits binary -> tree_backed 1.8670 us/op 1.7980 us/op 1.04
aggregationBits struct -> tree_backed 2.1830 us/op 2.3840 us/op 0.92
aggregationBits tree_backed -> struct 829.00 ns/op 896.00 ns/op 0.93
aggregationBits struct -> binary 591.00 ns/op 646.00 ns/op 0.91
aggregationBits tree_backed -> binary 743.00 ns/op 708.00 ns/op 1.05
List(uint8) 100000 binary -> struct 717.45 us/op 706.60 us/op 1.02
List(uint8) 100000 binary -> tree_backed 231.47 us/op 229.41 us/op 1.01
List(uint8) 100000 struct -> tree_backed 1.5868 ms/op 1.5812 ms/op 1.00
List(uint8) 100000 tree_backed -> struct 838.26 us/op 816.27 us/op 1.03
List(uint8) 100000 struct -> binary 1.3521 ms/op 1.3508 ms/op 1.00
List(uint8) 100000 tree_backed -> binary 229.58 us/op 212.66 us/op 1.08
List(uint64Number) 100000 binary -> struct 1.0576 ms/op 1.0472 ms/op 1.01
List(uint64Number) 100000 binary -> tree_backed 1.9666 ms/op 1.9351 ms/op 1.02
List(uint64Number) 100000 struct -> tree_backed 3.6741 ms/op 12.992 ms/op 0.28
List(uint64Number) 100000 tree_backed -> struct 2.1088 ms/op 2.1384 ms/op 0.99
List(uint64Number) 100000 struct -> binary 2.6896 ms/op 2.6409 ms/op 1.02
List(uint64Number) 100000 tree_backed -> binary 950.62 us/op 959.12 us/op 0.99
List(Uint64Bigint) 100000 binary -> struct 1.5996 ms/op 1.5877 ms/op 1.01
List(Uint64Bigint) 100000 binary -> tree_backed 1.9645 ms/op 1.9545 ms/op 1.01
List(Uint64Bigint) 100000 struct -> tree_backed 3.5038 ms/op 3.4730 ms/op 1.01
List(Uint64Bigint) 100000 tree_backed -> struct 2.6519 ms/op 2.4799 ms/op 1.07
List(Uint64Bigint) 100000 struct -> binary 2.2497 ms/op 2.2107 ms/op 1.02
List(Uint64Bigint) 100000 tree_backed -> binary 896.72 us/op 3.9908 ms/op 0.22
Vector(Root) 100000 binary -> struct 12.016 ms/op 11.467 ms/op 1.05
Vector(Root) 100000 binary -> tree_backed 18.299 ms/op 17.784 ms/op 1.03
Vector(Root) 100000 struct -> tree_backed 20.449 ms/op 20.400 ms/op 1.00
Vector(Root) 100000 tree_backed -> struct 15.116 ms/op 15.652 ms/op 0.97
Vector(Root) 100000 struct -> binary 5.3667 ms/op 7.5797 ms/op 0.71
Vector(Root) 100000 tree_backed -> binary 5.4066 ms/op 5.3508 ms/op 1.01
List(Validator) 100000 binary -> struct 66.067 ms/op 65.601 ms/op 1.01
List(Validator) 100000 binary -> tree_backed 200.55 ms/op 191.78 ms/op 1.05
List(Validator) 100000 struct -> tree_backed 231.14 ms/op 221.96 ms/op 1.04
List(Validator) 100000 tree_backed -> struct 137.54 ms/op 148.33 ms/op 0.93
List(Validator) 100000 struct -> binary 44.639 ms/op 42.443 ms/op 1.05
List(Validator) 100000 tree_backed -> binary 67.938 ms/op 77.712 ms/op 0.87
List(Validator-NS) 100000 binary -> struct 65.803 ms/op 65.561 ms/op 1.00
List(Validator-NS) 100000 binary -> tree_backed 98.009 ms/op 98.237 ms/op 1.00
List(Validator-NS) 100000 struct -> tree_backed 124.76 ms/op 110.09 ms/op 1.13
List(Validator-NS) 100000 tree_backed -> struct 85.392 ms/op 96.297 ms/op 0.89
List(Validator-NS) 100000 struct -> binary 11.785 ms/op 11.458 ms/op 1.03
List(Validator-NS) 100000 tree_backed -> binary 22.615 ms/op 11.582 ms/op 1.95
get epochStatuses - MutableVector 103.72 us/op 118.10 us/op 0.88
get epochStatuses - ViewDU 174.97 us/op 208.75 us/op 0.84
set epochStatuses - ListTreeView 1.9015 ms/op 1.8775 ms/op 1.01
set epochStatuses - ListTreeView - set() 480.99 us/op 489.04 us/op 0.98
set epochStatuses - ListTreeView - commit() 780.67 us/op 790.47 us/op 0.99
bitstring 463.28 ns/op 462.93 ns/op 1.00
bit mask 7.2377 ns/op 7.2129 ns/op 1.00
struct - increase slot to 1000000 350.15 us/op 350.00 us/op 1.00
UintNumberType - increase slot to 1000000 24.759 ms/op 24.310 ms/op 1.02
UintBigintType - increase slot to 1000000 155.56 ms/op 156.32 ms/op 1.00
UintBigint8 x 100000 tree_deserialize 5.6082 ms/op 5.0599 ms/op 1.11
UintBigint8 x 100000 tree_serialize 1.2572 ms/op 1.1603 ms/op 1.08
UintBigint16 x 100000 tree_deserialize 5.0950 ms/op 5.0786 ms/op 1.00
UintBigint16 x 100000 tree_serialize 1.2928 ms/op 823.84 us/op 1.57
UintBigint32 x 100000 tree_deserialize 4.7941 ms/op 4.2517 ms/op 1.13
UintBigint32 x 100000 tree_serialize 1.6234 ms/op 1.3379 ms/op 1.21
UintBigint64 x 100000 tree_deserialize 5.2166 ms/op 4.8637 ms/op 1.07
UintBigint64 x 100000 tree_serialize 1.6388 ms/op 1.7157 ms/op 0.96
UintBigint8 x 100000 value_deserialize 425.75 us/op 404.41 us/op 1.05
UintBigint8 x 100000 value_serialize 395.77 us/op 393.88 us/op 1.00
UintBigint16 x 100000 value_deserialize 466.72 us/op 466.55 us/op 1.00
UintBigint16 x 100000 value_serialize 392.79 us/op 373.17 us/op 1.05
UintBigint32 x 100000 value_deserialize 466.83 us/op 466.74 us/op 1.00
UintBigint32 x 100000 value_serialize 431.71 us/op 425.88 us/op 1.01
UintBigint64 x 100000 value_deserialize 529.01 us/op 528.94 us/op 1.00
UintBigint64 x 100000 value_serialize 562.54 us/op 541.73 us/op 1.04
UintBigint8 x 100000 deserialize 1.9884 ms/op 1.9608 ms/op 1.01
UintBigint8 x 100000 serialize 1.6102 ms/op 1.6121 ms/op 1.00
UintBigint16 x 100000 deserialize 2.0469 ms/op 2.0495 ms/op 1.00
UintBigint16 x 100000 serialize 1.5942 ms/op 1.5962 ms/op 1.00
UintBigint32 x 100000 deserialize 1.9379 ms/op 1.9120 ms/op 1.01
UintBigint32 x 100000 serialize 2.9333 ms/op 2.7771 ms/op 1.06
UintBigint64 x 100000 deserialize 1.9730 ms/op 1.9395 ms/op 1.02
UintBigint64 x 100000 serialize 1.1191 ms/op 1.2307 ms/op 0.91
UintBigint128 x 100000 deserialize 2.3728 ms/op 2.3587 ms/op 1.01
UintBigint128 x 100000 serialize 11.816 ms/op 11.957 ms/op 0.99
UintBigint256 x 100000 deserialize 3.1088 ms/op 3.0543 ms/op 1.02
UintBigint256 x 100000 serialize 37.664 ms/op 37.972 ms/op 0.99
Slice from Uint8Array x25000 957.46 us/op 939.34 us/op 1.02
Slice from ArrayBuffer x25000 10.875 ms/op 12.957 ms/op 0.84
Slice from ArrayBuffer x25000 + new Uint8Array 17.908 ms/op 18.539 ms/op 0.97
Copy Uint8Array 100000 iterate 851.53 us/op 864.52 us/op 0.98
Copy Uint8Array 100000 slice 253.20 us/op 72.063 us/op 3.51
Copy Uint8Array 100000 Uint8Array.prototype.slice.call 396.27 us/op 71.574 us/op 5.54
Copy Buffer 100000 Uint8Array.prototype.slice.call 79.372 us/op 71.705 us/op 1.11
Copy Uint8Array 100000 slice + set 158.25 us/op 143.28 us/op 1.10
Copy Uint8Array 100000 subarray + set 78.281 us/op 73.113 us/op 1.07
Copy Uint8Array 100000 slice arrayBuffer 80.938 us/op 74.677 us/op 1.08
Uint64 deserialize 100000 - iterate Uint8Array 1.2814 ms/op 1.2637 ms/op 1.01
Uint64 deserialize 100000 - by Uint32A 1.2743 ms/op 1.2735 ms/op 1.00
Uint64 deserialize 100000 - by DataView.getUint32 x2 1.4483 ms/op 1.4529 ms/op 1.00
Uint64 deserialize 100000 - by DataView.getBigUint64 3.7661 ms/op 3.8369 ms/op 0.98
Uint64 deserialize 100000 - by byte 15.862 ms/op 15.737 ms/op 1.01

by benchmarkbot/action

@github-actions

github-actions Bot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor Author

🤖 Created releases:

🌻

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.

2 participants