Skip to content

Conversation

@wemeetagain
Copy link
Member

@wemeetagain wemeetagain commented Aug 22, 2025

🤖 I have created a release beep boop

as-sha256: 1.2.1

1.2.1 (2025-12-09)

Miscellaneous

persistent-merkle-tree: 1.2.2

1.2.2 (2025-12-09)

Miscellaneous

Dependencies

  • The following workspace dependencies were updated
    • dependencies
      • @chainsafe/as-sha256 bumped to 1.2.1
ssz: 1.3.1

1.3.1 (2025-12-09)

Miscellaneous

Dependencies

  • The following workspace dependencies were updated
    • dependencies
      • @chainsafe/as-sha256 bumped to 1.2.1
      • @chainsafe/persistent-merkle-tree bumped to 1.2.2

This PR was generated with Release Please. See documentation.

@github-actions
Copy link

github-actions bot commented Aug 22, 2025

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: d453b14 Previous: d0a44a6 Ratio
digestTwoHashObjects 50023 times 47.982 ms/op 48.309 ms/op 0.99
digest2Bytes32 50023 times 53.949 ms/op 54.758 ms/op 0.99
digest 50023 times 52.592 ms/op 53.518 ms/op 0.98
input length 32 1.2190 us/op 1.2620 us/op 0.97
input length 64 1.3360 us/op 1.3930 us/op 0.96
input length 128 2.3290 us/op 2.3410 us/op 0.99
input length 256 3.4120 us/op 3.4820 us/op 0.98
input length 512 5.6180 us/op 5.6590 us/op 0.99
input length 1024 10.653 us/op 10.696 us/op 1.00
digest 1000000 times 867.10 ms/op 861.79 ms/op 1.01
hashObjectToByteArray 50023 times 934.79 us/op 934.19 us/op 1.00
byteArrayToHashObject 50023 times 1.3105 ms/op 1.3621 ms/op 0.96
digest64 200092 times 213.18 ms/op 217.20 ms/op 0.98
hash 200092 times using batchHash4UintArray64s 236.00 ms/op 251.19 ms/op 0.94
digest64HashObjects 200092 times 190.80 ms/op 194.72 ms/op 0.98
hash 200092 times using batchHash4HashObjectInputs 196.10 ms/op 205.29 ms/op 0.96
getGindicesAtDepth 3.5780 us/op 3.8660 us/op 0.93
iterateAtDepth 6.3080 us/op 6.4050 us/op 0.98
getGindexBits 421.00 ns/op 467.00 ns/op 0.90
gindexIterator 868.00 ns/op 905.00 ns/op 0.96
HashComputationLevel.push then loop 25.481 ms/op 27.077 ms/op 0.94
HashComputation[] push then loop 37.905 ms/op 48.788 ms/op 0.78
hash 2 32 bytes Uint8Array 500000 times - hashtree 151.39 ms/op 150.32 ms/op 1.01
batch hash 16 x 64 Uint8Array 31250 times - hashtree 25.102 ms/op 24.468 ms/op 1.03
hashTwoObjects 500000 times - hashtree 183.67 ms/op 166.35 ms/op 1.10
executeHashComputations - hashtree 8.8592 ms/op 9.0499 ms/op 0.98
hash 2 32 bytes Uint8Array 500000 times - as-sha256 495.98 ms/op 500.06 ms/op 0.99
batch hash 16 x 64 Uint8Array 31250 times - as-sha256 540.38 ms/op 514.48 ms/op 1.05
hashTwoObjects 500000 times - as-sha256 508.37 ms/op 509.39 ms/op 1.00
executeHashComputations - as-sha256 45.736 ms/op 46.169 ms/op 0.99
hash 2 32 bytes Uint8Array 500000 times - noble 1.2343 s/op 1.2564 s/op 0.98
batch hash 16 x 64 Uint8Array 31250 times - noble 1.1836 s/op 1.2218 s/op 0.97
hashTwoObjects 500000 times - noble 1.5798 s/op 1.6577 s/op 0.95
executeHashComputations - noble 35.771 ms/op 36.573 ms/op 0.98
getHashComputations 2.1115 ms/op 2.1331 ms/op 0.99
executeHashComputations 9.4903 ms/op 9.2441 ms/op 1.03
get root 12.669 ms/op 12.294 ms/op 1.03
getNodeH() x7812.5 avg hindex 12.259 us/op 12.290 us/op 1.00
getNodeH() x7812.5 index 0 7.4600 us/op 7.6040 us/op 0.98
getNodeH() x7812.5 index 7 7.5280 us/op 7.5360 us/op 1.00
getNodeH() x7812.5 index 7 with key array 6.2500 us/op 6.3090 us/op 0.99
new LeafNode() x7812.5 304.57 us/op 293.53 us/op 1.04
getHashComputations 250000 nodes 15.565 ms/op 15.160 ms/op 1.03
batchHash 250000 nodes 79.834 ms/op 87.950 ms/op 0.91
get root 250000 nodes 95.162 ms/op 95.358 ms/op 1.00
getHashComputations 500000 nodes 28.227 ms/op 33.213 ms/op 0.85
batchHash 500000 nodes 145.75 ms/op 172.79 ms/op 0.84
get root 500000 nodes 190.46 ms/op 183.96 ms/op 1.04
getHashComputations 1000000 nodes 61.213 ms/op 67.063 ms/op 0.91
batchHash 1000000 nodes 284.54 ms/op 345.19 ms/op 0.82
get root 1000000 nodes 377.96 ms/op 381.76 ms/op 0.99
multiproof - depth 15, 1 requested leaves 7.4310 us/op 8.2960 us/op 0.90
tree offset multiproof - depth 15, 1 requested leaves 16.579 us/op 18.548 us/op 0.89
compact multiproof - depth 15, 1 requested leaves 3.0000 us/op 3.5340 us/op 0.85
multiproof - depth 15, 2 requested leaves 10.741 us/op 10.949 us/op 0.98
tree offset multiproof - depth 15, 2 requested leaves 20.047 us/op 21.070 us/op 0.95
compact multiproof - depth 15, 2 requested leaves 2.9040 us/op 3.2110 us/op 0.90
multiproof - depth 15, 3 requested leaves 15.181 us/op 16.126 us/op 0.94
tree offset multiproof - depth 15, 3 requested leaves 26.035 us/op 26.128 us/op 1.00
compact multiproof - depth 15, 3 requested leaves 3.4020 us/op 3.6400 us/op 0.93
multiproof - depth 15, 4 requested leaves 20.086 us/op 21.033 us/op 0.95
tree offset multiproof - depth 15, 4 requested leaves 31.823 us/op 32.555 us/op 0.98
compact multiproof - depth 15, 4 requested leaves 3.6000 us/op 4.4590 us/op 0.81
packedRootsBytesToLeafNodes bytes 4000 offset 0 5.3940 us/op 5.5660 us/op 0.97
packedRootsBytesToLeafNodes bytes 4000 offset 1 5.4040 us/op 5.5780 us/op 0.97
packedRootsBytesToLeafNodes bytes 4000 offset 2 5.4390 us/op 5.5550 us/op 0.98
packedRootsBytesToLeafNodes bytes 4000 offset 3 5.3920 us/op 6.0140 us/op 0.90
subtreeFillToContents depth 40 count 250000 43.947 ms/op 43.320 ms/op 1.01
setRoot - gindexBitstring 20.405 ms/op 20.557 ms/op 0.99
setRoot - gindex 21.155 ms/op 21.952 ms/op 0.96
getRoot - gindexBitstring 2.4096 ms/op 2.7277 ms/op 0.88
getRoot - gindex 3.0153 ms/op 3.0941 ms/op 0.97
getHashObject then setHashObject 21.781 ms/op 26.468 ms/op 0.82
setNodeWithFn 19.297 ms/op 20.888 ms/op 0.92
getNodeAtDepth depth 0 x100000 280.40 us/op 280.14 us/op 1.00
setNodeAtDepth depth 0 x100000 2.5016 ms/op 2.5886 ms/op 0.97
getNodesAtDepth depth 0 x100000 312.54 us/op 312.99 us/op 1.00
setNodesAtDepth depth 0 x100000 784.17 us/op 761.48 us/op 1.03
getNodeAtDepth depth 1 x100000 342.21 us/op 342.36 us/op 1.00
setNodeAtDepth depth 1 x100000 8.0085 ms/op 8.2069 ms/op 0.98
getNodesAtDepth depth 1 x100000 436.50 us/op 436.15 us/op 1.00
setNodesAtDepth depth 1 x100000 6.7068 ms/op 6.7460 ms/op 0.99
getNodeAtDepth depth 2 x100000 778.71 us/op 746.91 us/op 1.04
setNodeAtDepth depth 2 x100000 15.080 ms/op 15.017 ms/op 1.00
getNodesAtDepth depth 2 x100000 17.768 ms/op 20.550 ms/op 0.86
setNodesAtDepth depth 2 x100000 22.517 ms/op 22.956 ms/op 0.98
tree.getNodesAtDepth - gindexes 8.5003 ms/op 10.370 ms/op 0.82
tree.getNodesAtDepth - push all nodes 2.2949 ms/op 2.2501 ms/op 1.02
tree.getNodesAtDepth - navigation 311.69 us/op 311.85 us/op 1.00
tree.setNodesAtDepth - indexes 700.40 us/op 814.48 us/op 0.86
set at depth 8 826.00 ns/op 916.00 ns/op 0.90
set at depth 16 1.1470 us/op 1.2980 us/op 0.88
set at depth 32 1.9960 us/op 2.4660 us/op 0.81
iterateNodesAtDepth 8 256 13.696 us/op 15.042 us/op 0.91
getNodesAtDepth 8 256 3.5950 us/op 4.0030 us/op 0.90
iterateNodesAtDepth 16 65536 4.3553 ms/op 4.6883 ms/op 0.93
getNodesAtDepth 16 65536 1.1727 ms/op 1.2257 ms/op 0.96
iterateNodesAtDepth 32 250000 16.330 ms/op 17.154 ms/op 0.95
getNodesAtDepth 32 250000 4.9107 ms/op 5.6229 ms/op 0.87
iterateNodesAtDepth 40 250000 17.397 ms/op 17.356 ms/op 1.00
getNodesAtDepth 40 250000 4.4638 ms/op 4.8961 ms/op 0.91
250000 validators root getter 95.818 ms/op 92.658 ms/op 1.03
250000 validators batchHash() 79.718 ms/op 103.63 ms/op 0.77
250000 validators hashComputations 14.268 ms/op 14.999 ms/op 0.95
bitlist bytes to struct (120,90) 492.00 ns/op 486.00 ns/op 1.01
bitlist bytes to tree (120,90) 2.0820 us/op 2.3860 us/op 0.87
bitlist bytes to struct (2048,2048) 855.00 ns/op 880.00 ns/op 0.97
bitlist bytes to tree (2048,2048) 3.4010 us/op 3.6160 us/op 0.94
ByteListType - deserialize 8.4842 ms/op 10.429 ms/op 0.81
BasicListType - deserialize 9.7135 ms/op 9.4987 ms/op 1.02
ByteListType - serialize 8.5384 ms/op 7.6148 ms/op 1.12
BasicListType - serialize 9.7214 ms/op 10.325 ms/op 0.94
BasicListType - tree_convertToStruct 21.060 ms/op 22.882 ms/op 0.92
List[uint8, 68719476736] len 300000 ViewDU.getAll() + iterate 5.0872 ms/op 5.1647 ms/op 0.98
List[uint8, 68719476736] len 300000 ViewDU.get(i) 4.3924 ms/op 4.3930 ms/op 1.00
Array.push len 300000 empty Array - number 6.6154 ms/op 6.9977 ms/op 0.95
Array.set len 300000 from new Array - number 2.1261 ms/op 1.7513 ms/op 1.21
Array.set len 300000 - number 6.1510 ms/op 5.6572 ms/op 1.09
Uint8Array.set len 300000 378.69 us/op 375.58 us/op 1.01
Uint32Array.set len 300000 441.05 us/op 444.85 us/op 0.99
Container({a: uint8, b: uint8}) getViewDU x300000 28.889 ms/op 29.367 ms/op 0.98
ContainerNodeStruct({a: uint8, b: uint8}) getViewDU x300000 10.389 ms/op 10.511 ms/op 0.99
List(Container) len 300000 ViewDU.getAllReadonly() + iterate 195.71 ms/op 202.60 ms/op 0.97
List(Container) len 300000 ViewDU.getAllReadonlyValues() + iterate 230.22 ms/op 223.34 ms/op 1.03
List(Container) len 300000 ViewDU.get(i) 6.5239 ms/op 6.5490 ms/op 1.00
List(Container) len 300000 ViewDU.getReadonly(i) 6.5651 ms/op 6.5406 ms/op 1.00
List(ContainerNodeStruct) len 300000 ViewDU.getAllReadonly() + iterate 36.305 ms/op 36.935 ms/op 0.98
List(ContainerNodeStruct) len 300000 ViewDU.getAllReadonlyValues() + iterate 5.0780 ms/op 5.2053 ms/op 0.98
List(ContainerNodeStruct) len 300000 ViewDU.get(i) 5.9337 ms/op 6.1048 ms/op 0.97
List(ContainerNodeStruct) len 300000 ViewDU.getReadonly(i) 5.9770 ms/op 6.0911 ms/op 0.98
Array.push len 300000 empty Array - object 6.2557 ms/op 6.3005 ms/op 0.99
Array.set len 300000 from new Array - object 2.0683 ms/op 2.2308 ms/op 0.93
Array.set len 300000 - object 6.0183 ms/op 6.3420 ms/op 0.95
cachePermanentRootStruct no cache 3.3650 us/op 3.1460 us/op 1.07
cachePermanentRootStruct with cache 166.00 ns/op 171.00 ns/op 0.97
epochParticipation len 250000 rws 7813 2.3194 ms/op 2.3097 ms/op 1.00
Deneb BeaconBlock.hashTreeRoot(), numTransaction=200 4.5967 ms/op 4.7524 ms/op 0.97
BeaconState ViewDU batchHashTreeRoot vc=200000 mod=100000 209.38 ms/op 230.11 ms/op 0.91
BeaconState ViewDU batchHashTreeRoot - commit step vc=200000 mod=100000 178.25 ms/op 188.01 ms/op 0.95
BeaconState ViewDU batchHashTreeRoot - hash step vc=200000 mod=100000 43.755 ms/op 52.376 ms/op 0.84
BeaconState ViewDU hashTreeRoot() vc=200000 mod=100000 688.38 ms/op 693.66 ms/op 0.99
BeaconState ViewDU hashTreeRoot - commit step vc=200000 mod=100000 64.087 ms/op 64.980 ms/op 0.99
BeaconState ViewDU hashTreeRoot - validator tree creation vc=100000 mod=100000 256.70 ms/op 280.17 ms/op 0.92
deserialize Attestation - tree 3.6430 us/op 3.7840 us/op 0.96
deserialize Attestation - struct 1.9170 us/op 2.3540 us/op 0.81
deserialize Attestation - struct (reuse bytes) 1.4670 us/op 1.7890 us/op 0.82
deserialize SignedAggregateAndProof - tree 4.8340 us/op 4.8480 us/op 1.00
deserialize SignedAggregateAndProof - struct 2.9890 us/op 3.1230 us/op 0.96
deserialize SignedAggregateAndProof - struct (reuse bytes) 1.9010 us/op 2.2140 us/op 0.86
deserialize SyncCommitteeMessage - tree 1.4300 us/op 1.5380 us/op 0.93
deserialize SyncCommitteeMessage - struct 1.0990 us/op 1.2130 us/op 0.91
deserialize SyncCommitteeMessage - struct (reuse bytes) 735.00 ns/op 796.00 ns/op 0.92
deserialize SignedContributionAndProof - tree 2.8690 us/op 2.8460 us/op 1.01
deserialize SignedContributionAndProof - struct 2.2670 us/op 2.5900 us/op 0.88
deserialize SignedContributionAndProof - struct (reuse bytes) 1.2180 us/op 1.3170 us/op 0.92
deserialize SignedBeaconBlock - tree 275.72 us/op 312.80 us/op 0.88
deserialize SignedBeaconBlock - struct 118.64 us/op 142.37 us/op 0.83
deserialize SignedBeaconBlock - struct (reuse bytes) 76.551 us/op 83.531 us/op 0.92
BeaconState vc 300000 - deserialize tree 647.30 ms/op 666.57 ms/op 0.97
BeaconState vc 300000 - serialize tree 87.066 ms/op 84.898 ms/op 1.03
BeaconState.historicalRoots vc 300000 - deserialize tree 858.00 ns/op 989.00 ns/op 0.87
BeaconState.historicalRoots vc 300000 - serialize tree 649.00 ns/op 724.00 ns/op 0.90
BeaconState.validators vc 300000 - deserialize tree 591.76 ms/op 625.98 ms/op 0.95
BeaconState.validators vc 300000 - serialize tree 51.173 ms/op 41.963 ms/op 1.22
BeaconState.balances vc 300000 - deserialize tree 20.467 ms/op 27.152 ms/op 0.75
BeaconState.balances vc 300000 - serialize tree 4.5794 ms/op 3.8727 ms/op 1.18
BeaconState.previousEpochParticipation vc 300000 - deserialize tree 956.65 us/op 953.00 us/op 1.00
BeaconState.previousEpochParticipation vc 300000 - serialize tree 334.60 us/op 329.83 us/op 1.01
BeaconState.currentEpochParticipation vc 300000 - deserialize tree 935.68 us/op 1.0120 ms/op 0.92
BeaconState.currentEpochParticipation vc 300000 - serialize tree 333.22 us/op 326.49 us/op 1.02
BeaconState.inactivityScores vc 300000 - deserialize tree 28.901 ms/op 28.321 ms/op 1.02
BeaconState.inactivityScores vc 300000 - serialize tree 3.9097 ms/op 4.2153 ms/op 0.93
hashTreeRoot Attestation - struct 9.4250 us/op 10.833 us/op 0.87
hashTreeRoot Attestation - tree 7.3800 us/op 7.8460 us/op 0.94
hashTreeRoot SignedAggregateAndProof - struct 12.296 us/op 13.814 us/op 0.89
hashTreeRoot SignedAggregateAndProof - tree 11.112 us/op 11.037 us/op 1.01
hashTreeRoot SyncCommitteeMessage - struct 3.1080 us/op 3.3530 us/op 0.93
hashTreeRoot SyncCommitteeMessage - tree 2.8080 us/op 2.7960 us/op 1.00
hashTreeRoot SignedContributionAndProof - struct 7.5220 us/op 7.6320 us/op 0.99
hashTreeRoot SignedContributionAndProof - tree 7.7000 us/op 7.5660 us/op 1.02
hashTreeRoot SignedBeaconBlock - struct 751.36 us/op 801.89 us/op 0.94
hashTreeRoot SignedBeaconBlock - tree 677.28 us/op 664.10 us/op 1.02
hashTreeRoot Validator - struct 4.3260 us/op 4.3350 us/op 1.00
hashTreeRoot Validator - tree 5.7770 us/op 6.0110 us/op 0.96
BeaconState vc 300000 - hashTreeRoot tree 1.9664 s/op 1.9977 s/op 0.98
BeaconState vc 300000 - batchHashTreeRoot tree 3.8383 s/op 4.2002 s/op 0.91
BeaconState.historicalRoots vc 300000 - hashTreeRoot tree 846.00 ns/op 883.00 ns/op 0.96
BeaconState.validators vc 300000 - hashTreeRoot tree 2.0957 s/op 2.1568 s/op 0.97
BeaconState.balances vc 300000 - hashTreeRoot tree 30.074 ms/op 33.800 ms/op 0.89
BeaconState.previousEpochParticipation vc 300000 - hashTreeRoot tree 3.6058 ms/op 3.4492 ms/op 1.05
BeaconState.currentEpochParticipation vc 300000 - hashTreeRoot tree 3.5864 ms/op 3.4432 ms/op 1.04
BeaconState.inactivityScores vc 300000 - hashTreeRoot tree 32.831 ms/op 27.949 ms/op 1.17
hash64 x18 8.8480 us/op 8.4910 us/op 1.04
hashTwoObjects x18 6.8550 us/op 6.5180 us/op 1.05
hash64 x1740 683.56 us/op 717.08 us/op 0.95
hashTwoObjects x1740 631.02 us/op 579.45 us/op 1.09
hash64 x2700000 1.0621 s/op 1.0423 s/op 1.02
hashTwoObjects x2700000 969.51 ms/op 894.07 ms/op 1.08
get_exitEpoch - ContainerType 235.00 ns/op 250.00 ns/op 0.94
get_exitEpoch - ContainerNodeStructType 240.00 ns/op 228.00 ns/op 1.05
set_exitEpoch - ContainerType 263.00 ns/op 269.00 ns/op 0.98
set_exitEpoch - ContainerNodeStructType 265.00 ns/op 266.00 ns/op 1.00
get_pubkey - ContainerType 953.00 ns/op 1.2240 us/op 0.78
get_pubkey - ContainerNodeStructType 222.00 ns/op 234.00 ns/op 0.95
hashTreeRoot - ContainerType 443.00 ns/op 464.00 ns/op 0.95
hashTreeRoot - ContainerNodeStructType 441.00 ns/op 427.00 ns/op 1.03
createProof - ContainerType 3.6690 us/op 3.6850 us/op 1.00
createProof - ContainerNodeStructType 19.932 us/op 19.664 us/op 1.01
serialize - ContainerType 1.6370 us/op 1.8460 us/op 0.89
serialize - ContainerNodeStructType 1.1030 us/op 1.1540 us/op 0.96
set_exitEpoch_and_hashTreeRoot - ContainerType 2.7540 us/op 3.1500 us/op 0.87
set_exitEpoch_and_hashTreeRoot - ContainerNodeStructType 6.3760 us/op 6.5580 us/op 0.97
doBatchHashTreeRootValidators 3.5530 us/op 3.6910 us/op 0.96
ContainerNodeStructViewDU hashTreeRoot 22.121 us/op 22.034 us/op 1.00
Array - for of 6.5950 us/op 5.6360 us/op 1.17
Array - for(;;) 6.5340 us/op 5.5840 us/op 1.17
basicListValue.readonlyValuesArray() 4.3177 ms/op 4.2835 ms/op 1.01
basicListValue.readonlyValuesArray() + loop all 4.4473 ms/op 4.4344 ms/op 1.00
compositeListValue.readonlyValuesArray() 26.807 ms/op 27.292 ms/op 0.98
compositeListValue.readonlyValuesArray() + loop all 30.366 ms/op 30.085 ms/op 1.01
Number64UintType - get balances list 4.4607 ms/op 4.4047 ms/op 1.01
Number64UintType - set balances list 10.109 ms/op 10.092 ms/op 1.00
Number64UintType - get and increase 10 then set 39.462 ms/op 41.278 ms/op 0.96
Number64UintType - increase 10 using applyDelta 16.140 ms/op 18.852 ms/op 0.86
Number64UintType - increase 10 using applyDeltaInBatch 16.283 ms/op 17.976 ms/op 0.91
tree_newTreeFromUint64Deltas 21.834 ms/op 23.069 ms/op 0.95
unsafeUint8ArrayToTree 31.279 ms/op 36.332 ms/op 0.86
bitLength(50) 237.00 ns/op 264.00 ns/op 0.90
bitLengthStr(50) 214.00 ns/op 251.00 ns/op 0.85
bitLength(8000) 226.00 ns/op 249.00 ns/op 0.91
bitLengthStr(8000) 263.00 ns/op 290.00 ns/op 0.91
bitLength(250000) 228.00 ns/op 248.00 ns/op 0.92
bitLengthStr(250000) 293.00 ns/op 331.00 ns/op 0.89
merkleize 32 chunks 12.805 us/op 12.523 us/op 1.02
merkleizeBlocksBytes 32 chunks 3.1420 us/op 3.1240 us/op 1.01
merkleizeBlockArray 32 chunks 5.9870 us/op 5.9400 us/op 1.01
merkleize 128 chunks 49.097 us/op 49.491 us/op 0.99
merkleizeBlocksBytes 128 chunks 7.3640 us/op 7.3800 us/op 1.00
merkleizeBlockArray 128 chunks 16.968 us/op 17.934 us/op 0.95
merkleize 512 chunks 195.54 us/op 191.24 us/op 1.02
merkleizeBlocksBytes 512 chunks 22.572 us/op 22.657 us/op 1.00
merkleizeBlockArray 512 chunks 58.520 us/op 61.431 us/op 0.95
merkleize 1024 chunks 392.92 us/op 391.34 us/op 1.00
merkleizeBlocksBytes 1024 chunks 42.348 us/op 42.689 us/op 0.99
merkleizeBlockArray 1024 chunks 113.67 us/op 116.76 us/op 0.97
floor - Math.floor (53) 1.2431 ns/op 1.2455 ns/op 1.00
floor - << 0 (53) 1.2436 ns/op 1.2436 ns/op 1.00
floor - Math.floor (512) 1.2432 ns/op 1.2444 ns/op 1.00
floor - << 0 (512) 1.2449 ns/op 1.2443 ns/op 1.00
fnIf(0) 1.5545 ns/op 1.5566 ns/op 1.00
fnSwitch(0) 2.1749 ns/op 2.2080 ns/op 0.99
fnObj(0) 1.5577 ns/op 1.5553 ns/op 1.00
fnArr(0) 1.5537 ns/op 1.5545 ns/op 1.00
fnIf(4) 2.1759 ns/op 2.1782 ns/op 1.00
fnSwitch(4) 2.1744 ns/op 2.2109 ns/op 0.98
fnObj(4) 1.5634 ns/op 1.5582 ns/op 1.00
fnArr(4) 1.5540 ns/op 1.5593 ns/op 1.00
fnIf(9) 3.1095 ns/op 3.1221 ns/op 1.00
fnSwitch(9) 2.1817 ns/op 2.2054 ns/op 0.99
fnObj(9) 1.5559 ns/op 1.5596 ns/op 1.00
fnArr(9) 1.5552 ns/op 1.5552 ns/op 1.00
Container {a,b,vec} - as struct x100000 124.57 us/op 124.64 us/op 1.00
Container {a,b,vec} - as tree x100000 559.73 us/op 563.00 us/op 0.99
Container {a,vec,b} - as struct x100000 155.84 us/op 155.68 us/op 1.00
Container {a,vec,b} - as tree x100000 559.66 us/op 560.45 us/op 1.00
get 2 props x1000000 - rawObject 311.09 us/op 314.15 us/op 0.99
get 2 props x1000000 - proxy 73.063 ms/op 76.116 ms/op 0.96
get 2 props x1000000 - customObj 311.11 us/op 314.35 us/op 0.99
Simple object binary -> struct 602.00 ns/op 611.00 ns/op 0.99
Simple object binary -> tree_backed 1.6790 us/op 1.6540 us/op 1.02
Simple object struct -> tree_backed 2.2550 us/op 2.2240 us/op 1.01
Simple object tree_backed -> struct 1.6960 us/op 1.4960 us/op 1.13
Simple object struct -> binary 924.00 ns/op 917.00 ns/op 1.01
Simple object tree_backed -> binary 1.3090 us/op 1.2730 us/op 1.03
aggregationBits binary -> struct 514.00 ns/op 507.00 ns/op 1.01
aggregationBits binary -> tree_backed 2.2140 us/op 2.0900 us/op 1.06
aggregationBits struct -> tree_backed 2.7860 us/op 2.5390 us/op 1.10
aggregationBits tree_backed -> struct 1.0290 us/op 976.00 ns/op 1.05
aggregationBits struct -> binary 723.00 ns/op 757.00 ns/op 0.96
aggregationBits tree_backed -> binary 866.00 ns/op 900.00 ns/op 0.96
List(uint8) 100000 binary -> struct 1.0153 ms/op 1.1296 ms/op 0.90
List(uint8) 100000 binary -> tree_backed 273.76 us/op 286.64 us/op 0.96
List(uint8) 100000 struct -> tree_backed 1.3701 ms/op 1.4003 ms/op 0.98
List(uint8) 100000 tree_backed -> struct 997.98 us/op 1.1196 ms/op 0.89
List(uint8) 100000 struct -> binary 1.0693 ms/op 1.1066 ms/op 0.97
List(uint8) 100000 tree_backed -> binary 108.34 us/op 110.25 us/op 0.98
List(uint64Number) 100000 binary -> struct 1.3363 ms/op 1.3952 ms/op 0.96
List(uint64Number) 100000 binary -> tree_backed 5.0386 ms/op 4.9618 ms/op 1.02
List(uint64Number) 100000 struct -> tree_backed 6.8596 ms/op 7.1056 ms/op 0.97
List(uint64Number) 100000 tree_backed -> struct 2.4303 ms/op 2.5446 ms/op 0.96
List(uint64Number) 100000 struct -> binary 1.4652 ms/op 1.4872 ms/op 0.99
List(uint64Number) 100000 tree_backed -> binary 1.1599 ms/op 1.0774 ms/op 1.08
List(Uint64Bigint) 100000 binary -> struct 4.0307 ms/op 3.8596 ms/op 1.04
List(Uint64Bigint) 100000 binary -> tree_backed 4.6593 ms/op 4.4860 ms/op 1.04
List(Uint64Bigint) 100000 struct -> tree_backed 7.3430 ms/op 7.0118 ms/op 1.05
List(Uint64Bigint) 100000 tree_backed -> struct 5.1312 ms/op 5.1322 ms/op 1.00
List(Uint64Bigint) 100000 struct -> binary 2.1071 ms/op 2.1232 ms/op 0.99
List(Uint64Bigint) 100000 tree_backed -> binary 1.2944 ms/op 1.0808 ms/op 1.20
Vector(Root) 100000 binary -> struct 36.158 ms/op 36.670 ms/op 0.99
Vector(Root) 100000 binary -> tree_backed 40.138 ms/op 40.290 ms/op 1.00
Vector(Root) 100000 struct -> tree_backed 50.984 ms/op 48.671 ms/op 1.05
Vector(Root) 100000 tree_backed -> struct 49.280 ms/op 47.997 ms/op 1.03
Vector(Root) 100000 struct -> binary 3.1098 ms/op 3.1173 ms/op 1.00
Vector(Root) 100000 tree_backed -> binary 7.1461 ms/op 7.1408 ms/op 1.00
List(Validator) 100000 binary -> struct 115.53 ms/op 107.50 ms/op 1.07
List(Validator) 100000 binary -> tree_backed 362.63 ms/op 350.43 ms/op 1.03
List(Validator) 100000 struct -> tree_backed 384.17 ms/op 375.37 ms/op 1.02
List(Validator) 100000 tree_backed -> struct 215.16 ms/op 211.67 ms/op 1.02
List(Validator) 100000 struct -> binary 29.106 ms/op 29.521 ms/op 0.99
List(Validator) 100000 tree_backed -> binary 112.00 ms/op 117.08 ms/op 0.96
List(Validator-NS) 100000 binary -> struct 113.94 ms/op 111.72 ms/op 1.02
List(Validator-NS) 100000 binary -> tree_backed 154.10 ms/op 163.11 ms/op 0.94
List(Validator-NS) 100000 struct -> tree_backed 188.45 ms/op 187.65 ms/op 1.00
List(Validator-NS) 100000 tree_backed -> struct 150.80 ms/op 153.88 ms/op 0.98
List(Validator-NS) 100000 struct -> binary 7.5542 ms/op 7.6618 ms/op 0.99
List(Validator-NS) 100000 tree_backed -> binary 12.253 ms/op 13.361 ms/op 0.92
get epochStatuses - MutableVector 89.552 us/op 94.007 us/op 0.95
get epochStatuses - ViewDU 210.75 us/op 212.56 us/op 0.99
set epochStatuses - ListTreeView 2.1816 ms/op 2.1252 ms/op 1.03
set epochStatuses - ListTreeView - set() 445.04 us/op 447.15 us/op 1.00
set epochStatuses - ListTreeView - commit() 777.90 us/op 772.35 us/op 1.01
bitstring 516.48 ns/op 516.88 ns/op 1.00
bit mask 13.462 ns/op 13.718 ns/op 0.98
struct - increase slot to 1000000 933.48 us/op 933.10 us/op 1.00
UintNumberType - increase slot to 1000000 27.700 ms/op 27.736 ms/op 1.00
UintBigintType - increase slot to 1000000 185.19 ms/op 189.92 ms/op 0.98
UintBigint8 x 100000 tree_deserialize 5.2516 ms/op 5.6489 ms/op 0.93
UintBigint8 x 100000 tree_serialize 1.1288 ms/op 1.1316 ms/op 1.00
UintBigint16 x 100000 tree_deserialize 5.4772 ms/op 6.3495 ms/op 0.86
UintBigint16 x 100000 tree_serialize 1.3666 ms/op 1.3740 ms/op 0.99
UintBigint32 x 100000 tree_deserialize 5.6639 ms/op 5.4771 ms/op 1.03
UintBigint32 x 100000 tree_serialize 1.7624 ms/op 1.7590 ms/op 1.00
UintBigint64 x 100000 tree_deserialize 6.7163 ms/op 6.3621 ms/op 1.06
UintBigint64 x 100000 tree_serialize 1.7181 ms/op 1.7475 ms/op 0.98
UintBigint8 x 100000 value_deserialize 420.59 us/op 404.70 us/op 1.04
UintBigint8 x 100000 value_serialize 795.00 us/op 762.12 us/op 1.04
UintBigint16 x 100000 value_deserialize 467.19 us/op 466.38 us/op 1.00
UintBigint16 x 100000 value_serialize 793.50 us/op 812.70 us/op 0.98
UintBigint32 x 100000 value_deserialize 499.94 us/op 491.12 us/op 1.02
UintBigint32 x 100000 value_serialize 846.14 us/op 823.85 us/op 1.03
UintBigint64 x 100000 value_deserialize 530.97 us/op 530.46 us/op 1.00
UintBigint64 x 100000 value_serialize 996.06 us/op 958.47 us/op 1.04
UintBigint8 x 100000 deserialize 3.5188 ms/op 3.4343 ms/op 1.02
UintBigint8 x 100000 serialize 1.5866 ms/op 1.6447 ms/op 0.96
UintBigint16 x 100000 deserialize 3.5317 ms/op 3.3978 ms/op 1.04
UintBigint16 x 100000 serialize 1.6299 ms/op 1.5203 ms/op 1.07
UintBigint32 x 100000 deserialize 3.1729 ms/op 3.3805 ms/op 0.94
UintBigint32 x 100000 serialize 2.8338 ms/op 2.8023 ms/op 1.01
UintBigint64 x 100000 deserialize 4.1137 ms/op 4.3430 ms/op 0.95
UintBigint64 x 100000 serialize 1.6821 ms/op 1.6519 ms/op 1.02
UintBigint128 x 100000 deserialize 5.6387 ms/op 5.7233 ms/op 0.99
UintBigint128 x 100000 serialize 15.336 ms/op 15.259 ms/op 1.01
UintBigint256 x 100000 deserialize 9.1042 ms/op 8.9013 ms/op 1.02
UintBigint256 x 100000 serialize 46.423 ms/op 44.438 ms/op 1.04
Slice from Uint8Array x25000 1.3479 ms/op 1.3323 ms/op 1.01
Slice from ArrayBuffer x25000 15.993 ms/op 17.540 ms/op 0.91
Slice from ArrayBuffer x25000 + new Uint8Array 16.767 ms/op 19.007 ms/op 0.88
Copy Uint8Array 100000 iterate 1.6741 ms/op 1.7708 ms/op 0.95
Copy Uint8Array 100000 slice 94.493 us/op 106.49 us/op 0.89
Copy Uint8Array 100000 Uint8Array.prototype.slice.call 106.10 us/op 110.94 us/op 0.96
Copy Buffer 100000 Uint8Array.prototype.slice.call 104.76 us/op 108.19 us/op 0.97
Copy Uint8Array 100000 slice + set 195.22 us/op 220.78 us/op 0.88
Copy Uint8Array 100000 subarray + set 91.974 us/op 106.84 us/op 0.86
Copy Uint8Array 100000 slice arrayBuffer 99.860 us/op 108.77 us/op 0.92
Uint64 deserialize 100000 - iterate Uint8Array 1.9116 ms/op 2.0460 ms/op 0.93
Uint64 deserialize 100000 - by Uint32A 1.7751 ms/op 1.8709 ms/op 0.95
Uint64 deserialize 100000 - by DataView.getUint32 x2 1.7637 ms/op 1.9845 ms/op 0.89
Uint64 deserialize 100000 - by DataView.getBigUint64 4.8362 ms/op 4.9548 ms/op 0.98
Uint64 deserialize 100000 - by byte 40.339 ms/op 40.334 ms/op 1.00

by benchmarkbot/action

@wemeetagain wemeetagain force-pushed the release-please--branches--master branch from 3addb7c to 66df28f Compare August 25, 2025 12:35
@wemeetagain wemeetagain force-pushed the release-please--branches--master branch from 66df28f to a19f52d Compare November 22, 2025 15:32
@github-actions github-actions bot added the ssz label Nov 22, 2025
@wemeetagain wemeetagain force-pushed the release-please--branches--master branch from a19f52d to c25faed Compare November 22, 2025 17:23
@wemeetagain wemeetagain force-pushed the release-please--branches--master branch from c25faed to 23c1f1c Compare December 1, 2025 14:55
@github-actions github-actions bot force-pushed the release-please--branches--master branch from 23c1f1c to d821d88 Compare December 9, 2025 03:34
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