Skip to content

chore: release master - #550

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

nflaig merged 1 commit into
masterfrom
release-please--branches--master

Conversation

@github-actions

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

Copy link
Copy Markdown
Contributor

🤖 I have created a release beep boop

ssz: 1.8.0

1.8.0 (2026-09-14)

Features

  • allow zero limit on progressive lists (#549) (7892e40)

Bug Fixes

  • validate list limits at construction (#551) (f8c8162)

This PR was generated with Release Please. See documentation.

nflaig
nflaig previously approved these changes Sep 14, 2026
@nflaig
nflaig enabled auto-merge (squash) September 14, 2026 13:00
@nflaig
nflaig disabled auto-merge September 14, 2026 13:06
@github-actions

github-actions Bot commented Sep 14, 2026

Copy link
Copy Markdown
Contributor Author

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: a10b847 Previous: 7892e40 Ratio
digestTwoHashObjects 50023 times 38.426 ms/op 38.570 ms/op 1.00
digest2Bytes32 50023 times 42.197 ms/op 43.294 ms/op 0.97
digest 50023 times 41.279 ms/op 41.412 ms/op 1.00
input length 32 928.00 ns/op 897.00 ns/op 1.03
input length 64 1.0200 us/op 1.0430 us/op 0.98
input length 128 1.7860 us/op 1.7600 us/op 1.01
input length 256 2.6390 us/op 2.6070 us/op 1.01
input length 512 4.3920 us/op 4.3410 us/op 1.01
input length 1024 8.3560 us/op 8.3120 us/op 1.01
digest 1000000 times 647.87 ms/op 639.74 ms/op 1.01
hashObjectToByteArray 50023 times 980.35 us/op 980.24 us/op 1.00
byteArrayToHashObject 50023 times 1.0758 ms/op 1.0859 ms/op 0.99
digest64 200092 times 165.37 ms/op 165.52 ms/op 1.00
hash 200092 times using batchHash4UintArray64s 173.94 ms/op 172.71 ms/op 1.01
digest64HashObjects 200092 times 154.11 ms/op 154.44 ms/op 1.00
hash 200092 times using batchHash4HashObjectInputs 146.32 ms/op 164.41 ms/op 0.89
getGindicesAtDepth 3.1340 us/op 3.1300 us/op 1.00
iterateAtDepth 5.7680 us/op 5.7560 us/op 1.00
getGindexBits 330.00 ns/op 348.00 ns/op 0.95
gindexIterator 770.00 ns/op 775.00 ns/op 0.99
HashComputationLevel.push then loop 26.161 ms/op 27.788 ms/op 0.94
HashComputation[] push then loop 40.791 ms/op 40.381 ms/op 1.01
hash 2 32 bytes Uint8Array 500000 times - hashtree 147.37 ms/op 150.29 ms/op 0.98
batch hash 16 x 64 Uint8Array 31250 times - hashtree 24.655 ms/op 24.512 ms/op 1.01
hashTwoObjects 500000 times - hashtree 168.61 ms/op 169.23 ms/op 1.00
executeHashComputations - hashtree 7.6266 ms/op 8.9871 ms/op 0.85
hash 2 32 bytes Uint8Array 500000 times - as-sha256 396.90 ms/op 392.88 ms/op 1.01
batch hash 16 x 64 Uint8Array 31250 times - as-sha256 366.01 ms/op 421.50 ms/op 0.87
hashTwoObjects 500000 times - as-sha256 408.22 ms/op 404.74 ms/op 1.01
executeHashComputations - as-sha256 30.998 ms/op 35.478 ms/op 0.87
hash 2 32 bytes Uint8Array 500000 times - noble 911.29 ms/op 1.0019 s/op 0.91
batch hash 16 x 64 Uint8Array 31250 times - noble 868.39 ms/op 977.85 ms/op 0.89
hashTwoObjects 500000 times - noble 1.3434 s/op 1.5732 s/op 0.85
executeHashComputations - noble 28.743 ms/op 29.178 ms/op 0.99
getHashComputations 1.3102 ms/op 1.6571 ms/op 0.79
executeHashComputations 6.7025 ms/op 6.9217 ms/op 0.97
get root 12.506 ms/op 12.773 ms/op 0.98
getNodeH() x7812.5 avg hindex 12.205 us/op 12.221 us/op 1.00
getNodeH() x7812.5 index 0 4.6880 us/op 4.6900 us/op 1.00
getNodeH() x7812.5 index 7 4.6820 us/op 4.6840 us/op 1.00
getNodeH() x7812.5 index 7 with key array 4.6840 us/op 4.6830 us/op 1.00
new LeafNode() x7812.5 257.12 us/op 258.37 us/op 1.00
getHashComputations 250000 nodes 10.190 ms/op 10.250 ms/op 0.99
batchHash 250000 nodes 63.140 ms/op 64.267 ms/op 0.98
get root 250000 nodes 93.762 ms/op 93.112 ms/op 1.01
getHashComputations 500000 nodes 19.897 ms/op 20.223 ms/op 0.98
batchHash 500000 nodes 152.53 ms/op 149.45 ms/op 1.02
get root 500000 nodes 186.11 ms/op 185.15 ms/op 1.01
getHashComputations 1000000 nodes 42.756 ms/op 38.577 ms/op 1.11
batchHash 1000000 nodes 274.26 ms/op 270.35 ms/op 1.01
get root 1000000 nodes 373.91 ms/op 373.34 ms/op 1.00
multiproof - depth 15, 1 requested leaves 6.4260 us/op 6.3980 us/op 1.00
tree offset multiproof - depth 15, 1 requested leaves 15.545 us/op 15.479 us/op 1.00
compact multiproof - depth 15, 1 requested leaves 2.2970 us/op 2.3890 us/op 0.96
multiproof - depth 15, 2 requested leaves 9.5470 us/op 9.3960 us/op 1.02
tree offset multiproof - depth 15, 2 requested leaves 18.548 us/op 18.245 us/op 1.02
compact multiproof - depth 15, 2 requested leaves 2.3080 us/op 2.3970 us/op 0.96
multiproof - depth 15, 3 requested leaves 13.808 us/op 13.505 us/op 1.02
tree offset multiproof - depth 15, 3 requested leaves 24.278 us/op 23.736 us/op 1.02
compact multiproof - depth 15, 3 requested leaves 2.6170 us/op 2.6970 us/op 0.97
multiproof - depth 15, 4 requested leaves 18.395 us/op 18.081 us/op 1.02
tree offset multiproof - depth 15, 4 requested leaves 29.753 us/op 29.271 us/op 1.02
compact multiproof - depth 15, 4 requested leaves 3.0740 us/op 3.1440 us/op 0.98
packedRootsBytesToLeafNodes bytes 4000 offset 0 4.5120 us/op 4.5440 us/op 0.99
packedRootsBytesToLeafNodes bytes 4000 offset 1 4.5180 us/op 4.6680 us/op 0.97
packedRootsBytesToLeafNodes bytes 4000 offset 2 4.5230 us/op 4.5560 us/op 0.99
packedRootsBytesToLeafNodes bytes 4000 offset 3 4.5190 us/op 4.5580 us/op 0.99
subtreeFillToContents depth 40 count 250000 16.335 ms/op 15.847 ms/op 1.03
setRoot - gindexBitstring 17.481 ms/op 18.188 ms/op 0.96
setRoot - gindex 18.395 ms/op 19.087 ms/op 0.96
getRoot - gindexBitstring 1.9553 ms/op 1.9842 ms/op 0.99
getRoot - gindex 2.6005 ms/op 2.6436 ms/op 0.98
getHashObject then setHashObject 19.157 ms/op 19.981 ms/op 0.96
setNodeWithFn 17.419 ms/op 18.194 ms/op 0.96
getNodeAtDepth depth 0 x100000 214.28 us/op 215.19 us/op 1.00
setNodeAtDepth depth 0 x100000 1.8315 ms/op 1.9969 ms/op 0.92
getNodesAtDepth depth 0 x100000 281.19 us/op 280.63 us/op 1.00
setNodesAtDepth depth 0 x100000 748.54 us/op 731.70 us/op 1.02
getNodeAtDepth depth 1 x100000 280.54 us/op 280.29 us/op 1.00
setNodeAtDepth depth 1 x100000 6.4949 ms/op 6.7813 ms/op 0.96
getNodesAtDepth depth 1 x100000 405.35 us/op 405.86 us/op 1.00
setNodesAtDepth depth 1 x100000 5.4694 ms/op 5.5407 ms/op 0.99
getNodeAtDepth depth 2 x100000 683.84 us/op 653.63 us/op 1.05
setNodeAtDepth depth 2 x100000 12.932 ms/op 13.259 ms/op 0.98
getNodesAtDepth depth 2 x100000 15.949 ms/op 16.149 ms/op 0.99
setNodesAtDepth depth 2 x100000 18.820 ms/op 22.631 ms/op 0.83
tree.getNodesAtDepth - gindexes 4.8750 ms/op 6.4323 ms/op 0.76
tree.getNodesAtDepth - push all nodes 1.0596 ms/op 1.0814 ms/op 0.98
tree.getNodesAtDepth - navigation 154.38 us/op 154.35 us/op 1.00
tree.setNodesAtDepth - indexes 597.42 us/op 621.80 us/op 0.96
set at depth 8 641.00 ns/op 649.00 ns/op 0.99
set at depth 16 944.00 ns/op 943.00 ns/op 1.00
set at depth 32 1.5700 us/op 1.5730 us/op 1.00
iterateNodesAtDepth 8 256 12.547 us/op 11.950 us/op 1.05
getNodesAtDepth 8 256 3.1310 us/op 3.0820 us/op 1.02
iterateNodesAtDepth 16 65536 3.9178 ms/op 3.7206 ms/op 1.05
getNodesAtDepth 16 65536 1.0032 ms/op 959.35 us/op 1.05
iterateNodesAtDepth 32 250000 14.330 ms/op 13.980 ms/op 1.03
getNodesAtDepth 32 250000 3.5704 ms/op 3.5881 ms/op 1.00
iterateNodesAtDepth 40 250000 14.362 ms/op 14.073 ms/op 1.02
getNodesAtDepth 40 250000 3.5946 ms/op 3.6015 ms/op 1.00
250000 validators root getter 96.347 ms/op 96.979 ms/op 0.99
250000 validators batchHash() 62.193 ms/op 66.960 ms/op 0.93
250000 validators hashComputations 10.261 ms/op 11.370 ms/op 0.90
bitlist bytes to struct (120,90) 343.00 ns/op 351.00 ns/op 0.98
bitlist bytes to tree (120,90) 1.5910 us/op 1.6410 us/op 0.97
bitlist bytes to struct (2048,2048) 643.00 ns/op 679.00 ns/op 0.95
bitlist bytes to tree (2048,2048) 2.7940 us/op 3.0460 us/op 0.92
ByteListType - deserialize 6.2406 ms/op 6.5272 ms/op 0.96
BasicListType - deserialize 7.1311 ms/op 7.0043 ms/op 1.02
ByteListType - serialize 6.4548 ms/op 6.9438 ms/op 0.93
BasicListType - serialize 11.307 ms/op 10.804 ms/op 1.05
BasicListType - tree_convertToStruct 19.080 ms/op 20.862 ms/op 0.91
List[uint8, 68719476736] len 300000 ViewDU.getAll() + iterate 4.1231 ms/op 3.9574 ms/op 1.04
List[uint8, 68719476736] len 300000 ViewDU.get(i) 3.6682 ms/op 3.6696 ms/op 1.00
Array.push len 300000 empty Array - number 3.9992 ms/op 4.0133 ms/op 1.00
Array.set len 300000 from new Array - number 1.1427 ms/op 1.1504 ms/op 0.99
Array.set len 300000 - number 4.0028 ms/op 4.1997 ms/op 0.95
Uint8Array.set len 300000 227.38 us/op 298.20 us/op 0.76
Uint32Array.set len 300000 459.49 us/op 809.45 us/op 0.57
Container({a: uint8, b: uint8}) getViewDU x300000 26.883 ms/op 41.536 ms/op 0.65
ContainerNodeStruct({a: uint8, b: uint8}) getViewDU x300000 9.0697 ms/op 9.0548 ms/op 1.00
List(Container) len 300000 ViewDU.getAllReadonly() + iterate 84.926 ms/op 87.668 ms/op 0.97
List(Container) len 300000 ViewDU.getAllReadonlyValues() + iterate 215.33 ms/op 262.28 ms/op 0.82
List(Container) len 300000 ViewDU.get(i) 7.3138 ms/op 11.149 ms/op 0.66
List(Container) len 300000 ViewDU.getReadonly(i) 7.2848 ms/op 13.706 ms/op 0.53
List(ContainerNodeStruct) len 300000 ViewDU.getAllReadonly() + iterate 14.832 ms/op 14.698 ms/op 1.01
List(ContainerNodeStruct) len 300000 ViewDU.getAllReadonlyValues() + iterate 3.2807 ms/op 3.4955 ms/op 0.94
List(ContainerNodeStruct) len 300000 ViewDU.get(i) 7.0187 ms/op 7.7438 ms/op 0.91
List(ContainerNodeStruct) len 300000 ViewDU.getReadonly(i) 6.9220 ms/op 12.561 ms/op 0.55
Array.push len 300000 empty Array - object 4.2927 ms/op 4.1617 ms/op 1.03
Array.set len 300000 from new Array - object 1.2283 ms/op 1.2282 ms/op 1.00
Array.set len 300000 - object 4.2368 ms/op 4.2272 ms/op 1.00
cachePermanentRootStruct no cache 2.5340 us/op 2.5760 us/op 0.98
cachePermanentRootStruct with cache 157.00 ns/op 157.00 ns/op 1.00
epochParticipation len 250000 rws 7813 2.2074 ms/op 2.3981 ms/op 0.92
Deneb BeaconBlock.hashTreeRoot(), numTransaction=200 4.0770 ms/op 4.1872 ms/op 0.97
BeaconState ViewDU batchHashTreeRoot vc=200000 mod=100000 189.57 ms/op 204.81 ms/op 0.93
BeaconState ViewDU batchHashTreeRoot - commit step vc=200000 mod=100000 156.23 ms/op 161.04 ms/op 0.97
BeaconState ViewDU batchHashTreeRoot - hash step vc=200000 mod=100000 33.841 ms/op 35.487 ms/op 0.95
BeaconState ViewDU hashTreeRoot() vc=200000 mod=100000 636.56 ms/op 643.50 ms/op 0.99
BeaconState ViewDU hashTreeRoot - commit step vc=200000 mod=100000 40.821 ms/op 41.172 ms/op 0.99
BeaconState ViewDU hashTreeRoot - validator tree creation vc=100000 mod=100000 231.23 ms/op 236.28 ms/op 0.98
deserialize Attestation - tree 2.9580 us/op 2.9790 us/op 0.99
deserialize Attestation - struct 1.5640 us/op 1.6180 us/op 0.97
deserialize Attestation - struct (reuse bytes) 1.1740 us/op 1.1290 us/op 1.04
deserialize SignedAggregateAndProof - tree 4.1230 us/op 4.0970 us/op 1.01
deserialize SignedAggregateAndProof - struct 2.5030 us/op 2.7020 us/op 0.93
deserialize SignedAggregateAndProof - struct (reuse bytes) 1.5630 us/op 1.5090 us/op 1.04
deserialize SyncCommitteeMessage - tree 1.1310 us/op 1.1270 us/op 1.00
deserialize SyncCommitteeMessage - struct 902.00 ns/op 952.00 ns/op 0.95
deserialize SyncCommitteeMessage - struct (reuse bytes) 581.00 ns/op 573.00 ns/op 1.01
deserialize SignedContributionAndProof - tree 2.4480 us/op 2.4290 us/op 1.01
deserialize SignedContributionAndProof - struct 1.8930 us/op 2.0110 us/op 0.94
deserialize SignedContributionAndProof - struct (reuse bytes) 984.00 ns/op 959.00 ns/op 1.03
deserialize SignedBeaconBlock - tree 244.80 us/op 248.60 us/op 0.98
deserialize SignedBeaconBlock - struct 103.96 us/op 123.58 us/op 0.84
deserialize SignedBeaconBlock - struct (reuse bytes) 69.304 us/op 67.046 us/op 1.03
BeaconState vc 300000 - deserialize tree 313.25 ms/op 465.28 ms/op 0.67
BeaconState vc 300000 - serialize tree 94.978 ms/op 119.53 ms/op 0.79
BeaconState.historicalRoots vc 300000 - deserialize tree 631.00 ns/op 619.00 ns/op 1.02
BeaconState.historicalRoots vc 300000 - serialize tree 520.00 ns/op 524.00 ns/op 0.99
BeaconState.validators vc 300000 - deserialize tree 287.75 ms/op 285.58 ms/op 1.01
BeaconState.validators vc 300000 - serialize tree 57.239 ms/op 42.754 ms/op 1.34
BeaconState.balances vc 300000 - deserialize tree 8.1120 ms/op 8.0468 ms/op 1.01
BeaconState.balances vc 300000 - serialize tree 10.643 ms/op 11.144 ms/op 0.96
BeaconState.previousEpochParticipation vc 300000 - deserialize tree 686.64 us/op 682.18 us/op 1.01
BeaconState.previousEpochParticipation vc 300000 - serialize tree 491.94 us/op 667.12 us/op 0.74
BeaconState.currentEpochParticipation vc 300000 - deserialize tree 684.56 us/op 681.13 us/op 1.01
BeaconState.currentEpochParticipation vc 300000 - serialize tree 472.20 us/op 603.65 us/op 0.78
BeaconState.inactivityScores vc 300000 - deserialize tree 7.8619 ms/op 8.0459 ms/op 0.98
BeaconState.inactivityScores vc 300000 - serialize tree 8.8197 ms/op 11.451 ms/op 0.77
hashTreeRoot Attestation - struct 7.7100 us/op 7.7840 us/op 0.99
hashTreeRoot Attestation - tree 7.0130 us/op 7.2100 us/op 0.97
hashTreeRoot SignedAggregateAndProof - struct 11.060 us/op 11.100 us/op 1.00
hashTreeRoot SignedAggregateAndProof - tree 10.648 us/op 10.934 us/op 0.97
hashTreeRoot SyncCommitteeMessage - struct 2.6320 us/op 2.6400 us/op 1.00
hashTreeRoot SyncCommitteeMessage - tree 2.5940 us/op 2.6610 us/op 0.97
hashTreeRoot SignedContributionAndProof - struct 6.7020 us/op 6.7300 us/op 1.00
hashTreeRoot SignedContributionAndProof - tree 7.3280 us/op 7.5560 us/op 0.97
hashTreeRoot SignedBeaconBlock - struct 678.99 us/op 690.78 us/op 0.98
hashTreeRoot SignedBeaconBlock - tree 645.56 us/op 659.96 us/op 0.98
hashTreeRoot Validator - struct 3.4260 us/op 3.4580 us/op 0.99
hashTreeRoot Validator - tree 5.2220 us/op 5.4880 us/op 0.95
BeaconState vc 300000 - hashTreeRoot tree 1.7691 s/op 1.7964 s/op 0.98
BeaconState vc 300000 - batchHashTreeRoot tree 3.3813 s/op 3.3123 s/op 1.02
BeaconState.historicalRoots vc 300000 - hashTreeRoot tree 750.00 ns/op 763.00 ns/op 0.98
BeaconState.validators vc 300000 - hashTreeRoot tree 1.7297 s/op 1.7774 s/op 0.97
BeaconState.balances vc 300000 - hashTreeRoot tree 27.556 ms/op 27.972 ms/op 0.99
BeaconState.previousEpochParticipation vc 300000 - hashTreeRoot tree 3.4208 ms/op 3.4831 ms/op 0.98
BeaconState.currentEpochParticipation vc 300000 - hashTreeRoot tree 3.4163 ms/op 3.4772 ms/op 0.98
BeaconState.inactivityScores vc 300000 - hashTreeRoot tree 27.398 ms/op 27.932 ms/op 0.98
hash64 x18 6.5430 us/op 6.5510 us/op 1.00
hashTwoObjects x18 6.2340 us/op 6.4350 us/op 0.97
hash64 x1740 618.12 us/op 615.35 us/op 1.00
hashTwoObjects x1740 582.55 us/op 599.05 us/op 0.97
hash64 x2700000 972.54 ms/op 973.61 ms/op 1.00
hashTwoObjects x2700000 906.98 ms/op 930.89 ms/op 0.97
get_exitEpoch - ContainerType 172.00 ns/op 166.00 ns/op 1.04
get_exitEpoch - ContainerNodeStructType 175.00 ns/op 183.00 ns/op 0.96
set_exitEpoch - ContainerType 193.00 ns/op 185.00 ns/op 1.04
set_exitEpoch - ContainerNodeStructType 174.00 ns/op 188.00 ns/op 0.93
get_pubkey - ContainerType 705.00 ns/op 772.00 ns/op 0.91
get_pubkey - ContainerNodeStructType 164.00 ns/op 165.00 ns/op 0.99
hashTreeRoot - ContainerType 298.00 ns/op 304.00 ns/op 0.98
hashTreeRoot - ContainerNodeStructType 289.00 ns/op 295.00 ns/op 0.98
createProof - ContainerType 2.9550 us/op 3.0290 us/op 0.98
createProof - ContainerNodeStructType 16.971 us/op 17.477 us/op 0.97
serialize - ContainerType 1.3470 us/op 1.4270 us/op 0.94
serialize - ContainerNodeStructType 874.00 ns/op 885.00 ns/op 0.99
set_exitEpoch_and_hashTreeRoot - ContainerType 2.0550 us/op 2.0670 us/op 0.99
set_exitEpoch_and_hashTreeRoot - ContainerNodeStructType 5.7300 us/op 5.8830 us/op 0.97
doBatchHashTreeRootValidators 3.2530 us/op 3.2590 us/op 1.00
ContainerNodeStructViewDU hashTreeRoot 20.379 us/op 20.822 us/op 0.98
Array - for of 3.4800 us/op 5.8260 us/op 0.60
Array - for(;;) 2.8360 us/op 5.4940 us/op 0.52
basicListValue.readonlyValuesArray() 3.0616 ms/op 3.1028 ms/op 0.99
basicListValue.readonlyValuesArray() + loop all 3.8459 ms/op 3.8682 ms/op 0.99
compositeListValue.readonlyValuesArray() 10.177 ms/op 10.434 ms/op 0.98
compositeListValue.readonlyValuesArray() + loop all 12.769 ms/op 12.815 ms/op 1.00
Number64UintType - get balances list 2.7451 ms/op 4.5354 ms/op 0.61
Number64UintType - set balances list 9.9869 ms/op 10.042 ms/op 0.99
Number64UintType - get and increase 10 then set 30.218 ms/op 29.927 ms/op 1.01
Number64UintType - increase 10 using applyDelta 15.633 ms/op 15.820 ms/op 0.99
Number64UintType - increase 10 using applyDeltaInBatch 15.744 ms/op 15.872 ms/op 0.99
tree_newTreeFromUint64Deltas 13.148 ms/op 11.960 ms/op 1.10
unsafeUint8ArrayToTree 23.518 ms/op 21.566 ms/op 1.09
bitLength(50) 185.00 ns/op 189.00 ns/op 0.98
bitLengthStr(50) 186.00 ns/op 189.00 ns/op 0.98
bitLength(8000) 183.00 ns/op 188.00 ns/op 0.97
bitLengthStr(8000) 229.00 ns/op 227.00 ns/op 1.01
bitLength(250000) 183.00 ns/op 188.00 ns/op 0.97
bitLengthStr(250000) 264.00 ns/op 268.00 ns/op 0.99
merkleize 32 chunks 11.389 us/op 11.374 us/op 1.00
merkleizeBlocksBytes 32 chunks 2.6510 us/op 2.6360 us/op 1.01
merkleizeBlockArray 32 chunks 4.9530 us/op 5.0480 us/op 0.98
merkleize 128 chunks 45.319 us/op 45.452 us/op 1.00
merkleizeBlocksBytes 128 chunks 6.6850 us/op 6.6560 us/op 1.00
merkleizeBlockArray 128 chunks 14.548 us/op 14.486 us/op 1.00
merkleize 512 chunks 181.57 us/op 181.66 us/op 1.00
merkleizeBlocksBytes 512 chunks 21.661 us/op 21.469 us/op 1.01
merkleizeBlockArray 512 chunks 50.958 us/op 49.655 us/op 1.03
merkleize 1024 chunks 367.39 us/op 368.61 us/op 1.00
merkleizeBlocksBytes 1024 chunks 41.095 us/op 40.778 us/op 1.01
merkleizeBlockArray 1024 chunks 98.806 us/op 96.137 us/op 1.03
floor - Math.floor (53) 0.35347 ns/op 0.35017 ns/op 1.01
floor - << 0 (53) 0.35125 ns/op 0.35017 ns/op 1.00
floor - Math.floor (512) 0.35053 ns/op 0.35024 ns/op 1.00
floor - << 0 (512) 0.35028 ns/op 0.35019 ns/op 1.00
fnIf(0) 1.5056 ns/op 1.5078 ns/op 1.00
fnSwitch(0) 2.4891 ns/op 2.4877 ns/op 1.00
fnObj(0) 0.35032 ns/op 0.35007 ns/op 1.00
fnArr(0) 0.35033 ns/op 0.35000 ns/op 1.00
fnIf(4) 2.1759 ns/op 2.1768 ns/op 1.00
fnSwitch(4) 2.1775 ns/op 2.1759 ns/op 1.00
fnObj(4) 0.35098 ns/op 0.35007 ns/op 1.00
fnArr(4) 0.35108 ns/op 0.34999 ns/op 1.00
fnIf(9) 3.1099 ns/op 3.1091 ns/op 1.00
fnSwitch(9) 2.1847 ns/op 2.1763 ns/op 1.00
fnObj(9) 0.35171 ns/op 0.34995 ns/op 1.01
fnArr(9) 0.35045 ns/op 0.35000 ns/op 1.00
Container {a,b,vec} - as struct x100000 34.870 us/op 34.827 us/op 1.00
Container {a,b,vec} - as tree x100000 1.2138 ms/op 1.2137 ms/op 1.00
Container {a,vec,b} - as struct x100000 78.067 us/op 77.216 us/op 1.01
Container {a,vec,b} - as tree x100000 964.50 us/op 963.98 us/op 1.00
get 2 props x1000000 - rawObject 311.11 us/op 311.13 us/op 1.00
get 2 props x1000000 - proxy 80.538 ms/op 77.729 ms/op 1.04
get 2 props x1000000 - customObj 311.27 us/op 311.06 us/op 1.00
Simple object binary -> struct 420.00 ns/op 440.00 ns/op 0.95
Simple object binary -> tree_backed 921.00 ns/op 952.00 ns/op 0.97
Simple object struct -> tree_backed 1.3930 us/op 1.4310 us/op 0.97
Simple object tree_backed -> struct 1.1630 us/op 1.1730 us/op 0.99
Simple object struct -> binary 663.00 ns/op 688.00 ns/op 0.96
Simple object tree_backed -> binary 963.00 ns/op 985.00 ns/op 0.98
aggregationBits binary -> struct 357.00 ns/op 358.00 ns/op 1.00
aggregationBits binary -> tree_backed 1.6520 us/op 1.7260 us/op 0.96
aggregationBits struct -> tree_backed 1.9410 us/op 2.1080 us/op 0.92
aggregationBits tree_backed -> struct 749.00 ns/op 770.00 ns/op 0.97
aggregationBits struct -> binary 549.00 ns/op 579.00 ns/op 0.95
aggregationBits tree_backed -> binary 637.00 ns/op 675.00 ns/op 0.94
List(uint8) 100000 binary -> struct 747.39 us/op 701.21 us/op 1.07
List(uint8) 100000 binary -> tree_backed 230.57 us/op 228.63 us/op 1.01
List(uint8) 100000 struct -> tree_backed 1.5572 ms/op 1.5781 ms/op 0.99
List(uint8) 100000 tree_backed -> struct 861.30 us/op 808.84 us/op 1.06
List(uint8) 100000 struct -> binary 1.4119 ms/op 1.3525 ms/op 1.04
List(uint8) 100000 tree_backed -> binary 228.86 us/op 268.61 us/op 0.85
List(uint64Number) 100000 binary -> struct 1.0676 ms/op 1.0468 ms/op 1.02
List(uint64Number) 100000 binary -> tree_backed 1.9434 ms/op 1.9332 ms/op 1.01
List(uint64Number) 100000 struct -> tree_backed 3.6735 ms/op 3.6367 ms/op 1.01
List(uint64Number) 100000 tree_backed -> struct 2.0623 ms/op 2.0246 ms/op 1.02
List(uint64Number) 100000 struct -> binary 3.1181 ms/op 2.3083 ms/op 1.35
List(uint64Number) 100000 tree_backed -> binary 925.09 us/op 929.16 us/op 1.00
List(Uint64Bigint) 100000 binary -> struct 1.6070 ms/op 1.5697 ms/op 1.02
List(Uint64Bigint) 100000 binary -> tree_backed 1.9415 ms/op 1.9311 ms/op 1.01
List(Uint64Bigint) 100000 struct -> tree_backed 3.4621 ms/op 3.4524 ms/op 1.00
List(Uint64Bigint) 100000 tree_backed -> struct 2.5214 ms/op 2.4668 ms/op 1.02
List(Uint64Bigint) 100000 struct -> binary 2.2137 ms/op 2.3265 ms/op 0.95
List(Uint64Bigint) 100000 tree_backed -> binary 2.0276 ms/op 2.0104 ms/op 1.01
Vector(Root) 100000 binary -> struct 11.235 ms/op 10.838 ms/op 1.04
Vector(Root) 100000 binary -> tree_backed 20.233 ms/op 18.588 ms/op 1.09
Vector(Root) 100000 struct -> tree_backed 23.243 ms/op 20.525 ms/op 1.13
Vector(Root) 100000 tree_backed -> struct 14.827 ms/op 14.867 ms/op 1.00
Vector(Root) 100000 struct -> binary 4.4733 ms/op 5.4310 ms/op 0.82
Vector(Root) 100000 tree_backed -> binary 5.2852 ms/op 5.3446 ms/op 0.99
List(Validator) 100000 binary -> struct 70.702 ms/op 65.012 ms/op 1.09
List(Validator) 100000 binary -> tree_backed 206.52 ms/op 190.69 ms/op 1.08
List(Validator) 100000 struct -> tree_backed 236.34 ms/op 216.68 ms/op 1.09
List(Validator) 100000 tree_backed -> struct 151.87 ms/op 140.76 ms/op 1.08
List(Validator) 100000 struct -> binary 40.932 ms/op 43.887 ms/op 0.93
List(Validator) 100000 tree_backed -> binary 110.36 ms/op 72.309 ms/op 1.53
List(Validator-NS) 100000 binary -> struct 66.294 ms/op 65.657 ms/op 1.01
List(Validator-NS) 100000 binary -> tree_backed 97.278 ms/op 98.152 ms/op 0.99
List(Validator-NS) 100000 struct -> tree_backed 103.55 ms/op 103.21 ms/op 1.00
List(Validator-NS) 100000 tree_backed -> struct 83.148 ms/op 81.141 ms/op 1.02
List(Validator-NS) 100000 struct -> binary 11.022 ms/op 11.713 ms/op 0.94
List(Validator-NS) 100000 tree_backed -> binary 18.772 ms/op 21.023 ms/op 0.89
get epochStatuses - MutableVector 103.24 us/op 88.127 us/op 1.17
get epochStatuses - ViewDU 207.32 us/op 205.74 us/op 1.01
set epochStatuses - ListTreeView 1.8622 ms/op 1.9003 ms/op 0.98
set epochStatuses - ListTreeView - set() 482.05 us/op 479.39 us/op 1.01
set epochStatuses - ListTreeView - commit() 745.65 us/op 761.63 us/op 0.98
bitstring 460.10 ns/op 460.43 ns/op 1.00
bit mask 7.2334 ns/op 7.1928 ns/op 1.01
struct - increase slot to 1000000 350.12 us/op 350.17 us/op 1.00
UintNumberType - increase slot to 1000000 28.988 ms/op 24.297 ms/op 1.19
UintBigintType - increase slot to 1000000 165.71 ms/op 174.00 ms/op 0.95
UintBigint8 x 100000 tree_deserialize 5.5276 ms/op 5.8225 ms/op 0.95
UintBigint8 x 100000 tree_serialize 1.1615 ms/op 1.1602 ms/op 1.00
UintBigint16 x 100000 tree_deserialize 5.7073 ms/op 5.9151 ms/op 0.96
UintBigint16 x 100000 tree_serialize 829.45 us/op 639.52 us/op 1.30
UintBigint32 x 100000 tree_deserialize 4.3864 ms/op 3.8143 ms/op 1.15
UintBigint32 x 100000 tree_serialize 1.3219 ms/op 1.3345 ms/op 0.99
UintBigint64 x 100000 tree_deserialize 5.9403 ms/op 5.1586 ms/op 1.15
UintBigint64 x 100000 tree_serialize 1.7033 ms/op 1.7153 ms/op 0.99
UintBigint8 x 100000 value_deserialize 404.77 us/op 404.37 us/op 1.00
UintBigint8 x 100000 value_serialize 377.72 us/op 370.64 us/op 1.02
UintBigint16 x 100000 value_deserialize 467.32 us/op 466.81 us/op 1.00
UintBigint16 x 100000 value_serialize 365.10 us/op 362.48 us/op 1.01
UintBigint32 x 100000 value_deserialize 467.09 us/op 466.67 us/op 1.00
UintBigint32 x 100000 value_serialize 405.84 us/op 410.34 us/op 0.99
UintBigint64 x 100000 value_deserialize 529.26 us/op 528.78 us/op 1.00
UintBigint64 x 100000 value_serialize 523.88 us/op 541.34 us/op 0.97
UintBigint8 x 100000 deserialize 2.0098 ms/op 1.9251 ms/op 1.04
UintBigint8 x 100000 serialize 1.5541 ms/op 1.5597 ms/op 1.00
UintBigint16 x 100000 deserialize 2.0645 ms/op 2.0098 ms/op 1.03
UintBigint16 x 100000 serialize 2.8421 ms/op 3.0021 ms/op 0.95
UintBigint32 x 100000 deserialize 2.1308 ms/op 1.9031 ms/op 1.12
UintBigint32 x 100000 serialize 2.7332 ms/op 2.7599 ms/op 0.99
UintBigint64 x 100000 deserialize 2.0388 ms/op 1.9321 ms/op 1.06
UintBigint64 x 100000 serialize 1.2382 ms/op 1.2378 ms/op 1.00
UintBigint128 x 100000 deserialize 2.3198 ms/op 2.3104 ms/op 1.00
UintBigint128 x 100000 serialize 11.830 ms/op 12.652 ms/op 0.94
UintBigint256 x 100000 deserialize 3.1102 ms/op 3.0480 ms/op 1.02
UintBigint256 x 100000 serialize 37.215 ms/op 37.627 ms/op 0.99
Slice from Uint8Array x25000 942.89 us/op 945.23 us/op 1.00
Slice from ArrayBuffer x25000 12.493 ms/op 12.427 ms/op 1.01
Slice from ArrayBuffer x25000 + new Uint8Array 18.474 ms/op 17.441 ms/op 1.06
Copy Uint8Array 100000 iterate 847.47 us/op 952.09 us/op 0.89
Copy Uint8Array 100000 slice 187.84 us/op 75.122 us/op 2.50
Copy Uint8Array 100000 Uint8Array.prototype.slice.call 85.242 us/op 72.810 us/op 1.17
Copy Buffer 100000 Uint8Array.prototype.slice.call 84.433 us/op 74.522 us/op 1.13
Copy Uint8Array 100000 slice + set 165.90 us/op 146.61 us/op 1.13
Copy Uint8Array 100000 subarray + set 84.989 us/op 75.106 us/op 1.13
Copy Uint8Array 100000 slice arrayBuffer 83.671 us/op 74.430 us/op 1.12
Uint64 deserialize 100000 - iterate Uint8Array 1.2852 ms/op 1.2826 ms/op 1.00
Uint64 deserialize 100000 - by Uint32A 1.2810 ms/op 1.2649 ms/op 1.01
Uint64 deserialize 100000 - by DataView.getUint32 x2 1.5013 ms/op 1.4221 ms/op 1.06
Uint64 deserialize 100000 - by DataView.getBigUint64 3.8145 ms/op 3.6958 ms/op 1.03
Uint64 deserialize 100000 - by byte 15.746 ms/op 15.693 ms/op 1.00

by benchmarkbot/action

@nflaig
nflaig enabled auto-merge (squash) September 14, 2026 13:57
@nflaig
nflaig merged commit d5df08a into master Sep 14, 2026
11 checks passed
@nflaig
nflaig deleted the release-please--branches--master branch September 14, 2026 14:01
@github-actions

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