ChainSafe / ssz

Typescript implementation of Simple Serialize (SSZ)
https://simpleserialize.com/
Other
50 stars 19 forks source link

chore: release master #330

Closed wemeetagain closed 1 year ago

wemeetagain commented 1 year ago

:robot: I have created a release beep boop

ssz: 0.12.0 ## [0.12.0](https://github.com/ChainSafe/ssz/compare/ssz-v0.11.1...ssz-v0.12.0) (2023-09-09) ### Features * add optional ssz type ([#329](https://github.com/ChainSafe/ssz/issues/329)) ([3b714a2](https://github.com/ChainSafe/ssz/commit/3b714a29f8e69524ee5133ef3a28029d1d9f6669))

This PR was generated with Release Please. See documentation.

github-actions[bot] commented 1 year ago

Performance Report

✔️ no performance regression detected

🚀🚀 Significant benchmark improvement detected

Benchmark suite Current: 85f2a97cefef2b3d394e5f9a89777e5e1d9acd62 Previous: 2929e8b6a0d787b9087d9438337a2486012401cb Ratio
List[uint8, 68719476736] len 300000 ViewDU.get(i) 1.8348 ms/op 6.7931 ms/op 0.27
Full benchmark results | Benchmark suite | Current: 85f2a97cefef2b3d394e5f9a89777e5e1d9acd62 | Previous: 2929e8b6a0d787b9087d9438337a2486012401cb | Ratio | |-|-|-|-| | digestTwoHashObjects 50023 times | 58.404 ms/op | 60.155 ms/op | 0.97 | | digest64 50023 times | 60.690 ms/op | 62.455 ms/op | 0.97 | | digest 50023 times | 60.552 ms/op | 62.483 ms/op | 0.97 | | input length 32 | 1.4570 us/op | 1.5150 us/op | 0.96 | | input length 64 | 1.6230 us/op | 1.6850 us/op | 0.96 | | input length 128 | 2.7700 us/op | 2.8640 us/op | 0.97 | | input length 256 | 4.1370 us/op | 4.2160 us/op | 0.98 | | input length 512 | 6.8120 us/op | 7.0390 us/op | 0.97 | | input length 1024 | 13.479 us/op | 13.666 us/op | 0.99 | | digest 1000000 times | 1.0442 s/op | 1.0704 s/op | 0.98 | | hashObjectToByteArray 50023 times | 2.7304 ms/op | 2.7336 ms/op | 1.00 | | byteArrayToHashObject 50023 times | 2.9180 ms/op | 2.8542 ms/op | 1.02 | | getGindicesAtDepth | 6.5100 us/op | 6.2310 us/op | 1.04 | | iterateAtDepth | 13.302 us/op | 12.804 us/op | 1.04 | | getGindexBits | 581.00 ns/op | 566.00 ns/op | 1.03 | | gindexIterator | 1.2840 us/op | 1.2220 us/op | 1.05 | | hash 2 Uint8Array 2250026 times - as-sha256 | 2.7577 s/op | 2.7703 s/op | 1.00 | | hashTwoObjects 2250026 times - as-sha256 | 2.8657 s/op | 2.6317 s/op | 1.09 | | hash 2 Uint8Array 2250026 times - noble | 7.5461 s/op | 7.2653 s/op | 1.04 | | hashTwoObjects 2250026 times - noble | 11.505 s/op | 11.096 s/op | 1.04 | | getNodeH() x7812.5 avg hindex | 25.827 us/op | 25.868 us/op | 1.00 | | getNodeH() x7812.5 index 0 | 10.897 us/op | 11.026 us/op | 0.99 | | getNodeH() x7812.5 index 7 | 10.907 us/op | 10.911 us/op | 1.00 | | getNodeH() x7812.5 index 7 with key array | 10.961 us/op | 10.913 us/op | 1.00 | | new LeafNode() x7812.5 | 213.22 us/op | 200.74 us/op | 1.06 | | multiproof - depth 15, 1 requested leaves | 14.470 us/op | 14.113 us/op | 1.03 | | tree offset multiproof - depth 15, 1 requested leaves | 31.750 us/op | 31.728 us/op | 1.00 | | compact multiproof - depth 15, 1 requested leaves | 9.2630 us/op | 9.4610 us/op | 0.98 | | multiproof - depth 15, 2 requested leaves | 21.981 us/op | 21.918 us/op | 1.00 | | tree offset multiproof - depth 15, 2 requested leaves | 37.439 us/op | 37.912 us/op | 0.99 | | compact multiproof - depth 15, 2 requested leaves | 5.0800 us/op | 5.2330 us/op | 0.97 | | multiproof - depth 15, 3 requested leaves | 31.645 us/op | 29.431 us/op | 1.08 | | tree offset multiproof - depth 15, 3 requested leaves | 53.599 us/op | 49.528 us/op | 1.08 | | compact multiproof - depth 15, 3 requested leaves | 8.9060 us/op | 9.3890 us/op | 0.95 | | multiproof - depth 15, 4 requested leaves | 37.969 us/op | 39.461 us/op | 0.96 | | tree offset multiproof - depth 15, 4 requested leaves | 60.640 us/op | 60.461 us/op | 1.00 | | compact multiproof - depth 15, 4 requested leaves | 10.390 us/op | 9.4540 us/op | 1.10 | | packedRootsBytesToLeafNodes bytes 4000 offset 0 | 3.9360 us/op | 3.9630 us/op | 0.99 | | packedRootsBytesToLeafNodes bytes 4000 offset 1 | 3.8240 us/op | 4.0770 us/op | 0.94 | | packedRootsBytesToLeafNodes bytes 4000 offset 2 | 3.8020 us/op | 3.9900 us/op | 0.95 | | packedRootsBytesToLeafNodes bytes 4000 offset 3 | 3.7510 us/op | 4.0180 us/op | 0.93 | | subtreeFillToContents depth 40 count 250000 | 85.504 ms/op | 92.509 ms/op | 0.92 | | setRoot - gindexBitstring | 14.930 ms/op | 17.242 ms/op | 0.87 | | setRoot - gindex | 16.077 ms/op | 16.535 ms/op | 0.97 | | getRoot - gindexBitstring | 4.2162 ms/op | 4.2109 ms/op | 1.00 | | getRoot - gindex | 4.5776 ms/op | 4.6134 ms/op | 0.99 | | getHashObject then setHashObject | 17.051 ms/op | 18.198 ms/op | 0.94 | | setNodeWithFn | 14.732 ms/op | 15.290 ms/op | 0.96 | | getNodeAtDepth depth 0 x100000 | 2.3983 ms/op | 2.3190 ms/op | 1.03 | | setNodeAtDepth depth 0 x100000 | 4.6476 ms/op | 4.7762 ms/op | 0.97 | | getNodesAtDepth depth 0 x100000 | 2.1233 ms/op | 2.0937 ms/op | 1.01 | | setNodesAtDepth depth 0 x100000 | 2.7954 ms/op | 2.7988 ms/op | 1.00 | | getNodeAtDepth depth 1 x100000 | 2.5814 ms/op | 2.5130 ms/op | 1.03 | | setNodeAtDepth depth 1 x100000 | 10.743 ms/op | 10.227 ms/op | 1.05 | | getNodesAtDepth depth 1 x100000 | 2.3643 ms/op | 2.3984 ms/op | 0.99 | | setNodesAtDepth depth 1 x100000 | 8.5733 ms/op | 8.3843 ms/op | 1.02 | | getNodeAtDepth depth 2 x100000 | 3.1351 ms/op | 3.1734 ms/op | 0.99 | | setNodeAtDepth depth 2 x100000 | 16.261 ms/op | 17.028 ms/op | 0.95 | | getNodesAtDepth depth 2 x100000 | 31.285 ms/op | 29.322 ms/op | 1.07 | | setNodesAtDepth depth 2 x100000 | 21.897 ms/op | 22.437 ms/op | 0.98 | | tree.getNodesAtDepth - gindexes | 10.139 ms/op | 9.8833 ms/op | 1.03 | | tree.getNodesAtDepth - push all nodes | 3.0058 ms/op | 2.7735 ms/op | 1.08 | | tree.getNodesAtDepth - navigation | 168.21 us/op | 169.26 us/op | 0.99 | | tree.setNodesAtDepth - indexes | 658.06 us/op | 598.80 us/op | 1.10 | | set at depth 8 | 964.00 ns/op | 739.00 ns/op | 1.30 | | set at depth 16 | 848.00 ns/op | 1.0010 us/op | 0.85 | | set at depth 32 | 1.8720 us/op | 1.6870 us/op | 1.11 | | iterateNodesAtDepth 8 256 | 27.732 us/op | 24.805 us/op | 1.12 | | getNodesAtDepth 8 256 | 6.8960 us/op | 6.6450 us/op | 1.04 | | iterateNodesAtDepth 16 65536 | 7.2372 ms/op | 7.2028 ms/op | 1.00 | | getNodesAtDepth 16 65536 | 2.8548 ms/op | 2.6705 ms/op | 1.07 | | iterateNodesAtDepth 32 250000 | 27.058 ms/op | 26.528 ms/op | 1.02 | | getNodesAtDepth 32 250000 | 7.8807 ms/op | 7.9147 ms/op | 1.00 | | iterateNodesAtDepth 40 250000 | 27.022 ms/op | 26.898 ms/op | 1.00 | | getNodesAtDepth 40 250000 | 8.1652 ms/op | 7.9145 ms/op | 1.03 | | 250k validators | 12.739 s/op | 11.826 s/op | 1.08 | | bitlist bytes to struct (120,90) | 1.0370 us/op | 773.00 ns/op | 1.34 | | bitlist bytes to tree (120,90) | 3.5140 us/op | 3.6420 us/op | 0.96 | | bitlist bytes to struct (2048,2048) | 2.1200 us/op | 1.8030 us/op | 1.18 | | bitlist bytes to tree (2048,2048) | 6.9190 us/op | 6.3580 us/op | 1.09 | | ByteListType - deserialize | 18.461 ms/op | 17.745 ms/op | 1.04 | | BasicListType - deserialize | 16.141 ms/op | 14.907 ms/op | 1.08 | | ByteListType - serialize | 18.589 ms/op | 17.117 ms/op | 1.09 | | BasicListType - serialize | 21.246 ms/op | 19.865 ms/op | 1.07 | | BasicListType - tree_convertToStruct | 40.989 ms/op | 39.211 ms/op | 1.05 | | List[uint8, 68719476736] len 300000 ViewDU.getAll() + iterate | 6.2179 ms/op | 6.7392 ms/op | 0.92 | | List[uint8, 68719476736] len 300000 ViewDU.get(i) | 1.8348 ms/op | 6.7931 ms/op | 0.27 | | Array.push len 300000 empty Array - number | 9.0520 ms/op | 9.0716 ms/op | 1.00 | | Array.set len 300000 from new Array - number | 2.4298 ms/op | 2.2853 ms/op | 1.06 | | Array.set len 300000 - number | 8.2429 ms/op | 8.0704 ms/op | 1.02 | | Uint8Array.set len 300000 | 265.86 us/op | 259.07 us/op | 1.03 | | Uint32Array.set len 300000 | 419.58 us/op | 395.30 us/op | 1.06 | | Container({a: uint8, b: uint8}) getViewDU x300000 | 33.616 ms/op | 35.924 ms/op | 0.94 | | ContainerNodeStruct({a: uint8, b: uint8}) getViewDU x300000 | 13.228 ms/op | 12.781 ms/op | 1.04 | | List(Container) len 300000 ViewDU.getAllReadonly() + iterate | 392.52 ms/op | 390.16 ms/op | 1.01 | | List(Container) len 300000 ViewDU.getAllReadonlyValues() + iterate | 471.96 ms/op | 450.90 ms/op | 1.05 | | List(Container) len 300000 ViewDU.get(i) | 12.863 ms/op | 12.077 ms/op | 1.07 | | List(Container) len 300000 ViewDU.getReadonly(i) | 12.677 ms/op | 11.687 ms/op | 1.08 | | List(ContainerNodeStruct) len 300000 ViewDU.getAllReadonly() + iterate | 47.614 ms/op | 60.526 ms/op | 0.79 | | List(ContainerNodeStruct) len 300000 ViewDU.getAllReadonlyValues() + iterate | 9.6073 ms/op | 9.4224 ms/op | 1.02 | | List(ContainerNodeStruct) len 300000 ViewDU.get(i) | 11.075 ms/op | 11.269 ms/op | 0.98 | | List(ContainerNodeStruct) len 300000 ViewDU.getReadonly(i) | 10.843 ms/op | 11.357 ms/op | 0.95 | | Array.push len 300000 empty Array - object | 9.5188 ms/op | 8.5972 ms/op | 1.11 | | Array.set len 300000 from new Array - object | 2.5916 ms/op | 2.7041 ms/op | 0.96 | | Array.set len 300000 - object | 8.4722 ms/op | 8.4605 ms/op | 1.00 | | cachePermanentRootStruct no cache | 12.062 us/op | 12.142 us/op | 0.99 | | cachePermanentRootStruct with cache | 297.00 ns/op | 325.00 ns/op | 0.91 | | epochParticipation len 250000 rws 7813 | 3.3027 ms/op | 3.3398 ms/op | 0.99 | | deserialize Attestation - tree | 4.1530 us/op | 4.2470 us/op | 0.98 | | deserialize Attestation - struct | 2.9020 us/op | 2.8780 us/op | 1.01 | | deserialize SignedAggregateAndProof - tree | 5.3900 us/op | 5.4800 us/op | 0.98 | | deserialize SignedAggregateAndProof - struct | 4.7950 us/op | 4.6190 us/op | 1.04 | | deserialize SyncCommitteeMessage - tree | 1.4550 us/op | 1.5170 us/op | 0.96 | | deserialize SyncCommitteeMessage - struct | 1.7640 us/op | 1.7740 us/op | 0.99 | | deserialize SignedContributionAndProof - tree | 2.6590 us/op | 2.8350 us/op | 0.94 | | deserialize SignedContributionAndProof - struct | 4.1890 us/op | 3.9910 us/op | 1.05 | | deserialize SignedBeaconBlock - tree | 323.54 us/op | 323.90 us/op | 1.00 | | deserialize SignedBeaconBlock - struct | 210.61 us/op | 207.14 us/op | 1.02 | | BeaconState vc 300000 - deserialize tree | 1.0423 s/op | 1.0775 s/op | 0.97 | | BeaconState vc 300000 - serialize tree | 315.30 ms/op | 344.13 ms/op | 0.92 | | BeaconState.historicalRoots vc 300000 - deserialize tree | 1.2300 us/op | 1.1720 us/op | 1.05 | | BeaconState.historicalRoots vc 300000 - serialize tree | 1.2330 us/op | 1.2080 us/op | 1.02 | | BeaconState.validators vc 300000 - deserialize tree | 982.15 ms/op | 1.0154 s/op | 0.97 | | BeaconState.validators vc 300000 - serialize tree | 262.28 ms/op | 284.77 ms/op | 0.92 | | BeaconState.balances vc 300000 - deserialize tree | 39.442 ms/op | 39.554 ms/op | 1.00 | | BeaconState.balances vc 300000 - serialize tree | 6.1610 ms/op | 5.8460 ms/op | 1.05 | | BeaconState.previousEpochParticipation vc 300000 - deserialize tree | 749.42 us/op | 809.23 us/op | 0.93 | | BeaconState.previousEpochParticipation vc 300000 - serialize tree | 495.25 us/op | 476.35 us/op | 1.04 | | BeaconState.currentEpochParticipation vc 300000 - deserialize tree | 760.07 us/op | 759.59 us/op | 1.00 | | BeaconState.currentEpochParticipation vc 300000 - serialize tree | 494.29 us/op | 473.54 us/op | 1.04 | | BeaconState.inactivityScores vc 300000 - deserialize tree | 44.305 ms/op | 45.434 ms/op | 0.98 | | BeaconState.inactivityScores vc 300000 - serialize tree | 5.6744 ms/op | 5.0744 ms/op | 1.12 | | hashTreeRoot Attestation - struct | 38.096 us/op | 36.648 us/op | 1.04 | | hashTreeRoot Attestation - tree | 25.093 us/op | 24.645 us/op | 1.02 | | hashTreeRoot SignedAggregateAndProof - struct | 53.724 us/op | 51.741 us/op | 1.04 | | hashTreeRoot SignedAggregateAndProof - tree | 34.590 us/op | 34.172 us/op | 1.01 | | hashTreeRoot SyncCommitteeMessage - struct | 12.849 us/op | 12.263 us/op | 1.05 | | hashTreeRoot SyncCommitteeMessage - tree | 7.6730 us/op | 7.6120 us/op | 1.01 | | hashTreeRoot SignedContributionAndProof - struct | 36.225 us/op | 34.744 us/op | 1.04 | | hashTreeRoot SignedContributionAndProof - tree | 24.811 us/op | 24.604 us/op | 1.01 | | hashTreeRoot SignedBeaconBlock - struct | 3.1550 ms/op | 3.0566 ms/op | 1.03 | | hashTreeRoot SignedBeaconBlock - tree | 2.0321 ms/op | 2.0403 ms/op | 1.00 | | hashTreeRoot Validator - struct | 17.511 us/op | 17.147 us/op | 1.02 | | hashTreeRoot Validator - tree | 14.204 us/op | 13.849 us/op | 1.03 | | BeaconState vc 300000 - hashTreeRoot tree | 4.6629 s/op | 4.6356 s/op | 1.01 | | BeaconState.historicalRoots vc 300000 - hashTreeRoot tree | 1.9770 us/op | 1.8960 us/op | 1.04 | | BeaconState.validators vc 300000 - hashTreeRoot tree | 4.3228 s/op | 4.4016 s/op | 0.98 | | BeaconState.balances vc 300000 - hashTreeRoot tree | 109.78 ms/op | 103.86 ms/op | 1.06 | | BeaconState.previousEpochParticipation vc 300000 - hashTreeRoot tree | 11.078 ms/op | 11.051 ms/op | 1.00 | | BeaconState.currentEpochParticipation vc 300000 - hashTreeRoot tree | 11.072 ms/op | 11.056 ms/op | 1.00 | | BeaconState.inactivityScores vc 300000 - hashTreeRoot tree | 113.57 ms/op | 105.18 ms/op | 1.08 | | hash64 x18 | 24.739 us/op | 24.415 us/op | 1.01 | | hashTwoObjects x18 | 21.661 us/op | 22.014 us/op | 0.98 | | hash64 x1740 | 2.3402 ms/op | 2.3098 ms/op | 1.01 | | hashTwoObjects x1740 | 2.1007 ms/op | 2.0727 ms/op | 1.01 | | hash64 x2700000 | 3.6280 s/op | 3.5867 s/op | 1.01 | | hashTwoObjects x2700000 | 3.2425 s/op | 3.2111 s/op | 1.01 | | get_exitEpoch - ContainerType | 506.00 ns/op | 476.00 ns/op | 1.06 | | get_exitEpoch - ContainerNodeStructType | 410.00 ns/op | 398.00 ns/op | 1.03 | | set_exitEpoch - ContainerType | 455.00 ns/op | 422.00 ns/op | 1.08 | | set_exitEpoch - ContainerNodeStructType | 422.00 ns/op | 296.00 ns/op | 1.43 | | get_pubkey - ContainerType | 1.6540 us/op | 1.5070 us/op | 1.10 | | get_pubkey - ContainerNodeStructType | 301.00 ns/op | 299.00 ns/op | 1.01 | | hashTreeRoot - ContainerType | 527.00 ns/op | 486.00 ns/op | 1.08 | | hashTreeRoot - ContainerNodeStructType | 585.00 ns/op | 559.00 ns/op | 1.05 | | createProof - ContainerType | 6.5470 us/op | 6.4110 us/op | 1.02 | | createProof - ContainerNodeStructType | 35.441 us/op | 35.255 us/op | 1.01 | | serialize - ContainerType | 2.9140 us/op | 2.7850 us/op | 1.05 | | serialize - ContainerNodeStructType | 2.4240 us/op | 2.2450 us/op | 1.08 | | set_exitEpoch_and_hashTreeRoot - ContainerType | 5.5250 us/op | 5.3140 us/op | 1.04 | | set_exitEpoch_and_hashTreeRoot - ContainerNodeStructType | 15.283 us/op | 14.918 us/op | 1.02 | | Array - for of | 12.250 us/op | 17.475 us/op | 0.70 | | Array - for(;;) | 8.8860 us/op | 15.594 us/op | 0.57 | | basicListValue.readonlyValuesArray() | 5.9312 ms/op | 5.5187 ms/op | 1.07 | | basicListValue.readonlyValuesArray() + loop all | 5.8514 ms/op | 5.6088 ms/op | 1.04 | | compositeListValue.readonlyValuesArray() | 56.236 ms/op | 45.310 ms/op | 1.24 | | compositeListValue.readonlyValuesArray() + loop all | 38.429 ms/op | 33.779 ms/op | 1.14 | | Number64UintType - get balances list | 6.8586 ms/op | 6.8618 ms/op | 1.00 | | Number64UintType - set balances list | 14.308 ms/op | 13.627 ms/op | 1.05 | | Number64UintType - get and increase 10 then set | 61.386 ms/op | 61.171 ms/op | 1.00 | | Number64UintType - increase 10 using applyDelta | 25.595 ms/op | 26.101 ms/op | 0.98 | | Number64UintType - increase 10 using applyDeltaInBatch | 25.100 ms/op | 26.364 ms/op | 0.95 | | tree_newTreeFromUint64Deltas | 27.291 ms/op | 30.782 ms/op | 0.89 | | unsafeUint8ArrayToTree | 46.969 ms/op | 49.071 ms/op | 0.96 | | bitLength(50) | 305.00 ns/op | 304.00 ns/op | 1.00 | | bitLengthStr(50) | 353.00 ns/op | 354.00 ns/op | 1.00 | | bitLength(8000) | 307.00 ns/op | 293.00 ns/op | 1.05 | | bitLengthStr(8000) | 488.00 ns/op | 487.00 ns/op | 1.00 | | bitLength(250000) | 294.00 ns/op | 296.00 ns/op | 0.99 | | bitLengthStr(250000) | 582.00 ns/op | 598.00 ns/op | 0.97 | | floor - Math.floor (53) | 0.66988 ns/op | 0.66962 ns/op | 1.00 | | floor - << 0 (53) | 0.66994 ns/op | 0.66963 ns/op | 1.00 | | floor - Math.floor (512) | 0.66985 ns/op | 0.67044 ns/op | 1.00 | | floor - << 0 (512) | 0.66975 ns/op | 0.66968 ns/op | 1.00 | | fnIf(0) | 3.0135 ns/op | 3.0129 ns/op | 1.00 | | fnSwitch(0) | 5.0231 ns/op | 5.0199 ns/op | 1.00 | | fnObj(0) | 0.67000 ns/op | 0.66986 ns/op | 1.00 | | fnArr(0) | 0.66979 ns/op | 0.66964 ns/op | 1.00 | | fnIf(4) | 4.3513 ns/op | 4.3508 ns/op | 1.00 | | fnSwitch(4) | 5.0211 ns/op | 5.0207 ns/op | 1.00 | | fnObj(4) | 0.66997 ns/op | 0.66966 ns/op | 1.00 | | fnArr(4) | 0.66987 ns/op | 0.66966 ns/op | 1.00 | | fnIf(9) | 6.6947 ns/op | 6.6941 ns/op | 1.00 | | fnSwitch(9) | 5.0223 ns/op | 5.0208 ns/op | 1.00 | | fnObj(9) | 0.66987 ns/op | 0.66983 ns/op | 1.00 | | fnArr(9) | 0.66972 ns/op | 0.66966 ns/op | 1.00 | | Container {a,b,vec} - as struct x100000 | 67.352 us/op | 67.339 us/op | 1.00 | | Container {a,b,vec} - as tree x100000 | 837.01 us/op | 836.99 us/op | 1.00 | | Container {a,vec,b} - as struct x100000 | 100.86 us/op | 100.82 us/op | 1.00 | | Container {a,vec,b} - as tree x100000 | 903.91 us/op | 903.91 us/op | 1.00 | | get 2 props x1000000 - rawObject | 335.26 us/op | 335.08 us/op | 1.00 | | get 2 props x1000000 - proxy | 144.71 ms/op | 144.70 ms/op | 1.00 | | get 2 props x1000000 - customObj | 335.20 us/op | 335.17 us/op | 1.00 | | Simple object binary -> struct | 801.00 ns/op | 886.00 ns/op | 0.90 | | Simple object binary -> tree_backed | 2.3140 us/op | 2.7460 us/op | 0.84 | | Simple object struct -> tree_backed | 3.1650 us/op | 3.6330 us/op | 0.87 | | Simple object tree_backed -> struct | 2.7800 us/op | 2.9890 us/op | 0.93 | | Simple object struct -> binary | 1.4020 us/op | 1.4750 us/op | 0.95 | | Simple object tree_backed -> binary | 2.3860 us/op | 2.5590 us/op | 0.93 | | aggregationBits binary -> struct | 691.00 ns/op | 851.00 ns/op | 0.81 | | aggregationBits binary -> tree_backed | 3.2430 us/op | 3.6200 us/op | 0.90 | | aggregationBits struct -> tree_backed | 4.0360 us/op | 4.4170 us/op | 0.91 | | aggregationBits tree_backed -> struct | 1.6360 us/op | 1.7780 us/op | 0.92 | | aggregationBits struct -> binary | 1.2150 us/op | 1.2560 us/op | 0.97 | | aggregationBits tree_backed -> binary | 1.5380 us/op | 1.5830 us/op | 0.97 | | List(uint8) 100000 binary -> struct | 1.9900 ms/op | 2.0302 ms/op | 0.98 | | List(uint8) 100000 binary -> tree_backed | 162.63 us/op | 177.29 us/op | 0.92 | | List(uint8) 100000 struct -> tree_backed | 2.4119 ms/op | 2.3926 ms/op | 1.01 | | List(uint8) 100000 tree_backed -> struct | 1.5961 ms/op | 1.6111 ms/op | 0.99 | | List(uint8) 100000 struct -> binary | 2.2058 ms/op | 2.1975 ms/op | 1.00 | | List(uint8) 100000 tree_backed -> binary | 153.67 us/op | 146.21 us/op | 1.05 | | List(uint64Number) 100000 binary -> struct | 1.8949 ms/op | 1.8639 ms/op | 1.02 | | List(uint64Number) 100000 binary -> tree_backed | 6.0684 ms/op | 5.5747 ms/op | 1.09 | | List(uint64Number) 100000 struct -> tree_backed | 8.0177 ms/op | 8.3186 ms/op | 0.96 | | List(uint64Number) 100000 tree_backed -> struct | 3.4015 ms/op | 3.3940 ms/op | 1.00 | | List(uint64Number) 100000 struct -> binary | 2.7142 ms/op | 2.7370 ms/op | 0.99 | | List(uint64Number) 100000 tree_backed -> binary | 1.7332 ms/op | 1.6135 ms/op | 1.07 | | List(Uint64Bigint) 100000 binary -> struct | 5.5938 ms/op | 5.6345 ms/op | 0.99 | | List(Uint64Bigint) 100000 binary -> tree_backed | 6.0012 ms/op | 6.4176 ms/op | 0.94 | | List(Uint64Bigint) 100000 struct -> tree_backed | 9.1318 ms/op | 10.015 ms/op | 0.91 | | List(Uint64Bigint) 100000 tree_backed -> struct | 7.9076 ms/op | 7.0410 ms/op | 1.12 | | List(Uint64Bigint) 100000 struct -> binary | 3.3532 ms/op | 3.3698 ms/op | 1.00 | | List(Uint64Bigint) 100000 tree_backed -> binary | 1.4713 ms/op | 1.5509 ms/op | 0.95 | | Vector(Root) 100000 binary -> struct | 53.258 ms/op | 57.636 ms/op | 0.92 | | Vector(Root) 100000 binary -> tree_backed | 57.079 ms/op | 58.578 ms/op | 0.97 | | Vector(Root) 100000 struct -> tree_backed | 65.334 ms/op | 69.724 ms/op | 0.94 | | Vector(Root) 100000 tree_backed -> struct | 75.300 ms/op | 65.503 ms/op | 1.15 | | Vector(Root) 100000 struct -> binary | 3.4888 ms/op | 3.4123 ms/op | 1.02 | | Vector(Root) 100000 tree_backed -> binary | 14.441 ms/op | 14.778 ms/op | 0.98 | | List(Validator) 100000 binary -> struct | 191.05 ms/op | 199.06 ms/op | 0.96 | | List(Validator) 100000 binary -> tree_backed | 498.68 ms/op | 531.68 ms/op | 0.94 | | List(Validator) 100000 struct -> tree_backed | 557.76 ms/op | 579.23 ms/op | 0.96 | | List(Validator) 100000 tree_backed -> struct | 318.28 ms/op | 335.99 ms/op | 0.95 | | List(Validator) 100000 struct -> binary | 52.852 ms/op | 51.274 ms/op | 1.03 | | List(Validator) 100000 tree_backed -> binary | 139.62 ms/op | 146.34 ms/op | 0.95 | | List(Validator-NS) 100000 binary -> struct | 209.23 ms/op | 212.67 ms/op | 0.98 | | List(Validator-NS) 100000 binary -> tree_backed | 274.99 ms/op | 279.53 ms/op | 0.98 | | List(Validator-NS) 100000 struct -> tree_backed | 341.93 ms/op | 354.11 ms/op | 0.97 | | List(Validator-NS) 100000 tree_backed -> struct | 289.66 ms/op | 300.60 ms/op | 0.96 | | List(Validator-NS) 100000 struct -> binary | 51.910 ms/op | 52.002 ms/op | 1.00 | | List(Validator-NS) 100000 tree_backed -> binary | 58.458 ms/op | 59.415 ms/op | 0.98 | | get epochStatuses - MutableVector | 142.58 us/op | 143.40 us/op | 0.99 | | get epochStatuses - ViewDU | 293.68 us/op | 290.36 us/op | 1.01 | | set epochStatuses - ListTreeView | 2.1997 ms/op | 2.2537 ms/op | 0.98 | | set epochStatuses - ListTreeView - set() | 625.79 us/op | 614.79 us/op | 1.02 | | set epochStatuses - ListTreeView - commit() | 663.36 us/op | 692.35 us/op | 0.96 | | bitstring | 781.83 ns/op | 753.98 ns/op | 1.04 | | bit mask | 12.820 ns/op | 12.811 ns/op | 1.00 | | struct - increase slot to 1000000 | 2.1865 ms/op | 2.1850 ms/op | 1.00 | | UintNumberType - increase slot to 1000000 | 49.103 ms/op | 49.302 ms/op | 1.00 | | UintBigintType - increase slot to 1000000 | 644.90 ms/op | 649.68 ms/op | 0.99 | | UintBigint8 x 100000 tree_deserialize | 7.8760 ms/op | 7.0116 ms/op | 1.12 | | UintBigint8 x 100000 tree_serialize | 2.2652 ms/op | 2.2607 ms/op | 1.00 | | UintBigint16 x 100000 tree_deserialize | 8.1302 ms/op | 6.2047 ms/op | 1.31 | | UintBigint16 x 100000 tree_serialize | 2.2057 ms/op | 2.1924 ms/op | 1.01 | | UintBigint32 x 100000 tree_deserialize | 7.9347 ms/op | 7.8579 ms/op | 1.01 | | UintBigint32 x 100000 tree_serialize | 2.0934 ms/op | 2.0771 ms/op | 1.01 | | UintBigint64 x 100000 tree_deserialize | 9.1029 ms/op | 8.6206 ms/op | 1.06 | | UintBigint64 x 100000 tree_serialize | 2.8561 ms/op | 2.7637 ms/op | 1.03 | | UintBigint8 x 100000 value_deserialize | 870.66 us/op | 870.65 us/op | 1.00 | | UintBigint8 x 100000 value_serialize | 1.2579 ms/op | 1.3107 ms/op | 0.96 | | UintBigint16 x 100000 value_deserialize | 932.89 us/op | 918.64 us/op | 1.02 | | UintBigint16 x 100000 value_serialize | 1.2947 ms/op | 1.3746 ms/op | 0.94 | | UintBigint32 x 100000 value_deserialize | 837.05 us/op | 836.98 us/op | 1.00 | | UintBigint32 x 100000 value_serialize | 1.3053 ms/op | 1.3678 ms/op | 0.95 | | UintBigint64 x 100000 value_deserialize | 948.95 us/op | 950.33 us/op | 1.00 | | UintBigint64 x 100000 value_serialize | 1.6717 ms/op | 1.6793 ms/op | 1.00 | | UintBigint8 x 100000 deserialize | 6.7466 ms/op | 7.0690 ms/op | 0.95 | | UintBigint8 x 100000 serialize | 2.6687 ms/op | 2.6039 ms/op | 1.02 | | UintBigint16 x 100000 deserialize | 7.3334 ms/op | 7.2065 ms/op | 1.02 | | UintBigint16 x 100000 serialize | 2.6321 ms/op | 2.5644 ms/op | 1.03 | | UintBigint32 x 100000 deserialize | 8.1665 ms/op | 8.4345 ms/op | 0.97 | | UintBigint32 x 100000 serialize | 4.4245 ms/op | 4.3565 ms/op | 1.02 | | UintBigint64 x 100000 deserialize | 5.5490 ms/op | 5.7181 ms/op | 0.97 | | UintBigint64 x 100000 serialize | 2.6216 ms/op | 2.6136 ms/op | 1.00 | | UintBigint128 x 100000 deserialize | 8.7424 ms/op | 9.0189 ms/op | 0.97 | | UintBigint128 x 100000 serialize | 28.370 ms/op | 27.714 ms/op | 1.02 | | UintBigint256 x 100000 deserialize | 16.604 ms/op | 17.443 ms/op | 0.95 | | UintBigint256 x 100000 serialize | 86.262 ms/op | 84.889 ms/op | 1.02 | | Slice from Uint8Array x25000 | 1.6378 ms/op | 1.8761 ms/op | 0.87 | | Slice from ArrayBuffer x25000 | 29.623 ms/op | 31.225 ms/op | 0.95 | | Slice from ArrayBuffer x25000 + new Uint8Array | 33.194 ms/op | 33.530 ms/op | 0.99 | | Copy Uint8Array 100000 iterate | 1.7513 ms/op | 1.7536 ms/op | 1.00 | | Copy Uint8Array 100000 slice | 301.47 us/op | 310.82 us/op | 0.97 | | Copy Uint8Array 100000 Uint8Array.prototype.slice.call | 272.72 us/op | 301.14 us/op | 0.91 | | Copy Buffer 100000 Uint8Array.prototype.slice.call | 300.87 us/op | 304.11 us/op | 0.99 | | Copy Uint8Array 100000 slice + set | 627.13 us/op | 646.27 us/op | 0.97 | | Copy Uint8Array 100000 subarray + set | 287.51 us/op | 337.73 us/op | 0.85 | | Copy Uint8Array 100000 slice arrayBuffer | 312.55 us/op | 323.61 us/op | 0.97 | | Uint64 deserialize 100000 - iterate Uint8Array | 2.2777 ms/op | 2.2727 ms/op | 1.00 | | Uint64 deserialize 100000 - by Uint32A | 2.1130 ms/op | 2.1149 ms/op | 1.00 | | Uint64 deserialize 100000 - by DataView.getUint32 x2 | 2.1981 ms/op | 2.2495 ms/op | 0.98 | | Uint64 deserialize 100000 - by DataView.getBigUint64 | 7.1471 ms/op | 7.1927 ms/op | 0.99 | | Uint64 deserialize 100000 - by byte | 69.311 ms/op | 68.413 ms/op | 1.01 |

by benchmarkbot/action

wemeetagain commented 1 year ago

:robot: Release is at https://github.com/ChainSafe/ssz/releases/tag/ssz-v0.12.0 :sunflower: