ChainSafe / ssz

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

chore: release master #337

Closed wemeetagain closed 12 months ago

wemeetagain commented 1 year ago

:robot: I have created a release beep boop

ssz: 0.14.0 ## [0.14.0](https://github.com/ChainSafe/ssz/compare/ssz-v0.13.0...ssz-v0.14.0) (2023-10-04) ### Features * implement sliceTo() for ListBasicTreeViewDU ([#336](https://github.com/ChainSafe/ssz/issues/336)) ([e84686b](https://github.com/ChainSafe/ssz/commit/e84686b2192fee9e5d9413d55a57cf40af6fd3ef)) ### Bug Fixes * handle setBitOr in ListBasicTreeViewDU.sliceTo() ([#338](https://github.com/ChainSafe/ssz/issues/338)) ([5c5242a](https://github.com/ChainSafe/ssz/commit/5c5242a3bb5d89f8c51d5cb14112dd36edc91868))

This PR was generated with Release Please. See documentation.

github-actions[bot] commented 1 year ago

:warning: Performance Alert :warning:

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

Benchmark suite Current: 72590650a7daa185b18059c8b0916354e3d75a01 Previous: 5c5242a3bb5d89f8c51d5cb14112dd36edc91868 Ratio
Number64UintType - get balances list 6.1613 ms/op 1.5781 ms/op 3.90
Copy Uint8Array 100000 slice 326.54 us/op 102.88 us/op 3.17

🚀🚀 Significant benchmark improvement detected

