Repository navigation
chore: release master - #558
Open
github-actions[bot] wants to merge 1 commit into
Open
github-actions[bot] wants to merge 1 commit into
github-actions[bot] wants to merge 1 commit into
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
Contributor
Author
|
| Benchmark suite | Current: 81d5b65 | Previous: 264c540 | Ratio |
|---|---|---|---|
| Copy Uint8Array 100000 slice | 182.91 us/op | 52.134 us/op | 3.51 |
Full benchmark results
| Benchmark suite | Current: 81d5b65 | Previous: 264c540 | Ratio |
|---|---|---|---|
| digestTwoHashObjects 50023 times | 38.514 ms/op | 29.115 ms/op | 1.32 |
| digest2Bytes32 50023 times | 41.981 ms/op | 31.790 ms/op | 1.32 |
| digest 50023 times | 41.270 ms/op | 31.169 ms/op | 1.32 |
| input length 32 | 905.00 ns/op | 683.00 ns/op | 1.33 |
| input length 64 | 1.0330 us/op | 763.00 ns/op | 1.35 |
| input length 128 | 1.7590 us/op | 1.3410 us/op | 1.31 |
| input length 256 | 2.6330 us/op | 2.0080 us/op | 1.31 |
| input length 512 | 4.3890 us/op | 3.3480 us/op | 1.31 |
| input length 1024 | 8.4070 us/op | 6.3030 us/op | 1.33 |
| digest 1000000 times | 671.04 ms/op | 478.15 ms/op | 1.40 |
| hashObjectToByteArray 50023 times | 980.72 us/op | 850.11 us/op | 1.15 |
| byteArrayToHashObject 50023 times | 1.0816 ms/op | 934.97 us/op | 1.16 |
| digest64 200092 times | 165.23 ms/op | 127.54 ms/op | 1.30 |
| hash 200092 times using batchHash4UintArray64s | 174.65 ms/op | 128.41 ms/op | 1.36 |
| digest64HashObjects 200092 times | 154.16 ms/op | 118.15 ms/op | 1.30 |
| hash 200092 times using batchHash4HashObjectInputs | 147.63 ms/op | 117.82 ms/op | 1.25 |
| getGindicesAtDepth | 3.2530 us/op | 2.5620 us/op | 1.27 |
| iterateAtDepth | 5.8410 us/op | 4.7190 us/op | 1.24 |
| getGindexBits | 345.00 ns/op | 249.00 ns/op | 1.39 |
| gindexIterator | 783.00 ns/op | 615.00 ns/op | 1.27 |
| HashComputationLevel.push then loop | 26.838 ms/op | 22.497 ms/op | 1.19 |
| HashComputation[] push then loop | 40.901 ms/op | 34.615 ms/op | 1.18 |
| hash 2 32 bytes Uint8Array 500000 times - hashtree | 141.53 ms/op | 113.55 ms/op | 1.25 |
| batch hash 16 x 64 Uint8Array 31250 times - hashtree | 24.600 ms/op | 21.504 ms/op | 1.14 |
| hashTwoObjects 500000 times - hashtree | 169.23 ms/op | 127.02 ms/op | 1.33 |
| executeHashComputations - hashtree | 6.8607 ms/op | 6.5830 ms/op | 1.04 |
| hash 2 32 bytes Uint8Array 500000 times - as-sha256 | 392.20 ms/op | 295.58 ms/op | 1.33 |
| batch hash 16 x 64 Uint8Array 31250 times - as-sha256 | 369.01 ms/op | 274.16 ms/op | 1.35 |
| hashTwoObjects 500000 times - as-sha256 | 403.82 ms/op | 303.70 ms/op | 1.33 |
| executeHashComputations - as-sha256 | 34.488 ms/op | 23.283 ms/op | 1.48 |
| hash 2 32 bytes Uint8Array 500000 times - noble | 935.42 ms/op | 793.86 ms/op | 1.18 |
| batch hash 16 x 64 Uint8Array 31250 times - noble | 884.03 ms/op | 762.39 ms/op | 1.16 |
| hashTwoObjects 500000 times - noble | 1.3696 s/op | 1.3156 s/op | 1.04 |
| executeHashComputations - noble | 28.749 ms/op | 23.084 ms/op | 1.25 |
| getHashComputations | 1.3944 ms/op | 1.8123 ms/op | 0.77 |
| executeHashComputations | 6.4719 ms/op | 5.8495 ms/op | 1.11 |
| get root | 11.957 ms/op | 9.6823 ms/op | 1.23 |
| getNodeH() x7812.5 avg hindex | 12.217 us/op | 10.430 us/op | 1.17 |
| getNodeH() x7812.5 index 0 | 4.6890 us/op | 3.8180 us/op | 1.23 |
| getNodeH() x7812.5 index 7 | 4.6830 us/op | 3.8160 us/op | 1.23 |
| getNodeH() x7812.5 index 7 with key array | 4.6830 us/op | 3.8150 us/op | 1.23 |
| new LeafNode() x7812.5 | 257.04 us/op | 198.28 us/op | 1.30 |
| getHashComputations 250000 nodes | 9.8560 ms/op | 9.3331 ms/op | 1.06 |
| batchHash 250000 nodes | 61.777 ms/op | 60.131 ms/op | 1.03 |
| get root 250000 nodes | 89.765 ms/op | 71.083 ms/op | 1.26 |
| getHashComputations 500000 nodes | 18.831 ms/op | 16.647 ms/op | 1.13 |
| batchHash 500000 nodes | 144.48 ms/op | 146.54 ms/op | 0.99 |
| get root 500000 nodes | 177.49 ms/op | 139.91 ms/op | 1.27 |
| getHashComputations 1000000 nodes | 39.001 ms/op | 39.862 ms/op | 0.98 |
| batchHash 1000000 nodes | 261.09 ms/op | 260.21 ms/op | 1.00 |
| get root 1000000 nodes | 357.79 ms/op | 283.04 ms/op | 1.26 |
| multiproof - depth 15, 1 requested leaves | 6.5170 us/op | 5.0690 us/op | 1.29 |
| tree offset multiproof - depth 15, 1 requested leaves | 15.737 us/op | 11.377 us/op | 1.38 |
| compact multiproof - depth 15, 1 requested leaves | 2.3210 us/op | 2.2130 us/op | 1.05 |
| multiproof - depth 15, 2 requested leaves | 9.7430 us/op | 7.3950 us/op | 1.32 |
| tree offset multiproof - depth 15, 2 requested leaves | 18.670 us/op | 13.570 us/op | 1.38 |
| compact multiproof - depth 15, 2 requested leaves | 2.3340 us/op | 2.2010 us/op | 1.06 |
| multiproof - depth 15, 3 requested leaves | 14.011 us/op | 10.328 us/op | 1.36 |
| tree offset multiproof - depth 15, 3 requested leaves | 24.300 us/op | 17.368 us/op | 1.40 |
| compact multiproof - depth 15, 3 requested leaves | 2.6370 us/op | 2.4420 us/op | 1.08 |
| multiproof - depth 15, 4 requested leaves | 18.669 us/op | 13.532 us/op | 1.38 |
| tree offset multiproof - depth 15, 4 requested leaves | 30.104 us/op | 21.424 us/op | 1.41 |
| compact multiproof - depth 15, 4 requested leaves | 3.0690 us/op | 2.7460 us/op | 1.12 |
| packedRootsBytesToLeafNodes bytes 4000 offset 0 | 4.5830 us/op | 3.6770 us/op | 1.25 |
| packedRootsBytesToLeafNodes bytes 4000 offset 1 | 4.5910 us/op | 3.6760 us/op | 1.25 |
| packedRootsBytesToLeafNodes bytes 4000 offset 2 | 4.6030 us/op | 3.6850 us/op | 1.25 |
| packedRootsBytesToLeafNodes bytes 4000 offset 3 | 4.6070 us/op | 3.6650 us/op | 1.26 |
| subtreeFillToContents depth 40 count 250000 | 18.619 ms/op | 14.306 ms/op | 1.30 |
| setRoot - gindexBitstring | 17.850 ms/op | 14.722 ms/op | 1.21 |
| setRoot - gindex | 18.843 ms/op | 15.172 ms/op | 1.24 |
| getRoot - gindexBitstring | 1.9565 ms/op | 1.4645 ms/op | 1.34 |
| getRoot - gindex | 2.5621 ms/op | 1.7760 ms/op | 1.44 |
| getHashObject then setHashObject | 19.654 ms/op | 15.826 ms/op | 1.24 |
| setNodeWithFn | 20.310 ms/op | 14.392 ms/op | 1.41 |
| getNodeAtDepth depth 0 x100000 | 215.10 us/op | 182.69 us/op | 1.18 |
| setNodeAtDepth depth 0 x100000 | 1.8278 ms/op | 1.1145 ms/op | 1.64 |
| getNodesAtDepth depth 0 x100000 | 280.63 us/op | 228.75 us/op | 1.23 |
| setNodesAtDepth depth 0 x100000 | 697.31 us/op | 560.36 us/op | 1.24 |
| getNodeAtDepth depth 1 x100000 | 280.41 us/op | 246.56 us/op | 1.14 |
| setNodeAtDepth depth 1 x100000 | 6.7144 ms/op | 6.0033 ms/op | 1.12 |
| getNodesAtDepth depth 1 x100000 | 405.69 us/op | 331.51 us/op | 1.22 |
| setNodesAtDepth depth 1 x100000 | 5.5588 ms/op | 4.5470 ms/op | 1.22 |
| getNodeAtDepth depth 2 x100000 | 655.15 us/op | 491.09 us/op | 1.33 |
| setNodeAtDepth depth 2 x100000 | 13.170 ms/op | 10.888 ms/op | 1.21 |
| getNodesAtDepth depth 2 x100000 | 16.516 ms/op | 11.178 ms/op | 1.48 |
| setNodesAtDepth depth 2 x100000 | 19.522 ms/op | 15.150 ms/op | 1.29 |
| tree.getNodesAtDepth - gindexes | 5.0008 ms/op | 11.564 ms/op | 0.43 |
| tree.getNodesAtDepth - push all nodes | 1.3997 ms/op | 962.10 us/op | 1.45 |
| tree.getNodesAtDepth - navigation | 154.45 us/op | 135.51 us/op | 1.14 |
| tree.setNodesAtDepth - indexes | 584.99 us/op | 443.38 us/op | 1.32 |
| set at depth 8 | 635.00 ns/op | 475.00 ns/op | 1.34 |
| set at depth 16 | 934.00 ns/op | 720.00 ns/op | 1.30 |
| set at depth 32 | 1.5670 us/op | 1.2400 us/op | 1.26 |
| iterateNodesAtDepth 8 256 | 12.333 us/op | 9.5650 us/op | 1.29 |
| getNodesAtDepth 8 256 | 3.1600 us/op | 2.4070 us/op | 1.31 |
| iterateNodesAtDepth 16 65536 | 3.7758 ms/op | 3.0004 ms/op | 1.26 |
| getNodesAtDepth 16 65536 | 947.80 us/op | 781.25 us/op | 1.21 |
| iterateNodesAtDepth 32 250000 | 14.123 ms/op | 11.141 ms/op | 1.27 |
| getNodesAtDepth 32 250000 | 3.5873 ms/op | 2.9623 ms/op | 1.21 |
| iterateNodesAtDepth 40 250000 | 14.019 ms/op | 11.237 ms/op | 1.25 |
| getNodesAtDepth 40 250000 | 3.5714 ms/op | 2.9765 ms/op | 1.20 |
| 250000 validators root getter | 91.810 ms/op | 76.052 ms/op | 1.21 |
| 250000 validators batchHash() | 60.256 ms/op | 64.172 ms/op | 0.94 |
| 250000 validators hashComputations | 9.7880 ms/op | 12.220 ms/op | 0.80 |
| bitlist bytes to struct (120,90) | 352.00 ns/op | 253.00 ns/op | 1.39 |
| bitlist bytes to tree (120,90) | 1.6500 us/op | 1.4800 us/op | 1.11 |
| bitlist bytes to struct (2048,2048) | 648.00 ns/op | 580.00 ns/op | 1.12 |
| bitlist bytes to tree (2048,2048) | 2.7320 us/op | 3.2120 us/op | 0.85 |
| ByteListType - deserialize | 6.4783 ms/op | 5.9152 ms/op | 1.10 |
| BasicListType - deserialize | 6.9364 ms/op | 7.1824 ms/op | 0.97 |
| ByteListType - serialize | 6.8958 ms/op | 6.5758 ms/op | 1.05 |
| BasicListType - serialize | 10.226 ms/op | 9.5719 ms/op | 1.07 |
| BasicListType - tree_convertToStruct | 17.827 ms/op | 18.916 ms/op | 0.94 |
| List[uint8, 68719476736] len 300000 ViewDU.getAll() + iterate | 4.0725 ms/op | 3.3508 ms/op | 1.22 |
| List[uint8, 68719476736] len 300000 ViewDU.get(i) | 3.6871 ms/op | 2.9063 ms/op | 1.27 |
| Array.push len 300000 empty Array - number | 3.9675 ms/op | 3.6775 ms/op | 1.08 |
| Array.set len 300000 from new Array - number | 1.0918 ms/op | 1.0805 ms/op | 1.01 |
| Array.set len 300000 - number | 4.0364 ms/op | 3.8120 ms/op | 1.06 |
| Uint8Array.set len 300000 | 309.75 us/op | 273.06 us/op | 1.13 |
| Uint32Array.set len 300000 | 549.50 us/op | 422.08 us/op | 1.30 |
| Container({a: uint8, b: uint8}) getViewDU x300000 | 25.878 ms/op | 67.784 ms/op | 0.38 |
| ContainerNodeStruct({a: uint8, b: uint8}) getViewDU x300000 | 8.9932 ms/op | 7.4806 ms/op | 1.20 |
| List(Container) len 300000 ViewDU.getAllReadonly() + iterate | 89.991 ms/op | 79.299 ms/op | 1.13 |
| List(Container) len 300000 ViewDU.getAllReadonlyValues() + iterate | 223.05 ms/op | 223.39 ms/op | 1.00 |
| List(Container) len 300000 ViewDU.get(i) | 7.5298 ms/op | 11.134 ms/op | 0.68 |
| List(Container) len 300000 ViewDU.getReadonly(i) | 7.4280 ms/op | 11.052 ms/op | 0.67 |
| List(ContainerNodeStruct) len 300000 ViewDU.getAllReadonly() + iterate | 14.961 ms/op | 9.4542 ms/op | 1.58 |
| List(ContainerNodeStruct) len 300000 ViewDU.getAllReadonlyValues() + iterate | 4.0433 ms/op | 4.1070 ms/op | 0.98 |
| List(ContainerNodeStruct) len 300000 ViewDU.get(i) | 6.7300 ms/op | 8.2541 ms/op | 0.82 |
| List(ContainerNodeStruct) len 300000 ViewDU.getReadonly(i) | 6.6652 ms/op | 7.9679 ms/op | 0.84 |
| Array.push len 300000 empty Array - object | 4.1910 ms/op | 4.0121 ms/op | 1.04 |
| Array.set len 300000 from new Array - object | 1.2194 ms/op | 1.1537 ms/op | 1.06 |
| Array.set len 300000 - object | 4.2830 ms/op | 3.9639 ms/op | 1.08 |
| List 300 txs of 500 bytes Uint8Array[] deserialize | 213.36 us/op | 173.29 us/op | 1.23 |
| List 300 txs of 500 bytes SerializedList deserialize | 119.40 us/op | 53.452 us/op | 2.23 |
| List 300 txs of 500 bytes Uint8Array[] serialize | 65.757 us/op | 38.264 us/op | 1.72 |
| List 300 txs of 500 bytes SerializedList serialize | 42.469 us/op | 30.343 us/op | 1.40 |
| List 300 txs of 500 bytes Uint8Array[] hashTreeRoot | 4.1851 ms/op | 3.3041 ms/op | 1.27 |
| List 300 txs of 500 bytes SerializedList hashTreeRoot | 4.2255 ms/op | 3.3180 ms/op | 1.27 |
| List 1048576 empty txs Uint8Array[] deserialize | 137.72 ms/op | 246.13 ms/op | 0.56 |
| List 1048576 empty txs SerializedList deserialize | 12.970 ms/op | 12.346 ms/op | 1.05 |
| List 1048576 empty txs Uint8Array[] serialize | 34.531 ms/op | 23.258 ms/op | 1.48 |
| List 1048576 empty txs SerializedList serialize | 849.18 us/op | 517.18 us/op | 1.64 |
| List 1048576 empty txs Uint8Array[] hashTreeRoot | 619.93 ms/op | 462.49 ms/op | 1.34 |
| List 1048576 empty txs SerializedList hashTreeRoot | 611.89 ms/op | 454.22 ms/op | 1.35 |
| ProgressiveList 300 txs of 500 bytes Uint8Array[] deserialize | 176.20 us/op | 175.75 us/op | 1.00 |
| ProgressiveList 300 txs of 500 bytes SerializedList deserialize | 106.65 us/op | 49.175 us/op | 2.17 |
| ProgressiveList 300 txs of 500 bytes Uint8Array[] serialize | 66.116 us/op | 24.688 us/op | 2.68 |
| ProgressiveList 300 txs of 500 bytes SerializedList serialize | 38.419 us/op | 29.836 us/op | 1.29 |
| ProgressiveList 300 txs of 500 bytes Uint8Array[] hashTreeRoot | 1.4329 ms/op | 1.1824 ms/op | 1.21 |
| ProgressiveList 300 txs of 500 bytes SerializedList hashTreeRoot | 1.4267 ms/op | 1.1811 ms/op | 1.21 |
| ProgressiveList 1048576 empty txs Uint8Array[] deserialize | 139.13 ms/op | 296.20 ms/op | 0.47 |
| ProgressiveList 1048576 empty txs SerializedList deserialize | 12.076 ms/op | 9.0714 ms/op | 1.33 |
| ProgressiveList 1048576 empty txs Uint8Array[] serialize | 32.009 ms/op | 31.996 ms/op | 1.00 |
| ProgressiveList 1048576 empty txs SerializedList serialize | 739.59 us/op | 284.59 us/op | 2.60 |
| ProgressiveList 1048576 empty txs Uint8Array[] hashTreeRoot | 631.38 ms/op | 452.89 ms/op | 1.39 |
| ProgressiveList 1048576 empty txs SerializedList hashTreeRoot | 586.84 ms/op | 447.62 ms/op | 1.31 |
| cachePermanentRootStruct no cache | 2.5680 us/op | 2.0570 us/op | 1.25 |
| cachePermanentRootStruct with cache | 162.00 ns/op | 123.00 ns/op | 1.32 |
| epochParticipation len 250000 rws 7813 | 2.2868 ms/op | 1.8449 ms/op | 1.24 |
| Deneb BeaconBlock.hashTreeRoot(), numTransaction=200 | 4.1710 ms/op | 3.2728 ms/op | 1.27 |
| BeaconState ViewDU batchHashTreeRoot vc=200000 mod=100000 | 188.42 ms/op | 188.89 ms/op | 1.00 |
| BeaconState ViewDU batchHashTreeRoot - commit step vc=200000 mod=100000 | 154.74 ms/op | 147.21 ms/op | 1.05 |
| BeaconState ViewDU batchHashTreeRoot - hash step vc=200000 mod=100000 | 28.388 ms/op | 31.006 ms/op | 0.92 |
| BeaconState ViewDU hashTreeRoot() vc=200000 mod=100000 | 633.03 ms/op | 522.55 ms/op | 1.21 |
| BeaconState ViewDU hashTreeRoot - commit step vc=200000 mod=100000 | 52.597 ms/op | 43.092 ms/op | 1.22 |
| BeaconState ViewDU hashTreeRoot - validator tree creation vc=100000 mod=100000 | 227.09 ms/op | 196.86 ms/op | 1.15 |
| sweep 16384 balances after clone + commit | 21.710 ns/op | 18.341 ns/op | 1.18 |
| deserialize Attestation - tree | 2.9690 us/op | 2.5140 us/op | 1.18 |
| deserialize Attestation - struct | 1.5580 us/op | 1.3190 us/op | 1.18 |
| deserialize Attestation - struct (reuse bytes) | 1.1700 us/op | 905.00 ns/op | 1.29 |
| deserialize SignedAggregateAndProof - tree | 4.0800 us/op | 3.3170 us/op | 1.23 |
| deserialize SignedAggregateAndProof - struct | 2.4790 us/op | 2.3610 us/op | 1.05 |
| deserialize SignedAggregateAndProof - struct (reuse bytes) | 1.5320 us/op | 1.2350 us/op | 1.24 |
| deserialize SyncCommitteeMessage - tree | 1.1450 us/op | 920.00 ns/op | 1.24 |
| deserialize SyncCommitteeMessage - struct | 927.00 ns/op | 799.00 ns/op | 1.16 |
| deserialize SyncCommitteeMessage - struct (reuse bytes) | 578.00 ns/op | 450.00 ns/op | 1.28 |
| deserialize SignedContributionAndProof - tree | 2.5300 us/op | 1.9340 us/op | 1.31 |
| deserialize SignedContributionAndProof - struct | 1.9010 us/op | 1.9600 us/op | 0.97 |
| deserialize SignedContributionAndProof - struct (reuse bytes) | 992.00 ns/op | 770.00 ns/op | 1.29 |
| deserialize SignedBeaconBlock - tree | 231.73 us/op | 192.59 us/op | 1.20 |
| deserialize SignedBeaconBlock - struct | 101.21 us/op | 92.041 us/op | 1.10 |
| deserialize SignedBeaconBlock - struct (reuse bytes) | 62.894 us/op | 49.660 us/op | 1.27 |
| BeaconState vc 300000 - deserialize tree | 316.83 ms/op | 285.29 ms/op | 1.11 |
| BeaconState vc 300000 - serialize tree | 110.84 ms/op | 72.019 ms/op | 1.54 |
| BeaconState.historicalRoots vc 300000 - deserialize tree | 600.00 ns/op | 1.8130 us/op | 0.33 |
| BeaconState.historicalRoots vc 300000 - serialize tree | 523.00 ns/op | 530.00 ns/op | 0.99 |
| BeaconState.validators vc 300000 - deserialize tree | 287.18 ms/op | 250.79 ms/op | 1.15 |
| BeaconState.validators vc 300000 - serialize tree | 41.663 ms/op | 35.658 ms/op | 1.17 |
| BeaconState.balances vc 300000 - deserialize tree | 8.0374 ms/op | 6.7452 ms/op | 1.19 |
| BeaconState.balances vc 300000 - serialize tree | 5.7276 ms/op | 5.9020 ms/op | 0.97 |
| BeaconState.previousEpochParticipation vc 300000 - deserialize tree | 690.30 us/op | 551.98 us/op | 1.25 |
| BeaconState.previousEpochParticipation vc 300000 - serialize tree | 511.10 us/op | 410.16 us/op | 1.25 |
| BeaconState.currentEpochParticipation vc 300000 - deserialize tree | 690.69 us/op | 549.62 us/op | 1.26 |
| BeaconState.currentEpochParticipation vc 300000 - serialize tree | 516.20 us/op | 462.09 us/op | 1.12 |
| BeaconState.inactivityScores vc 300000 - deserialize tree | 8.1329 ms/op | 6.6631 ms/op | 1.22 |
| BeaconState.inactivityScores vc 300000 - serialize tree | 4.8603 ms/op | 3.8679 ms/op | 1.26 |
| hashTreeRoot Attestation - struct | 7.7870 us/op | 5.9840 us/op | 1.30 |
| hashTreeRoot Attestation - tree | 7.0080 us/op | 5.4190 us/op | 1.29 |
| hashTreeRoot SignedAggregateAndProof - struct | 11.147 us/op | 8.5780 us/op | 1.30 |
| hashTreeRoot SignedAggregateAndProof - tree | 10.615 us/op | 8.2200 us/op | 1.29 |
| hashTreeRoot SyncCommitteeMessage - struct | 2.6570 us/op | 2.0940 us/op | 1.27 |
| hashTreeRoot SyncCommitteeMessage - tree | 2.5770 us/op | 2.0350 us/op | 1.27 |
| hashTreeRoot SignedContributionAndProof - struct | 6.7660 us/op | 5.2850 us/op | 1.28 |
| hashTreeRoot SignedContributionAndProof - tree | 7.3190 us/op | 5.6670 us/op | 1.29 |
| hashTreeRoot SignedBeaconBlock - struct | 684.79 us/op | 525.01 us/op | 1.30 |
| hashTreeRoot SignedBeaconBlock - tree | 641.76 us/op | 482.60 us/op | 1.33 |
| hashTreeRoot Validator - struct | 3.4980 us/op | 2.7030 us/op | 1.29 |
| hashTreeRoot Validator - tree | 5.2660 us/op | 4.2250 us/op | 1.25 |
| BeaconState vc 300000 - hashTreeRoot tree | 1.7215 s/op | 1.4517 s/op | 1.19 |
| BeaconState vc 300000 - batchHashTreeRoot tree | 3.2657 s/op | 3.1011 s/op | 1.05 |
| BeaconState.historicalRoots vc 300000 - hashTreeRoot tree | 745.00 ns/op | 618.00 ns/op | 1.21 |
| BeaconState.validators vc 300000 - hashTreeRoot tree | 1.7132 s/op | 1.4495 s/op | 1.18 |
| BeaconState.balances vc 300000 - hashTreeRoot tree | 27.026 ms/op | 20.595 ms/op | 1.31 |
| BeaconState.previousEpochParticipation vc 300000 - hashTreeRoot tree | 3.3745 ms/op | 2.5554 ms/op | 1.32 |
| BeaconState.currentEpochParticipation vc 300000 - hashTreeRoot tree | 3.3664 ms/op | 2.5607 ms/op | 1.31 |
| BeaconState.inactivityScores vc 300000 - hashTreeRoot tree | 27.057 ms/op | 20.639 ms/op | 1.31 |
| hash64 x18 | 6.1180 us/op | 4.7780 us/op | 1.28 |
| hashTwoObjects x18 | 6.0910 us/op | 4.7940 us/op | 1.27 |
| hash64 x1740 | 571.47 us/op | 441.94 us/op | 1.29 |
| hashTwoObjects x1740 | 570.81 us/op | 445.78 us/op | 1.28 |
| hash64 x2700000 | 894.08 ms/op | 706.27 ms/op | 1.27 |
| hashTwoObjects x2700000 | 885.45 ms/op | 692.03 ms/op | 1.28 |
| get_exitEpoch - ContainerType | 163.00 ns/op | 133.00 ns/op | 1.23 |
| get_exitEpoch - ContainerNodeStructType | 175.00 ns/op | 136.00 ns/op | 1.29 |
| set_exitEpoch - ContainerType | 195.00 ns/op | 143.00 ns/op | 1.36 |
| set_exitEpoch - ContainerNodeStructType | 175.00 ns/op | 134.00 ns/op | 1.31 |
| get_pubkey - ContainerType | 732.00 ns/op | 601.00 ns/op | 1.22 |
| get_pubkey - ContainerNodeStructType | 164.00 ns/op | 127.00 ns/op | 1.29 |
| hashTreeRoot - ContainerType | 304.00 ns/op | 213.00 ns/op | 1.43 |
| hashTreeRoot - ContainerNodeStructType | 294.00 ns/op | 209.00 ns/op | 1.41 |
| createProof - ContainerType | 3.0700 us/op | 2.5500 us/op | 1.20 |
| createProof - ContainerNodeStructType | 17.260 us/op | 12.885 us/op | 1.34 |
| serialize - ContainerType | 1.3250 us/op | 1.1230 us/op | 1.18 |
| serialize - ContainerNodeStructType | 890.00 ns/op | 856.00 ns/op | 1.04 |
| set_exitEpoch_and_hashTreeRoot - ContainerType | 2.0760 us/op | 1.7310 us/op | 1.20 |
| set_exitEpoch_and_hashTreeRoot - ContainerNodeStructType | 5.7340 us/op | 4.5830 us/op | 1.25 |
| doBatchHashTreeRootValidators | 3.2310 us/op | 2.6680 us/op | 1.21 |
| ContainerNodeStructViewDU hashTreeRoot | 20.213 us/op | 16.321 us/op | 1.24 |
| Array - for of | 9.1820 us/op | 4.9810 us/op | 1.84 |
| Array - for(;;) | 9.1170 us/op | 4.6780 us/op | 1.95 |
| basicListValue.readonlyValuesArray() | 3.0316 ms/op | 2.5361 ms/op | 1.20 |
| basicListValue.readonlyValuesArray() + loop all | 3.6242 ms/op | 3.1530 ms/op | 1.15 |
| compositeListValue.readonlyValuesArray() | 10.485 ms/op | 8.4981 ms/op | 1.23 |
| compositeListValue.readonlyValuesArray() + loop all | 11.000 ms/op | 12.423 ms/op | 0.89 |
| Number64UintType - get balances list | 2.6378 ms/op | 2.3212 ms/op | 1.14 |
| Number64UintType - set balances list | 10.001 ms/op | 7.4164 ms/op | 1.35 |
| Number64UintType - get and increase 10 then set | 27.375 ms/op | 22.377 ms/op | 1.22 |
| Number64UintType - increase 10 using applyDelta | 14.599 ms/op | 11.298 ms/op | 1.29 |
| Number64UintType - increase 10 using applyDeltaInBatch | 14.714 ms/op | 11.470 ms/op | 1.28 |
| tree_newTreeFromUint64Deltas | 12.535 ms/op | 10.952 ms/op | 1.14 |
| unsafeUint8ArrayToTree | 20.946 ms/op | 15.999 ms/op | 1.31 |
| bitLength(50) | 186.00 ns/op | 150.00 ns/op | 1.24 |
| bitLengthStr(50) | 192.00 ns/op | 147.00 ns/op | 1.31 |
| bitLength(8000) | 186.00 ns/op | 145.00 ns/op | 1.28 |
| bitLengthStr(8000) | 233.00 ns/op | 186.00 ns/op | 1.25 |
| bitLength(250000) | 186.00 ns/op | 144.00 ns/op | 1.29 |
| bitLengthStr(250000) | 268.00 ns/op | 215.00 ns/op | 1.25 |
| merkleize 32 chunks | 10.991 us/op | 8.5590 us/op | 1.28 |
| merkleizeBlocksBytes 32 chunks | 2.6330 us/op | 2.2030 us/op | 1.20 |
| merkleizeBlockArray 32 chunks | 4.8640 us/op | 3.8910 us/op | 1.25 |
| merkleize 128 chunks | 43.910 us/op | 34.382 us/op | 1.28 |
| merkleizeBlocksBytes 128 chunks | 6.6320 us/op | 5.6460 us/op | 1.17 |
| merkleizeBlockArray 128 chunks | 14.174 us/op | 11.333 us/op | 1.25 |
| merkleize 512 chunks | 175.89 us/op | 138.30 us/op | 1.27 |
| merkleizeBlocksBytes 512 chunks | 21.412 us/op | 18.370 us/op | 1.17 |
| merkleizeBlockArray 512 chunks | 49.008 us/op | 39.575 us/op | 1.24 |
| merkleize 1024 chunks | 358.77 us/op | 277.85 us/op | 1.29 |
| merkleizeBlocksBytes 1024 chunks | 40.706 us/op | 34.931 us/op | 1.17 |
| merkleizeBlockArray 1024 chunks | 95.197 us/op | 76.593 us/op | 1.24 |
| floor - Math.floor (53) | 0.35017 ns/op | 0.30700 ns/op | 1.14 |
| floor - << 0 (53) | 0.35017 ns/op | 0.30694 ns/op | 1.14 |
| floor - Math.floor (512) | 0.35013 ns/op | 0.30688 ns/op | 1.14 |
| floor - << 0 (512) | 0.35012 ns/op | 0.30687 ns/op | 1.14 |
| fnIf(0) | 1.4985 ns/op | 1.2270 ns/op | 1.22 |
| fnSwitch(0) | 2.5455 ns/op | 1.9878 ns/op | 1.28 |
| fnObj(0) | 0.35014 ns/op | 0.30684 ns/op | 1.14 |
| fnArr(0) | 0.35029 ns/op | 0.30687 ns/op | 1.14 |
| fnIf(4) | 2.1777 ns/op | 1.9088 ns/op | 1.14 |
| fnSwitch(4) | 2.1776 ns/op | 1.9033 ns/op | 1.14 |
| fnObj(4) | 0.35014 ns/op | 0.30698 ns/op | 1.14 |
| fnArr(4) | 0.35039 ns/op | 0.30689 ns/op | 1.14 |
| fnIf(9) | 3.1105 ns/op | 2.5895 ns/op | 1.20 |
| fnSwitch(9) | 2.1788 ns/op | 1.9038 ns/op | 1.14 |
| fnObj(9) | 0.35010 ns/op | 0.30688 ns/op | 1.14 |
| fnArr(9) | 0.35019 ns/op | 0.30699 ns/op | 1.14 |
| Container {a,b,vec} - as struct x100000 | 34.831 us/op | 30.566 us/op | 1.14 |
| Container {a,b,vec} - as tree x100000 | 653.47 us/op | 491.33 us/op | 1.33 |
| Container {a,vec,b} - as struct x100000 | 77.217 us/op | 67.788 us/op | 1.14 |
| Container {a,vec,b} - as tree x100000 | 995.41 us/op | 766.30 us/op | 1.30 |
| get 2 props x1000000 - rawObject | 311.25 us/op | 272.84 us/op | 1.14 |
| get 2 props x1000000 - proxy | 78.137 ms/op | 62.964 ms/op | 1.24 |
| get 2 props x1000000 - customObj | 311.31 us/op | 272.81 us/op | 1.14 |
| Simple object binary -> struct | 434.00 ns/op | 326.00 ns/op | 1.33 |
| Simple object binary -> tree_backed | 942.00 ns/op | 742.00 ns/op | 1.27 |
| Simple object struct -> tree_backed | 1.3750 us/op | 1.1810 us/op | 1.16 |
| Simple object tree_backed -> struct | 1.2320 us/op | 997.00 ns/op | 1.24 |
| Simple object struct -> binary | 677.00 ns/op | 579.00 ns/op | 1.17 |
| Simple object tree_backed -> binary | 1.0390 us/op | 898.00 ns/op | 1.16 |
| aggregationBits binary -> struct | 374.00 ns/op | 280.00 ns/op | 1.34 |
| aggregationBits binary -> tree_backed | 1.6630 us/op | 1.4300 us/op | 1.16 |
| aggregationBits struct -> tree_backed | 1.9360 us/op | 1.8550 us/op | 1.04 |
| aggregationBits tree_backed -> struct | 794.00 ns/op | 673.00 ns/op | 1.18 |
| aggregationBits struct -> binary | 573.00 ns/op | 497.00 ns/op | 1.15 |
| aggregationBits tree_backed -> binary | 686.00 ns/op | 596.00 ns/op | 1.15 |
| List(uint8) 100000 binary -> struct | 700.20 us/op | 620.59 us/op | 1.13 |
| List(uint8) 100000 binary -> tree_backed | 230.87 us/op | 186.23 us/op | 1.24 |
| List(uint8) 100000 struct -> tree_backed | 1.4595 ms/op | 1.2274 ms/op | 1.19 |
| List(uint8) 100000 tree_backed -> struct | 788.39 us/op | 671.33 us/op | 1.17 |
| List(uint8) 100000 struct -> binary | 1.3494 ms/op | 1.0433 ms/op | 1.29 |
| List(uint8) 100000 tree_backed -> binary | 200.06 us/op | 141.71 us/op | 1.41 |
| List(uint64Number) 100000 binary -> struct | 1.0448 ms/op | 841.38 us/op | 1.24 |
| List(uint64Number) 100000 binary -> tree_backed | 1.9395 ms/op | 1.5439 ms/op | 1.26 |
| List(uint64Number) 100000 struct -> tree_backed | 3.6429 ms/op | 2.8729 ms/op | 1.27 |
| List(uint64Number) 100000 tree_backed -> struct | 1.7855 ms/op | 1.3971 ms/op | 1.28 |
| List(uint64Number) 100000 struct -> binary | 2.5604 ms/op | 2.2908 ms/op | 1.12 |
| List(uint64Number) 100000 tree_backed -> binary | 1.7711 ms/op | 1.1814 ms/op | 1.50 |
| List(Uint64Bigint) 100000 binary -> struct | 1.5662 ms/op | 1.3257 ms/op | 1.18 |
| List(Uint64Bigint) 100000 binary -> tree_backed | 1.9400 ms/op | 1.5480 ms/op | 1.25 |
| List(Uint64Bigint) 100000 struct -> tree_backed | 3.4630 ms/op | 2.7409 ms/op | 1.26 |
| List(Uint64Bigint) 100000 tree_backed -> struct | 2.3218 ms/op | 1.8690 ms/op | 1.24 |
| List(Uint64Bigint) 100000 struct -> binary | 2.3004 ms/op | 2.0754 ms/op | 1.11 |
| List(Uint64Bigint) 100000 tree_backed -> binary | 1.6428 ms/op | 1.2197 ms/op | 1.35 |
| Vector(Root) 100000 binary -> struct | 11.102 ms/op | 9.4828 ms/op | 1.17 |
| Vector(Root) 100000 binary -> tree_backed | 18.472 ms/op | 14.668 ms/op | 1.26 |
| Vector(Root) 100000 struct -> tree_backed | 22.073 ms/op | 17.110 ms/op | 1.29 |
| Vector(Root) 100000 tree_backed -> struct | 14.690 ms/op | 11.900 ms/op | 1.23 |
| Vector(Root) 100000 struct -> binary | 6.5312 ms/op | 4.3883 ms/op | 1.49 |
| Vector(Root) 100000 tree_backed -> binary | 4.5466 ms/op | 3.6160 ms/op | 1.26 |
| List(Validator) 100000 binary -> struct | 66.133 ms/op | 54.465 ms/op | 1.21 |
| List(Validator) 100000 binary -> tree_backed | 191.74 ms/op | 156.74 ms/op | 1.22 |
| List(Validator) 100000 struct -> tree_backed | 219.51 ms/op | 179.90 ms/op | 1.22 |
| List(Validator) 100000 tree_backed -> struct | 135.69 ms/op | 140.25 ms/op | 0.97 |
| List(Validator) 100000 struct -> binary | 43.899 ms/op | 33.288 ms/op | 1.32 |
| List(Validator) 100000 tree_backed -> binary | 68.449 ms/op | 88.337 ms/op | 0.77 |
| List(Validator-NS) 100000 binary -> struct | 67.105 ms/op | 56.787 ms/op | 1.18 |
| List(Validator-NS) 100000 binary -> tree_backed | 95.749 ms/op | 83.570 ms/op | 1.15 |
| List(Validator-NS) 100000 struct -> tree_backed | 104.32 ms/op | 95.536 ms/op | 1.09 |
| List(Validator-NS) 100000 tree_backed -> struct | 103.81 ms/op | 90.842 ms/op | 1.14 |
| List(Validator-NS) 100000 struct -> binary | 14.187 ms/op | 9.4883 ms/op | 1.50 |
| List(Validator-NS) 100000 tree_backed -> binary | 21.232 ms/op | 19.301 ms/op | 1.10 |
| get epochStatuses - MutableVector | 104.45 us/op | 86.537 us/op | 1.21 |
| get epochStatuses - ViewDU | 167.68 us/op | 134.46 us/op | 1.25 |
| set epochStatuses - ListTreeView | 1.8679 ms/op | 1.4329 ms/op | 1.30 |
| set epochStatuses - ListTreeView - set() | 479.90 us/op | 364.30 us/op | 1.32 |
| set epochStatuses - ListTreeView - commit() | 736.55 us/op | 560.86 us/op | 1.31 |
| bitstring | 462.25 ns/op | 380.93 ns/op | 1.21 |
| bit mask | 7.1952 ns/op | 6.3502 ns/op | 1.13 |
| struct - increase slot to 1000000 | 350.23 us/op | 306.90 us/op | 1.14 |
| UintNumberType - increase slot to 1000000 | 29.274 ms/op | 19.664 ms/op | 1.49 |
| UintBigintType - increase slot to 1000000 | 180.19 ms/op | 124.08 ms/op | 1.45 |
| UintBigint8 x 100000 tree_deserialize | 5.3481 ms/op | 3.9936 ms/op | 1.34 |
| UintBigint8 x 100000 tree_serialize | 1.2453 ms/op | 954.47 us/op | 1.30 |
| UintBigint16 x 100000 tree_deserialize | 5.6029 ms/op | 4.0367 ms/op | 1.39 |
| UintBigint16 x 100000 tree_serialize | 1.2756 ms/op | 983.88 us/op | 1.30 |
| UintBigint32 x 100000 tree_deserialize | 4.8082 ms/op | 3.7406 ms/op | 1.29 |
| UintBigint32 x 100000 tree_serialize | 1.6280 ms/op | 1.3231 ms/op | 1.23 |
| UintBigint64 x 100000 tree_deserialize | 5.1664 ms/op | 4.1188 ms/op | 1.25 |
| UintBigint64 x 100000 tree_serialize | 2.3564 ms/op | 1.2744 ms/op | 1.85 |
| UintBigint8 x 100000 value_deserialize | 405.20 us/op | 327.40 us/op | 1.24 |
| UintBigint8 x 100000 value_serialize | 375.14 us/op | 314.15 us/op | 1.19 |
| UintBigint16 x 100000 value_deserialize | 466.81 us/op | 354.50 us/op | 1.32 |
| UintBigint16 x 100000 value_serialize | 363.75 us/op | 334.72 us/op | 1.09 |
| UintBigint32 x 100000 value_deserialize | 466.74 us/op | 381.83 us/op | 1.22 |
| UintBigint32 x 100000 value_serialize | 406.57 us/op | 377.58 us/op | 1.08 |
| UintBigint64 x 100000 value_deserialize | 529.09 us/op | 409.09 us/op | 1.29 |
| UintBigint64 x 100000 value_serialize | 525.50 us/op | 497.63 us/op | 1.06 |
| UintBigint8 x 100000 deserialize | 1.9209 ms/op | 1.7199 ms/op | 1.12 |
| UintBigint8 x 100000 serialize | 1.5316 ms/op | 1.4149 ms/op | 1.08 |
| UintBigint16 x 100000 deserialize | 1.9939 ms/op | 1.7787 ms/op | 1.12 |
| UintBigint16 x 100000 serialize | 2.8812 ms/op | 1.9631 ms/op | 1.47 |
| UintBigint32 x 100000 deserialize | 2.0279 ms/op | 1.7039 ms/op | 1.19 |
| UintBigint32 x 100000 serialize | 2.7265 ms/op | 2.1056 ms/op | 1.29 |
| UintBigint64 x 100000 deserialize | 1.9167 ms/op | 1.7132 ms/op | 1.12 |
| UintBigint64 x 100000 serialize | 1.1522 ms/op | 933.65 us/op | 1.23 |
| UintBigint128 x 100000 deserialize | 2.3048 ms/op | 1.8912 ms/op | 1.22 |
| UintBigint128 x 100000 serialize | 11.907 ms/op | 9.0242 ms/op | 1.32 |
| UintBigint256 x 100000 deserialize | 3.0215 ms/op | 2.5259 ms/op | 1.20 |
| UintBigint256 x 100000 serialize | 38.101 ms/op | 29.072 ms/op | 1.31 |
| Slice from Uint8Array x25000 | 934.51 us/op | 735.70 us/op | 1.27 |
| Slice from ArrayBuffer x25000 | 9.9857 ms/op | 10.960 ms/op | 0.91 |
| Slice from ArrayBuffer x25000 + new Uint8Array | 16.531 ms/op | 13.046 ms/op | 1.27 |
| Copy Uint8Array 100000 iterate | 950.35 us/op | 702.63 us/op | 1.35 |
| Copy Uint8Array 100000 slice | 182.91 us/op | 52.134 us/op | 3.51 |
| Copy Uint8Array 100000 Uint8Array.prototype.slice.call | 77.932 us/op | 51.670 us/op | 1.51 |
| Copy Buffer 100000 Uint8Array.prototype.slice.call | 77.370 us/op | 51.761 us/op | 1.49 |
| Copy Uint8Array 100000 slice + set | 143.19 us/op | 102.38 us/op | 1.40 |
| Copy Uint8Array 100000 subarray + set | 71.957 us/op | 51.182 us/op | 1.41 |
| Copy Uint8Array 100000 slice arrayBuffer | 74.028 us/op | 51.471 us/op | 1.44 |
| Uint64 deserialize 100000 - iterate Uint8Array | 1.2432 ms/op | 1.1774 ms/op | 1.06 |
| Uint64 deserialize 100000 - by Uint32A | 1.2369 ms/op | 1.1635 ms/op | 1.06 |
| Uint64 deserialize 100000 - by DataView.getUint32 x2 | 1.3961 ms/op | 1.2625 ms/op | 1.11 |
| Uint64 deserialize 100000 - by DataView.getBigUint64 | 3.6559 ms/op | 3.0022 ms/op | 1.22 |
| Uint64 deserialize 100000 - by byte | 15.685 ms/op | 11.956 ms/op | 1.31 |
by benchmarkbot/action
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🤖 I have created a release beep boop
ssz: 1.9.0
1.9.0 (2026-10-16)
Features
This PR was generated with Release Please. See documentation.