Benchmark suite Current: 72590650a7daa185b18059c8b0916354e3d75a01 Previous: 5c5242a3bb5d89f8c51d5cb14112dd36edc91868 Ratio
get_exitEpoch - ContainerType 505.00 ns/op 4.6050 us/op 0.11
Full benchmark results | Benchmark suite | Current: 72590650a7daa185b18059c8b0916354e3d75a01 | Previous: 5c5242a3bb5d89f8c51d5cb14112dd36edc91868 | Ratio | |-|-|-|-| | digestTwoHashObjects 50023 times | 58.041 ms/op | 69.998 ms/op | 0.83 | | digest64 50023 times | 60.733 ms/op | 72.038 ms/op | 0.84 | | digest 50023 times | 60.513 ms/op | 72.015 ms/op | 0.84 | | input length 32 | 1.4860 us/op | 1.6140 us/op | 0.92 | | input length 64 | 1.6080 us/op | 1.8430 us/op | 0.87 | | input length 128 | 2.7770 us/op | 3.1970 us/op | 0.87 | | input length 256 | 4.1130 us/op | 4.8910 us/op | 0.84 | | input length 512 | 6.7780 us/op | 8.1580 us/op | 0.83 | | input length 1024 | 13.544 us/op | 15.934 us/op | 0.85 | | digest 1000000 times | 1.0558 s/op | 1.1814 s/op | 0.89 | | hashObjectToByteArray 50023 times | 2.7916 ms/op | 1.9987 ms/op | 1.40 | | byteArrayToHashObject 50023 times | 2.7231 ms/op | 2.1754 ms/op | 1.25 | | getGindicesAtDepth | 5.9650 us/op | 5.4580 us/op | 1.09 | | iterateAtDepth | 12.372 us/op | 11.594 us/op | 1.07 | | getGindexBits | 542.00 ns/op | 581.00 ns/op | 0.93 | | gindexIterator | 1.2020 us/op | 1.3840 us/op | 0.87 | | hash 2 Uint8Array 2250026 times - as-sha256 | 2.7701 s/op | 3.2153 s/op | 0.86 | | hashTwoObjects 2250026 times - as-sha256 | 2.6295 s/op | 3.1043 s/op | 0.85 | | hash 2 Uint8Array 2250026 times - noble | 7.1941 s/op | 9.2133 s/op | 0.78 | | hashTwoObjects 2250026 times - noble | 10.664 s/op | 11.708 s/op | 0.91 | | getNodeH() x7812.5 avg hindex | 25.797 us/op | 20.801 us/op | 1.24 | | getNodeH() x7812.5 index 0 | 10.880 us/op | 6.7240 us/op | 1.62 | | getNodeH() x7812.5 index 7 | 10.859 us/op | 6.7570 us/op | 1.61 | | getNodeH() x7812.5 index 7 with key array | 10.883 us/op | 6.8690 us/op | 1.58 | | new LeafNode() x7812.5 | 197.45 us/op | 301.91 us/op | 0.65 | | multiproof - depth 15, 1 requested leaves | 13.589 us/op | 15.161 us/op | 0.90 | | tree offset multiproof - depth 15, 1 requested leaves | 29.511 us/op | 32.793 us/op | 0.90 | | compact multiproof - depth 15, 1 requested leaves | 8.2970 us/op | 8.1070 us/op | 1.02 | | multiproof - depth 15, 2 requested leaves | 20.116 us/op | 19.026 us/op | 1.06 | | tree offset multiproof - depth 15, 2 requested leaves | 34.880 us/op | 34.653 us/op | 1.01 | | compact multiproof - depth 15, 2 requested leaves | 5.0130 us/op | 4.6750 us/op | 1.07 | | multiproof - depth 15, 3 requested leaves | 27.961 us/op | 25.859 us/op | 1.08 | | tree offset multiproof - depth 15, 3 requested leaves | 45.837 us/op | 44.358 us/op | 1.03 | | compact multiproof - depth 15, 3 requested leaves | 7.1940 us/op | 8.2450 us/op | 0.87 | | multiproof - depth 15, 4 requested leaves | 34.849 us/op | 34.111 us/op | 1.02 | | tree offset multiproof - depth 15, 4 requested leaves | 60.077 us/op | 54.941 us/op | 1.09 | | compact multiproof - depth 15, 4 requested leaves | 8.1560 us/op | 9.0750 us/op | 0.90 | | packedRootsBytesToLeafNodes bytes 4000 offset 0 | 3.4040 us/op | 3.0570 us/op | 1.11 | | packedRootsBytesToLeafNodes bytes 4000 offset 1 | 3.3860 us/op | 2.9430 us/op | 1.15 | | packedRootsBytesToLeafNodes bytes 4000 offset 2 | 3.3880 us/op | 2.9940 us/op | 1.13 | | packedRootsBytesToLeafNodes bytes 4000 offset 3 | 3.3560 us/op | 2.9360 us/op | 1.14 | | subtreeFillToContents depth 40 count 250000 | 79.854 ms/op | 77.647 ms/op | 1.03 | | setRoot - gindexBitstring | 14.749 ms/op | 12.332 ms/op | 1.20 | | setRoot - gindex | 15.882 ms/op | 14.162 ms/op | 1.12 | | getRoot - gindexBitstring | 4.1130 ms/op | 3.0714 ms/op | 1.34 | | getRoot - gindex | 4.5194 ms/op | 4.3611 ms/op | 1.04 | | getHashObject then setHashObject | 16.984 ms/op | 15.811 ms/op | 1.07 | | setNodeWithFn | 14.996 ms/op | 13.187 ms/op | 1.14 | | getNodeAtDepth depth 0 x100000 | 2.3915 ms/op | 1.6151 ms/op | 1.48 | | setNodeAtDepth depth 0 x100000 | 4.7308 ms/op | 3.8510 ms/op | 1.23 | | getNodesAtDepth depth 0 x100000 | 2.0662 ms/op | 1.4193 ms/op | 1.46 | | setNodesAtDepth depth 0 x100000 | 2.7457 ms/op | 1.9588 ms/op | 1.40 | | getNodeAtDepth depth 1 x100000 | 2.6000 ms/op | 1.7407 ms/op | 1.49 | | setNodeAtDepth depth 1 x100000 | 10.138 ms/op | 8.1749 ms/op | 1.24 | | getNodesAtDepth depth 1 x100000 | 2.4065 ms/op | 1.5972 ms/op | 1.51 | | setNodesAtDepth depth 1 x100000 | 8.4573 ms/op | 6.8167 ms/op | 1.24 | | getNodeAtDepth depth 2 x100000 | 3.1890 ms/op | 2.1791 ms/op | 1.46 | | setNodeAtDepth depth 2 x100000 | 16.627 ms/op | 13.557 ms/op | 1.23 | | getNodesAtDepth depth 2 x100000 | 28.607 ms/op | 27.167 ms/op | 1.05 | | setNodesAtDepth depth 2 x100000 | 22.184 ms/op | 19.388 ms/op | 1.14 | | tree.getNodesAtDepth - gindexes | 9.7739 ms/op | 8.0906 ms/op | 1.21 | | tree.getNodesAtDepth - push all nodes | 3.2241 ms/op | 2.5831 ms/op | 1.25 | | tree.getNodesAtDepth - navigation | 169.13 us/op | 201.41 us/op | 0.84 | | tree.setNodesAtDepth - indexes | 630.73 us/op | 514.63 us/op | 1.23 | | set at depth 8 | 839.00 ns/op | 770.00 ns/op | 1.09 | | set at depth 16 | 933.00 ns/op | 1.0730 us/op | 0.87 | | set at depth 32 | 1.6160 us/op | 1.5850 us/op | 1.02 | | iterateNodesAtDepth 8 256 | 24.532 us/op | 19.179 us/op | 1.28 | | getNodesAtDepth 8 256 | 6.4410 us/op | 4.6550 us/op | 1.38 | | iterateNodesAtDepth 16 65536 | 7.5233 ms/op | 5.5630 ms/op | 1.35 | | getNodesAtDepth 16 65536 | 3.0200 ms/op | 2.2936 ms/op | 1.32 | | iterateNodesAtDepth 32 250000 | 27.024 ms/op | 20.565 ms/op | 1.31 | | getNodesAtDepth 32 250000 | 8.0795 ms/op | 5.9578 ms/op | 1.36 | | iterateNodesAtDepth 40 250000 | 27.256 ms/op | 20.549 ms/op | 1.33 | | getNodesAtDepth 40 250000 | 8.2612 ms/op | 6.0014 ms/op | 1.38 | | 250k validators | 12.008 s/op | 12.214 s/op | 0.98 | | bitlist bytes to struct (120,90) | 912.00 ns/op | 974.00 ns/op | 0.94 | | bitlist bytes to tree (120,90) | 3.7140 us/op | 3.5110 us/op | 1.06 | | bitlist bytes to struct (2048,2048) | 1.8090 us/op | 1.9990 us/op | 0.90 | | bitlist bytes to tree (2048,2048) | 6.4760 us/op | 7.0400 us/op | 0.92 | | ByteListType - deserialize | 17.387 ms/op | 17.280 ms/op | 1.01 | | BasicListType - deserialize | 16.538 ms/op | 12.191 ms/op | 1.36 | | ByteListType - serialize | 15.238 ms/op | 16.425 ms/op | 0.93 | | BasicListType - serialize | 21.269 ms/op | 19.516 ms/op | 1.09 | | BasicListType - tree_convertToStruct | 48.631 ms/op | 45.187 ms/op | 1.08 | | List[uint8, 68719476736] len 300000 ViewDU.getAll() + iterate | 5.8198 ms/op | 4.6202 ms/op | 1.26 | | List[uint8, 68719476736] len 300000 ViewDU.get(i) | 6.7875 ms/op | 4.6181 ms/op | 1.47 | | Array.push len 300000 empty Array - number | 8.8589 ms/op | 8.5740 ms/op | 1.03 | | Array.set len 300000 from new Array - number | 2.3997 ms/op | 2.1908 ms/op | 1.10 | | Array.set len 300000 - number | 8.0125 ms/op | 7.6841 ms/op | 1.04 | | Uint8Array.set len 300000 | 254.94 us/op | 242.32 us/op | 1.05 | | Uint32Array.set len 300000 | 363.67 us/op | 348.62 us/op | 1.04 | | Container({a: uint8, b: uint8}) getViewDU x300000 | 32.830 ms/op | 31.758 ms/op | 1.03 | | ContainerNodeStruct({a: uint8, b: uint8}) getViewDU x300000 | 13.212 ms/op | 12.330 ms/op | 1.07 | | List(Container) len 300000 ViewDU.getAllReadonly() + iterate | 400.44 ms/op | 493.58 ms/op | 0.81 | | List(Container) len 300000 ViewDU.getAllReadonlyValues() + iterate | 433.12 ms/op | 441.42 ms/op | 0.98 | | List(Container) len 300000 ViewDU.get(i) | 10.710 ms/op | 9.6258 ms/op | 1.11 | | List(Container) len 300000 ViewDU.getReadonly(i) | 10.912 ms/op | 9.5717 ms/op | 1.14 | | List(ContainerNodeStruct) len 300000 ViewDU.getAllReadonly() + iterate | 60.588 ms/op | 53.864 ms/op | 1.12 | | List(ContainerNodeStruct) len 300000 ViewDU.getAllReadonlyValues() + iterate | 7.9425 ms/op | 7.7656 ms/op | 1.02 | | List(ContainerNodeStruct) len 300000 ViewDU.get(i) | 10.142 ms/op | 9.0528 ms/op | 1.12 | | List(ContainerNodeStruct) len 300000 ViewDU.getReadonly(i) | 9.9333 ms/op | 8.7676 ms/op | 1.13 | | Array.push len 300000 empty Array - object | 8.9843 ms/op | 8.2004 ms/op | 1.10 | | Array.set len 300000 from new Array - object | 3.3285 ms/op | 2.7479 ms/op | 1.21 | | Array.set len 300000 - object | 9.3133 ms/op | 7.9597 ms/op | 1.17 | | cachePermanentRootStruct no cache | 12.477 us/op | 13.838 us/op | 0.90 | | cachePermanentRootStruct with cache | 313.00 ns/op | 317.00 ns/op | 0.99 | | epochParticipation len 250000 rws 7813 | 3.3301 ms/op | 3.1750 ms/op | 1.05 | | deserialize Attestation - tree | 4.3900 us/op | 4.6020 us/op | 0.95 | | deserialize Attestation - struct | 3.1340 us/op | 3.1590 us/op | 0.99 | | deserialize SignedAggregateAndProof - tree | 5.8230 us/op | 6.0020 us/op | 0.97 | | deserialize SignedAggregateAndProof - struct | 5.0910 us/op | 4.8070 us/op | 1.06 | | deserialize SyncCommitteeMessage - tree | 1.5710 us/op | 1.8130 us/op | 0.87 | | deserialize SyncCommitteeMessage - struct | 1.8000 us/op | 2.0140 us/op | 0.89 | | deserialize SignedContributionAndProof - tree | 3.1260 us/op | 3.0750 us/op | 1.02 | | deserialize SignedContributionAndProof - struct | 4.3720 us/op | 4.4790 us/op | 0.98 | | deserialize SignedBeaconBlock - tree | 340.25 us/op | 334.57 us/op | 1.02 | | deserialize SignedBeaconBlock - struct | 211.90 us/op | 224.40 us/op | 0.94 | | BeaconState vc 300000 - deserialize tree | 1.0022 s/op | 838.93 ms/op | 1.19 | | BeaconState vc 300000 - serialize tree | 318.32 ms/op | 277.73 ms/op | 1.15 | | BeaconState.historicalRoots vc 300000 - deserialize tree | 1.0850 us/op | 1.3700 us/op | 0.79 | | BeaconState.historicalRoots vc 300000 - serialize tree | 1.2070 us/op | 1.3110 us/op | 0.92 | | BeaconState.validators vc 300000 - deserialize tree | 987.33 ms/op | 875.60 ms/op | 1.13 | | BeaconState.validators vc 300000 - serialize tree | 272.67 ms/op | 201.51 ms/op | 1.35 | | BeaconState.balances vc 300000 - deserialize tree | 37.065 ms/op | 32.241 ms/op | 1.15 | | BeaconState.balances vc 300000 - serialize tree | 5.7475 ms/op | 4.6928 ms/op | 1.22 | | BeaconState.previousEpochParticipation vc 300000 - deserialize tree | 716.51 us/op | 696.88 us/op | 1.03 | | BeaconState.previousEpochParticipation vc 300000 - serialize tree | 483.54 us/op | 361.32 us/op | 1.34 | | BeaconState.currentEpochParticipation vc 300000 - deserialize tree | 702.21 us/op | 653.01 us/op | 1.08 | | BeaconState.currentEpochParticipation vc 300000 - serialize tree | 473.56 us/op | 354.54 us/op | 1.34 | | BeaconState.inactivityScores vc 300000 - deserialize tree | 41.302 ms/op | 41.347 ms/op | 1.00 | | BeaconState.inactivityScores vc 300000 - serialize tree | 5.6386 ms/op | 3.5941 ms/op | 1.57 | | hashTreeRoot Attestation - struct | 43.498 us/op | 41.847 us/op | 1.04 | | hashTreeRoot Attestation - tree | 24.491 us/op | 29.583 us/op | 0.83 | | hashTreeRoot SignedAggregateAndProof - struct | 57.811 us/op | 65.688 us/op | 0.88 | | hashTreeRoot SignedAggregateAndProof - tree | 39.128 us/op | 40.592 us/op | 0.96 | | hashTreeRoot SyncCommitteeMessage - struct | 14.502 us/op | 13.894 us/op | 1.04 | | hashTreeRoot SyncCommitteeMessage - tree | 8.8120 us/op | 9.1560 us/op | 0.96 | | hashTreeRoot SignedContributionAndProof - struct | 38.795 us/op | 38.804 us/op | 1.00 | | hashTreeRoot SignedContributionAndProof - tree | 22.908 us/op | 29.025 us/op | 0.79 | | hashTreeRoot SignedBeaconBlock - struct | 3.2205 ms/op | 3.4679 ms/op | 0.93 | | hashTreeRoot SignedBeaconBlock - tree | 2.0341 ms/op | 2.4238 ms/op | 0.84 | | hashTreeRoot Validator - struct | 17.129 us/op | 19.356 us/op | 0.88 | | hashTreeRoot Validator - tree | 14.113 us/op | 15.888 us/op | 0.89 | | BeaconState vc 300000 - hashTreeRoot tree | 4.6326 s/op | 5.1553 s/op | 0.90 | | BeaconState.historicalRoots vc 300000 - hashTreeRoot tree | 1.8800 us/op | 2.0320 us/op | 0.93 | | BeaconState.validators vc 300000 - hashTreeRoot tree | 4.2904 s/op | 4.9387 s/op | 0.87 | | BeaconState.balances vc 300000 - hashTreeRoot tree | 104.08 ms/op | 125.27 ms/op | 0.83 | | BeaconState.previousEpochParticipation vc 300000 - hashTreeRoot tree | 11.057 ms/op | 13.161 ms/op | 0.84 | | BeaconState.currentEpochParticipation vc 300000 - hashTreeRoot tree | 11.054 ms/op | 13.165 ms/op | 0.84 | | BeaconState.inactivityScores vc 300000 - hashTreeRoot tree | 103.03 ms/op | 135.27 ms/op | 0.76 | | hash64 x18 | 25.050 us/op | 27.837 us/op | 0.90 | | hashTwoObjects x18 | 21.934 us/op | 26.007 us/op | 0.84 | | hash64 x1740 | 2.3518 ms/op | 2.6114 ms/op | 0.90 | | hashTwoObjects x1740 | 2.0801 ms/op | 2.4571 ms/op | 0.85 | | hash64 x2700000 | 3.6556 s/op | 4.0627 s/op | 0.90 | | hashTwoObjects x2700000 | 3.2243 s/op | 3.8030 s/op | 0.85 | | get_exitEpoch - ContainerType | 505.00 ns/op | 4.6050 us/op | 0.11 | | get_exitEpoch - ContainerNodeStructType | 424.00 ns/op | 433.00 ns/op | 0.98 | | set_exitEpoch - ContainerType | 458.00 ns/op | 446.00 ns/op | 1.03 | | set_exitEpoch - ContainerNodeStructType | 431.00 ns/op | 412.00 ns/op | 1.05 | | get_pubkey - ContainerType | 1.5660 us/op | 1.9870 us/op | 0.79 | | get_pubkey - ContainerNodeStructType | 301.00 ns/op | 423.00 ns/op | 0.71 | | hashTreeRoot - ContainerType | 543.00 ns/op | 698.00 ns/op | 0.78 | | hashTreeRoot - ContainerNodeStructType | 593.00 ns/op | 761.00 ns/op | 0.78 | | createProof - ContainerType | 6.6630 us/op | 6.6320 us/op | 1.00 | | createProof - ContainerNodeStructType | 34.873 us/op | 33.138 us/op | 1.05 | | serialize - ContainerType | 2.7840 us/op | 2.9940 us/op | 0.93 | | serialize - ContainerNodeStructType | 2.3080 us/op | 2.3890 us/op | 0.97 | | set_exitEpoch_and_hashTreeRoot - ContainerType | 5.3260 us/op | 6.0810 us/op | 0.88 | | set_exitEpoch_and_hashTreeRoot - ContainerNodeStructType | 14.838 us/op | 16.635 us/op | 0.89 | | Array - for of | 12.195 us/op | 8.9450 us/op | 1.36 | | Array - for(;;) | 8.8670 us/op | 8.6570 us/op | 1.02 | | basicListValue.readonlyValuesArray() | 5.5923 ms/op | 4.4756 ms/op | 1.25 | | basicListValue.readonlyValuesArray() + loop all | 5.6698 ms/op | 4.5805 ms/op | 1.24 | | compositeListValue.readonlyValuesArray() | 53.985 ms/op | 34.605 ms/op | 1.56 | | compositeListValue.readonlyValuesArray() + loop all | 50.500 ms/op | 32.660 ms/op | 1.55 | | Number64UintType - get balances list | 6.1613 ms/op | 1.5781 ms/op | 3.90 | | Number64UintType - set balances list | 14.964 ms/op | 11.917 ms/op | 1.26 | | Number64UintType - get and increase 10 then set | 61.673 ms/op | 43.438 ms/op | 1.42 | | Number64UintType - increase 10 using applyDelta | 24.517 ms/op | 15.231 ms/op | 1.61 | | Number64UintType - increase 10 using applyDeltaInBatch | 24.263 ms/op | 14.971 ms/op | 1.62 | | tree_newTreeFromUint64Deltas | 28.035 ms/op | 23.424 ms/op | 1.20 | | unsafeUint8ArrayToTree | 47.615 ms/op | 41.735 ms/op | 1.14 | | bitLength(50) | 296.00 ns/op | 321.00 ns/op | 0.92 | | bitLengthStr(50) | 343.00 ns/op | 343.00 ns/op | 1.00 | | bitLength(8000) | 283.00 ns/op | 316.00 ns/op | 0.90 | | bitLengthStr(8000) | 471.00 ns/op | 402.00 ns/op | 1.17 | | bitLength(250000) | 288.00 ns/op | 307.00 ns/op | 0.94 | | bitLengthStr(250000) | 581.00 ns/op | 456.00 ns/op | 1.27 | | floor - Math.floor (53) | 0.66958 ns/op | 0.60294 ns/op | 1.11 | | floor - << 0 (53) | 0.66962 ns/op | 0.60284 ns/op | 1.11 | | floor - Math.floor (512) | 0.66980 ns/op | 0.60264 ns/op | 1.11 | | floor - << 0 (512) | 0.66963 ns/op | 0.60289 ns/op | 1.11 | | fnIf(0) | 3.0118 ns/op | 2.0083 ns/op | 1.50 | | fnSwitch(0) | 5.0203 ns/op | 3.3978 ns/op | 1.48 | | fnObj(0) | 0.66972 ns/op | 0.60286 ns/op | 1.11 | | fnArr(0) | 0.66979 ns/op | 0.60289 ns/op | 1.11 | | fnIf(4) | 4.3503 ns/op | 3.1871 ns/op | 1.36 | | fnSwitch(4) | 5.0213 ns/op | 3.4053 ns/op | 1.47 | | fnObj(4) | 0.66954 ns/op | 0.60286 ns/op | 1.11 | | fnArr(4) | 0.66959 ns/op | 0.60280 ns/op | 1.11 | | fnIf(9) | 6.6948 ns/op | 5.2256 ns/op | 1.28 | | fnSwitch(9) | 5.0196 ns/op | 3.3744 ns/op | 1.49 | | fnObj(9) | 0.66970 ns/op | 0.60272 ns/op | 1.11 | | fnArr(9) | 0.66970 ns/op | 0.60272 ns/op | 1.11 | | Container {a,b,vec} - as struct x100000 | 67.388 us/op | 60.513 us/op | 1.11 | | Container {a,b,vec} - as tree x100000 | 836.94 us/op | 498.08 us/op | 1.68 | | Container {a,vec,b} - as struct x100000 | 101.03 us/op | 120.74 us/op | 0.84 | | Container {a,vec,b} - as tree x100000 | 903.92 us/op | 554.05 us/op | 1.63 | | get 2 props x1000000 - rawObject | 335.01 us/op | 401.92 us/op | 0.83 | | get 2 props x1000000 - proxy | 144.91 ms/op | 93.803 ms/op | 1.54 | | get 2 props x1000000 - customObj | 335.05 us/op | 401.93 us/op | 0.83 | | Simple object binary -> struct | 858.00 ns/op | 1.0640 us/op | 0.81 | | Simple object binary -> tree_backed | 2.2650 us/op | 2.8650 us/op | 0.79 | | Simple object struct -> tree_backed | 3.0290 us/op | 4.0550 us/op | 0.75 | | Simple object tree_backed -> struct | 2.5800 us/op | 3.4730 us/op | 0.74 | | Simple object struct -> binary | 1.2900 us/op | 1.7430 us/op | 0.74 | | Simple object tree_backed -> binary | 2.2540 us/op | 2.7880 us/op | 0.81 | | aggregationBits binary -> struct | 655.00 ns/op | 911.00 ns/op | 0.72 | | aggregationBits binary -> tree_backed | 3.0330 us/op | 3.8960 us/op | 0.78 | | aggregationBits struct -> tree_backed | 3.7930 us/op | 4.6510 us/op | 0.82 | | aggregationBits tree_backed -> struct | 1.5630 us/op | 1.9680 us/op | 0.79 | | aggregationBits struct -> binary | 1.1410 us/op | 1.4310 us/op | 0.80 | | aggregationBits tree_backed -> binary | 1.3570 us/op | 1.7530 us/op | 0.77 | | List(uint8) 100000 binary -> struct | 2.1807 ms/op | 1.8263 ms/op | 1.19 | | List(uint8) 100000 binary -> tree_backed | 158.94 us/op | 138.47 us/op | 1.15 | | List(uint8) 100000 struct -> tree_backed | 2.3411 ms/op | 1.7226 ms/op | 1.36 | | List(uint8) 100000 tree_backed -> struct | 1.6508 ms/op | 1.2382 ms/op | 1.33 | | List(uint8) 100000 struct -> binary | 2.1833 ms/op | 1.5630 ms/op | 1.40 | | List(uint8) 100000 tree_backed -> binary | 144.67 us/op | 93.805 us/op | 1.54 | | List(uint64Number) 100000 binary -> struct | 1.8287 ms/op | 1.5458 ms/op | 1.18 | | List(uint64Number) 100000 binary -> tree_backed | 5.2193 ms/op | 4.7192 ms/op | 1.11 | | List(uint64Number) 100000 struct -> tree_backed | 7.9978 ms/op | 6.7476 ms/op | 1.19 | | List(uint64Number) 100000 tree_backed -> struct | 3.4617 ms/op | 2.6547 ms/op | 1.30 | | List(uint64Number) 100000 struct -> binary | 2.6446 ms/op | 2.0306 ms/op | 1.30 | | List(uint64Number) 100000 tree_backed -> binary | 1.6209 ms/op | 1.0072 ms/op | 1.61 | | List(Uint64Bigint) 100000 binary -> struct | 6.0381 ms/op | 4.8420 ms/op | 1.25 | | List(Uint64Bigint) 100000 binary -> tree_backed | 5.4022 ms/op | 4.7200 ms/op | 1.14 | | List(Uint64Bigint) 100000 struct -> tree_backed | 8.9399 ms/op | 7.7328 ms/op | 1.16 | | List(Uint64Bigint) 100000 tree_backed -> struct | 7.7999 ms/op | 6.0175 ms/op | 1.30 | | List(Uint64Bigint) 100000 struct -> binary | 3.3515 ms/op | 2.6382 ms/op | 1.27 | | List(Uint64Bigint) 100000 tree_backed -> binary | 1.3793 ms/op | 1.2158 ms/op | 1.13 | | Vector(Root) 100000 binary -> struct | 55.109 ms/op | 50.645 ms/op | 1.09 | | Vector(Root) 100000 binary -> tree_backed | 58.842 ms/op | 51.027 ms/op | 1.15 | | Vector(Root) 100000 struct -> tree_backed | 65.991 ms/op | 58.372 ms/op | 1.13 | | Vector(Root) 100000 tree_backed -> struct | 76.206 ms/op | 63.002 ms/op | 1.21 | | Vector(Root) 100000 struct -> binary | 3.3469 ms/op | 2.6083 ms/op | 1.28 | | Vector(Root) 100000 tree_backed -> binary | 13.677 ms/op | 11.422 ms/op | 1.20 | | List(Validator) 100000 binary -> struct | 203.67 ms/op | 177.06 ms/op | 1.15 | | List(Validator) 100000 binary -> tree_backed | 503.26 ms/op | 483.88 ms/op | 1.04 | | List(Validator) 100000 struct -> tree_backed | 558.09 ms/op | 508.91 ms/op | 1.10 | | List(Validator) 100000 tree_backed -> struct | 315.19 ms/op | 273.48 ms/op | 1.15 | | List(Validator) 100000 struct -> binary | 51.063 ms/op | 41.012 ms/op | 1.25 | | List(Validator) 100000 tree_backed -> binary | 139.57 ms/op | 113.44 ms/op | 1.23 | | List(Validator-NS) 100000 binary -> struct | 205.63 ms/op | 181.10 ms/op | 1.14 | | List(Validator-NS) 100000 binary -> tree_backed | 271.19 ms/op | 243.44 ms/op | 1.11 | | List(Validator-NS) 100000 struct -> tree_backed | 346.94 ms/op | 297.89 ms/op | 1.16 | | List(Validator-NS) 100000 tree_backed -> struct | 291.26 ms/op | 241.68 ms/op | 1.21 | | List(Validator-NS) 100000 struct -> binary | 52.372 ms/op | 41.059 ms/op | 1.28 | | List(Validator-NS) 100000 tree_backed -> binary | 64.138 ms/op | 46.618 ms/op | 1.38 | | get epochStatuses - MutableVector | 144.55 us/op | 100.04 us/op | 1.44 | | get epochStatuses - ViewDU | 290.09 us/op | 241.03 us/op | 1.20 | | set epochStatuses - ListTreeView | 1.9797 ms/op | 1.9437 ms/op | 1.02 | | set epochStatuses - ListTreeView - set() | 623.07 us/op | 602.09 us/op | 1.03 | | set epochStatuses - ListTreeView - commit() | 646.10 us/op | 551.09 us/op | 1.17 | | bitstring | 773.45 ns/op | 923.08 ns/op | 0.84 | | bit mask | 12.757 ns/op | 14.487 ns/op | 0.88 | | struct - increase slot to 1000000 | 2.1863 ms/op | 1.8931 ms/op | 1.15 | | UintNumberType - increase slot to 1000000 | 68.604 ms/op | 36.964 ms/op | 1.86 | | UintBigintType - increase slot to 1000000 | 627.48 ms/op | 571.84 ms/op | 1.10 | | UintBigint8 x 100000 tree_deserialize | 6.6342 ms/op | 5.5456 ms/op | 1.20 | | UintBigint8 x 100000 tree_serialize | 2.2627 ms/op | 1.1480 ms/op | 1.97 | | UintBigint16 x 100000 tree_deserialize | 6.1889 ms/op | 5.1609 ms/op | 1.20 | | UintBigint16 x 100000 tree_serialize | 2.1966 ms/op | 2.0151 ms/op | 1.09 | | UintBigint32 x 100000 tree_deserialize | 7.8797 ms/op | 6.3096 ms/op | 1.25 | | UintBigint32 x 100000 tree_serialize | 2.0657 ms/op | 1.5897 ms/op | 1.30 | | UintBigint64 x 100000 tree_deserialize | 8.4530 ms/op | 6.5380 ms/op | 1.29 | | UintBigint64 x 100000 tree_serialize | 2.7709 ms/op | 2.0794 ms/op | 1.33 | | UintBigint8 x 100000 value_deserialize | 874.92 us/op | 541.67 us/op | 1.62 | | UintBigint8 x 100000 value_serialize | 1.2337 ms/op | 921.93 us/op | 1.34 | | UintBigint16 x 100000 value_deserialize | 935.70 us/op | 581.27 us/op | 1.61 | | UintBigint16 x 100000 value_serialize | 1.2708 ms/op | 976.47 us/op | 1.30 | | UintBigint32 x 100000 value_deserialize | 836.99 us/op | 539.90 us/op | 1.55 | | UintBigint32 x 100000 value_serialize | 1.2990 ms/op | 960.74 us/op | 1.35 | | UintBigint64 x 100000 value_deserialize | 951.52 us/op | 613.33 us/op | 1.55 | | UintBigint64 x 100000 value_serialize | 1.6334 ms/op | 1.2218 ms/op | 1.34 | | UintBigint8 x 100000 deserialize | 7.4526 ms/op | 6.3938 ms/op | 1.17 | | UintBigint8 x 100000 serialize | 2.6670 ms/op | 1.9289 ms/op | 1.38 | | UintBigint16 x 100000 deserialize | 7.2787 ms/op | 6.0533 ms/op | 1.20 | | UintBigint16 x 100000 serialize | 2.6233 ms/op | 1.9870 ms/op | 1.32 | | UintBigint32 x 100000 deserialize | 8.3292 ms/op | 7.2425 ms/op | 1.15 | | UintBigint32 x 100000 serialize | 4.3360 ms/op | 3.8573 ms/op | 1.12 | | UintBigint64 x 100000 deserialize | 6.0143 ms/op | 4.8229 ms/op | 1.25 | | UintBigint64 x 100000 serialize | 2.6601 ms/op | 1.9024 ms/op | 1.40 | | UintBigint128 x 100000 deserialize | 8.9186 ms/op | 7.6985 ms/op | 1.16 | | UintBigint128 x 100000 serialize | 27.804 ms/op | 21.665 ms/op | 1.28 | | UintBigint256 x 100000 deserialize | 16.723 ms/op | 13.797 ms/op | 1.21 | | UintBigint256 x 100000 serialize | 83.637 ms/op | 65.014 ms/op | 1.29 | | Slice from Uint8Array x25000 | 1.6507 ms/op | 1.3632 ms/op | 1.21 | | Slice from ArrayBuffer x25000 | 27.725 ms/op | 27.835 ms/op | 1.00 | | Slice from ArrayBuffer x25000 + new Uint8Array | 30.454 ms/op | 32.570 ms/op | 0.94 | | Copy Uint8Array 100000 iterate | 1.7412 ms/op | 1.0621 ms/op | 1.64 | | Copy Uint8Array 100000 slice | 326.54 us/op | 102.88 us/op | 3.17 | | Copy Uint8Array 100000 Uint8Array.prototype.slice.call | 333.97 us/op | 280.73 us/op | 1.19 | | Copy Buffer 100000 Uint8Array.prototype.slice.call | 326.31 us/op | 288.01 us/op | 1.13 | | Copy Uint8Array 100000 slice + set | 659.48 us/op | 556.43 us/op | 1.19 | | Copy Uint8Array 100000 subarray + set | 324.61 us/op | 280.93 us/op | 1.16 | | Copy Uint8Array 100000 slice arrayBuffer | 339.62 us/op | 280.97 us/op | 1.21 | | Uint64 deserialize 100000 - iterate Uint8Array | 2.1491 ms/op | 2.1028 ms/op | 1.02 | | Uint64 deserialize 100000 - by Uint32A | 1.9640 ms/op | 2.0150 ms/op | 0.97 | | Uint64 deserialize 100000 - by DataView.getUint32 x2 | 2.0881 ms/op | 1.9891 ms/op | 1.05 | | Uint64 deserialize 100000 - by DataView.getBigUint64 | 7.0503 ms/op | 5.9090 ms/op | 1.19 | | Uint64 deserialize 100000 - by byte | 69.145 ms/op | 72.899 ms/op | 0.95 |

by benchmarkbot/action

wemeetagain commented 12 months ago

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