ChainSafe / ssz

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

chore: release master #310

Closed wemeetagain closed 1 year ago

wemeetagain commented 1 year ago

:robot: I have created a release beep boop

ssz: 0.10.2 ## [0.10.2](https://github.com/ChainSafe/ssz/compare/ssz-v0.10.1...ssz-v0.10.2) (2023-02-28) ### Bug Fixes * Remove replaceAll with replace(/.../g,... for ES2019 compatibility ([#309](https://github.com/ChainSafe/ssz/issues/309)) ([3c0a2c5](https://github.com/ChainSafe/ssz/commit/3c0a2c5dfe678925cd1b35b486b66738cdb12e99))

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: 0f99418cc213ad0b34e1118a0ce36fb00bb1d88e Previous: 18baeaa7b47fcda67bdba8380cbf430827e1eb3d Ratio
Number64UintType - get balances list 5.3818 ms/op 1.5355 ms/op 3.50
Full benchmark results | Benchmark suite | Current: 0f99418cc213ad0b34e1118a0ce36fb00bb1d88e | Previous: 18baeaa7b47fcda67bdba8380cbf430827e1eb3d | Ratio | |-|-|-|-| | digestTwoHashObjects 50023 times | 69.109 ms/op | 69.159 ms/op | 1.00 | | digest64 50023 times | 70.175 ms/op | 70.861 ms/op | 0.99 | | digest 50023 times | 70.849 ms/op | 70.915 ms/op | 1.00 | | input length 32 | 1.7610 us/op | 1.7240 us/op | 1.02 | | input length 64 | 1.8950 us/op | 1.9080 us/op | 0.99 | | input length 128 | 3.2880 us/op | 3.2400 us/op | 1.01 | | input length 256 | 4.9280 us/op | 4.8740 us/op | 1.01 | | input length 512 | 8.1120 us/op | 8.0960 us/op | 1.00 | | input length 1024 | 15.681 us/op | 15.613 us/op | 1.00 | | digest 1000000 times | 1.1260 s/op | 1.1512 s/op | 0.98 | | hashObjectToByteArray 50023 times | 1.9090 ms/op | 1.9272 ms/op | 0.99 | | byteArrayToHashObject 50023 times | 2.3869 ms/op | 2.0760 ms/op | 1.15 | | getGindicesAtDepth | 5.2050 us/op | 5.3150 us/op | 0.98 | | iterateAtDepth | 10.976 us/op | 11.012 us/op | 1.00 | | getGindexBits | 643.00 ns/op | 648.00 ns/op | 0.99 | | gindexIterator | 1.3250 us/op | 1.3430 us/op | 0.99 | | hash 2 Uint8Array 2250026 times | 3.2464 s/op | 3.2557 s/op | 1.00 | | hashTwoObjects 2250026 times | 3.1130 s/op | 3.1135 s/op | 1.00 | | getNodeH() x7812.5 avg hindex | 21.098 us/op | 20.677 us/op | 1.02 | | getNodeH() x7812.5 index 0 | 6.7160 us/op | 6.7180 us/op | 1.00 | | getNodeH() x7812.5 index 7 | 6.6970 us/op | 6.7140 us/op | 1.00 | | getNodeH() x7812.5 index 7 with key array | 6.6960 us/op | 6.7380 us/op | 0.99 | | new LeafNode() x7812.5 | 301.51 us/op | 306.89 us/op | 0.98 | | multiproof - depth 15, 1 requested leaves | 13.319 us/op | 13.837 us/op | 0.96 | | tree offset multiproof - depth 15, 1 requested leaves | 30.560 us/op | 31.307 us/op | 0.98 | | compact multiproof - depth 15, 1 requested leaves | 6.6470 us/op | 6.7590 us/op | 0.98 | | multiproof - depth 15, 2 requested leaves | 17.181 us/op | 17.805 us/op | 0.96 | | tree offset multiproof - depth 15, 2 requested leaves | 31.916 us/op | 32.826 us/op | 0.97 | | compact multiproof - depth 15, 2 requested leaves | 3.3840 us/op | 3.4200 us/op | 0.99 | | multiproof - depth 15, 3 requested leaves | 23.921 us/op | 24.805 us/op | 0.96 | | tree offset multiproof - depth 15, 3 requested leaves | 41.412 us/op | 46.639 us/op | 0.89 | | compact multiproof - depth 15, 3 requested leaves | 6.5600 us/op | 7.0820 us/op | 0.93 | | multiproof - depth 15, 4 requested leaves | 31.284 us/op | 32.319 us/op | 0.97 | | tree offset multiproof - depth 15, 4 requested leaves | 51.419 us/op | 54.717 us/op | 0.94 | | compact multiproof - depth 15, 4 requested leaves | 7.2190 us/op | 6.2350 us/op | 1.16 | | packedRootsBytesToLeafNodes bytes 4000 offset 0 | 2.7720 us/op | 2.8780 us/op | 0.96 | | packedRootsBytesToLeafNodes bytes 4000 offset 1 | 2.7100 us/op | 2.8780 us/op | 0.94 | | packedRootsBytesToLeafNodes bytes 4000 offset 2 | 2.6870 us/op | 2.8570 us/op | 0.94 | | packedRootsBytesToLeafNodes bytes 4000 offset 3 | 2.6780 us/op | 2.8420 us/op | 0.94 | | subtreeFillToContents depth 40 count 250000 | 71.181 ms/op | 60.764 ms/op | 1.17 | | setRoot - gindexBitstring | 10.957 ms/op | 13.625 ms/op | 0.80 | | setRoot - gindex | 12.242 ms/op | 15.119 ms/op | 0.81 | | getRoot - gindexBitstring | 2.3471 ms/op | 2.6235 ms/op | 0.89 | | getRoot - gindex | 3.5119 ms/op | 3.9678 ms/op | 0.89 | | getHashObject then setHashObject | 14.361 ms/op | 16.706 ms/op | 0.86 | | setNodeWithFn | 12.695 ms/op | 15.243 ms/op | 0.83 | | getNodeAtDepth depth 0 x100000 | 1.6341 ms/op | 1.6045 ms/op | 1.02 | | setNodeAtDepth depth 0 x100000 | 3.4507 ms/op | 3.9992 ms/op | 0.86 | | getNodesAtDepth depth 0 x100000 | 1.4089 ms/op | 1.4047 ms/op | 1.00 | | setNodesAtDepth depth 0 x100000 | 1.9577 ms/op | 1.9755 ms/op | 0.99 | | getNodeAtDepth depth 1 x100000 | 1.7078 ms/op | 1.7335 ms/op | 0.99 | | setNodeAtDepth depth 1 x100000 | 7.2047 ms/op | 12.090 ms/op | 0.60 | | getNodesAtDepth depth 1 x100000 | 1.6108 ms/op | 1.5817 ms/op | 1.02 | | setNodesAtDepth depth 1 x100000 | 6.1931 ms/op | 8.7325 ms/op | 0.71 | | getNodeAtDepth depth 2 x100000 | 2.1727 ms/op | 2.1980 ms/op | 0.99 | | setNodeAtDepth depth 2 x100000 | 12.468 ms/op | 18.468 ms/op | 0.68 | | getNodesAtDepth depth 2 x100000 | 24.997 ms/op | 28.452 ms/op | 0.88 | | setNodesAtDepth depth 2 x100000 | 18.011 ms/op | 26.091 ms/op | 0.69 | | tree.getNodesAtDepth - gindexes | 6.4063 ms/op | 9.9726 ms/op | 0.64 | | tree.getNodesAtDepth - push all nodes | 2.3509 ms/op | 4.1589 ms/op | 0.57 | | tree.getNodesAtDepth - navigation | 201.30 us/op | 201.48 us/op | 1.00 | | tree.setNodesAtDepth - indexes | 524.25 us/op | 703.29 us/op | 0.75 | | set at depth 8 | 826.00 ns/op | 1.0170 us/op | 0.81 | | set at depth 16 | 936.00 ns/op | 1.3620 us/op | 0.69 | | set at depth 32 | 1.4860 us/op | 2.1970 us/op | 0.68 | | iterateNodesAtDepth 8 256 | 17.564 us/op | 20.712 us/op | 0.85 | | getNodesAtDepth 8 256 | 4.3270 us/op | 4.8870 us/op | 0.89 | | iterateNodesAtDepth 16 65536 | 5.1943 ms/op | 5.6495 ms/op | 0.92 | | getNodesAtDepth 16 65536 | 2.2140 ms/op | 2.9089 ms/op | 0.76 | | iterateNodesAtDepth 32 250000 | 20.008 ms/op | 22.730 ms/op | 0.88 | | getNodesAtDepth 32 250000 | 5.6889 ms/op | 5.7671 ms/op | 0.99 | | iterateNodesAtDepth 40 250000 | 19.960 ms/op | 20.169 ms/op | 0.99 | | getNodesAtDepth 40 250000 | 5.6406 ms/op | 6.0113 ms/op | 0.94 | | 250k validators | 3.3819 s/op | 3.4289 s/op | 0.99 | | bitlist bytes to struct (120,90) | 1.3650 us/op | 1.2490 us/op | 1.09 | | bitlist bytes to tree (120,90) | 5.1260 us/op | 4.7610 us/op | 1.08 | | bitlist bytes to struct (2048,2048) | 2.0170 us/op | 1.9500 us/op | 1.03 | | bitlist bytes to tree (2048,2048) | 8.4690 us/op | 7.9120 us/op | 1.07 | | ByteListType - deserialize | 17.377 ms/op | 16.771 ms/op | 1.04 | | BasicListType - deserialize | 26.047 ms/op | 43.256 ms/op | 0.60 | | ByteListType - serialize | 16.941 ms/op | 16.001 ms/op | 1.06 | | BasicListType - serialize | 21.607 ms/op | 16.897 ms/op | 1.28 | | BasicListType - tree_convertToStruct | 39.605 ms/op | 37.189 ms/op | 1.06 | | List[uint8, 68719476736] len 300000 ViewDU.getAll() + iterate | 4.7953 ms/op | 4.6815 ms/op | 1.02 | | List[uint8, 68719476736] len 300000 ViewDU.get(i) | 4.5319 ms/op | 4.4940 ms/op | 1.01 | | Array.push len 300000 empty Array - number | 7.2084 ms/op | 7.4778 ms/op | 0.96 | | Array.set len 300000 from new Array - number | 2.4086 ms/op | 2.2798 ms/op | 1.06 | | Array.set len 300000 - number | 7.1797 ms/op | 7.4169 ms/op | 0.97 | | Uint8Array.set len 300000 | 241.75 us/op | 239.83 us/op | 1.01 | | Uint32Array.set len 300000 | 329.26 us/op | 314.31 us/op | 1.05 | | Container({a: uint8, b: uint8}) getViewDU x300000 | 31.195 ms/op | 29.645 ms/op | 1.05 | | ContainerNodeStruct({a: uint8, b: uint8}) getViewDU x300000 | 12.644 ms/op | 12.265 ms/op | 1.03 | | List(Container) len 300000 ViewDU.getAllReadonly() + iterate | 307.11 ms/op | 335.12 ms/op | 0.92 | | List(Container) len 300000 ViewDU.getAllReadonlyValues() + iterate | 358.03 ms/op | 405.25 ms/op | 0.88 | | List(Container) len 300000 ViewDU.get(i) | 8.6335 ms/op | 9.9842 ms/op | 0.86 | | List(Container) len 300000 ViewDU.getReadonly(i) | 8.5204 ms/op | 8.7569 ms/op | 0.97 | | List(ContainerNodeStruct) len 300000 ViewDU.getAllReadonly() + iterate | 41.480 ms/op | 39.963 ms/op | 1.04 | | List(ContainerNodeStruct) len 300000 ViewDU.getAllReadonlyValues() + iterate | 7.0117 ms/op | 7.8769 ms/op | 0.89 | | List(ContainerNodeStruct) len 300000 ViewDU.get(i) | 8.5187 ms/op | 8.7347 ms/op | 0.98 | | List(ContainerNodeStruct) len 300000 ViewDU.getReadonly(i) | 8.3412 ms/op | 8.7362 ms/op | 0.95 | | Array.push len 300000 empty Array - object | 7.8205 ms/op | 7.8738 ms/op | 0.99 | | Array.set len 300000 from new Array - object | 2.2975 ms/op | 2.6984 ms/op | 0.85 | | Array.set len 300000 - object | 6.7108 ms/op | 7.9068 ms/op | 0.85 | | cachePermanentRootStruct no cache | 12.889 us/op | 13.495 us/op | 0.96 | | cachePermanentRootStruct with cache | 281.00 ns/op | 389.00 ns/op | 0.72 | | epochParticipation len 250000 rws 7813 | 2.9992 ms/op | 3.1187 ms/op | 0.96 | | deserialize Attestation - tree | 3.9440 us/op | 4.4560 us/op | 0.89 | | deserialize Attestation - struct | 2.7980 us/op | 3.1310 us/op | 0.89 | | deserialize SignedAggregateAndProof - tree | 5.0520 us/op | 5.6360 us/op | 0.90 | | deserialize SignedAggregateAndProof - struct | 4.4260 us/op | 4.7410 us/op | 0.93 | | deserialize SyncCommitteeMessage - tree | 1.6380 us/op | 1.6940 us/op | 0.97 | | deserialize SyncCommitteeMessage - struct | 1.7820 us/op | 1.9630 us/op | 0.91 | | deserialize SignedContributionAndProof - tree | 2.8220 us/op | 2.8260 us/op | 1.00 | | deserialize SignedContributionAndProof - struct | 3.7600 us/op | 4.1570 us/op | 0.90 | | deserialize SignedBeaconBlock - tree | 307.17 us/op | 319.51 us/op | 0.96 | | deserialize SignedBeaconBlock - struct | 183.14 us/op | 211.02 us/op | 0.87 | | BeaconState vc 300000 - deserialize tree | 839.18 ms/op | 815.86 ms/op | 1.03 | | BeaconState vc 300000 - serialize tree | 189.07 ms/op | 255.62 ms/op | 0.74 | | BeaconState.historicalRoots vc 300000 - deserialize tree | 1.2260 us/op | 1.2410 us/op | 0.99 | | BeaconState.historicalRoots vc 300000 - serialize tree | 1.2010 us/op | 1.3990 us/op | 0.86 | | BeaconState.validators vc 300000 - deserialize tree | 789.60 ms/op | 849.16 ms/op | 0.93 | | BeaconState.validators vc 300000 - serialize tree | 187.61 ms/op | 189.61 ms/op | 0.99 | | BeaconState.balances vc 300000 - deserialize tree | 29.413 ms/op | 35.097 ms/op | 0.84 | | BeaconState.balances vc 300000 - serialize tree | 3.6312 ms/op | 3.4499 ms/op | 1.05 | | BeaconState.previousEpochParticipation vc 300000 - deserialize tree | 433.48 us/op | 487.44 us/op | 0.89 | | BeaconState.previousEpochParticipation vc 300000 - serialize tree | 326.08 us/op | 342.15 us/op | 0.95 | | BeaconState.currentEpochParticipation vc 300000 - deserialize tree | 431.31 us/op | 488.96 us/op | 0.88 | | BeaconState.currentEpochParticipation vc 300000 - serialize tree | 325.88 us/op | 337.85 us/op | 0.96 | | BeaconState.inactivityScores vc 300000 - deserialize tree | 32.731 ms/op | 30.894 ms/op | 1.06 | | BeaconState.inactivityScores vc 300000 - serialize tree | 3.3160 ms/op | 4.1034 ms/op | 0.81 | | hashTreeRoot Attestation - struct | 41.444 us/op | 45.810 us/op | 0.90 | | hashTreeRoot Attestation - tree | 29.995 us/op | 31.807 us/op | 0.94 | | hashTreeRoot SignedAggregateAndProof - struct | 64.309 us/op | 73.119 us/op | 0.88 | | hashTreeRoot SignedAggregateAndProof - tree | 43.370 us/op | 43.775 us/op | 0.99 | | hashTreeRoot SyncCommitteeMessage - struct | 13.657 us/op | 15.075 us/op | 0.91 | | hashTreeRoot SyncCommitteeMessage - tree | 9.6660 us/op | 9.5080 us/op | 1.02 | | hashTreeRoot SignedContributionAndProof - struct | 38.553 us/op | 41.857 us/op | 0.92 | | hashTreeRoot SignedContributionAndProof - tree | 30.012 us/op | 31.337 us/op | 0.96 | | hashTreeRoot SignedBeaconBlock - struct | 3.3922 ms/op | 3.6396 ms/op | 0.93 | | hashTreeRoot SignedBeaconBlock - tree | 2.5839 ms/op | 2.5729 ms/op | 1.00 | | hashTreeRoot Validator - struct | 18.198 us/op | 18.882 us/op | 0.96 | | hashTreeRoot Validator - tree | 16.080 us/op | 16.425 us/op | 0.98 | | BeaconState vc 300000 - hashTreeRoot tree | 5.3146 s/op | 5.3147 s/op | 1.00 | | BeaconState.historicalRoots vc 300000 - hashTreeRoot tree | 2.1770 us/op | 2.2040 us/op | 0.99 | | BeaconState.validators vc 300000 - hashTreeRoot tree | 5.0686 s/op | 5.0961 s/op | 0.99 | | BeaconState.balances vc 300000 - hashTreeRoot tree | 129.54 ms/op | 130.00 ms/op | 1.00 | | BeaconState.previousEpochParticipation vc 300000 - hashTreeRoot tree | 13.857 ms/op | 13.816 ms/op | 1.00 | | BeaconState.currentEpochParticipation vc 300000 - hashTreeRoot tree | 13.863 ms/op | 13.819 ms/op | 1.00 | | BeaconState.inactivityScores vc 300000 - hashTreeRoot tree | 134.93 ms/op | 137.91 ms/op | 0.98 | | hash64 x18 | 27.949 us/op | 28.250 us/op | 0.99 | | hashTwoObjects x18 | 28.571 us/op | 27.629 us/op | 1.03 | | hash64 x1740 | 2.6022 ms/op | 2.6602 ms/op | 0.98 | | hashTwoObjects x1740 | 2.7011 ms/op | 2.5802 ms/op | 1.05 | | hash64 x2700000 | 4.0412 s/op | 4.1103 s/op | 0.98 | | hashTwoObjects x2700000 | 4.1886 s/op | 4.0532 s/op | 1.03 | | get_exitEpoch - ContainerType | 487.00 ns/op | 563.00 ns/op | 0.87 | | get_exitEpoch - ContainerNodeStructType | 430.00 ns/op | 503.00 ns/op | 0.85 | | set_exitEpoch - ContainerType | 455.00 ns/op | 533.00 ns/op | 0.85 | | set_exitEpoch - ContainerNodeStructType | 440.00 ns/op | 490.00 ns/op | 0.90 | | get_pubkey - ContainerType | 1.9540 us/op | 1.7190 us/op | 1.14 | | get_pubkey - ContainerNodeStructType | 306.00 ns/op | 380.00 ns/op | 0.81 | | hashTreeRoot - ContainerType | 582.00 ns/op | 562.00 ns/op | 1.04 | | hashTreeRoot - ContainerNodeStructType | 548.00 ns/op | 652.00 ns/op | 0.84 | | createProof - ContainerType | 6.9860 us/op | 6.7860 us/op | 1.03 | | createProof - ContainerNodeStructType | 34.108 us/op | 33.722 us/op | 1.01 | | serialize - ContainerType | 2.8690 us/op | 3.0980 us/op | 0.93 | | serialize - ContainerNodeStructType | 2.3080 us/op | 2.4220 us/op | 0.95 | | set_exitEpoch_and_hashTreeRoot - ContainerType | 6.3940 us/op | 6.3750 us/op | 1.00 | | set_exitEpoch_and_hashTreeRoot - ContainerNodeStructType | 17.291 us/op | 17.293 us/op | 1.00 | | Array - for of | 7.2370 us/op | 6.7540 us/op | 1.07 | | Array - for(;;) | 7.0130 us/op | 6.6290 us/op | 1.06 | | basicListValue.readonlyValuesArray() | 4.2114 ms/op | 4.2756 ms/op | 0.98 | | basicListValue.readonlyValuesArray() + loop all | 4.3435 ms/op | 4.4082 ms/op | 0.99 | | compositeListValue.readonlyValuesArray() | 32.669 ms/op | 33.938 ms/op | 0.96 | | compositeListValue.readonlyValuesArray() + loop all | 32.043 ms/op | 32.080 ms/op | 1.00 | | Number64UintType - get balances list | 5.3818 ms/op | 1.5355 ms/op | 3.50 | | Number64UintType - set balances list | 11.661 ms/op | 14.124 ms/op | 0.83 | | Number64UintType - get and increase 10 then set | 47.369 ms/op | 45.445 ms/op | 1.04 | | Number64UintType - increase 10 using applyDelta | 19.222 ms/op | 17.594 ms/op | 1.09 | | Number64UintType - increase 10 using applyDeltaInBatch | 19.227 ms/op | 17.427 ms/op | 1.10 | | tree_newTreeFromUint64Deltas | 22.913 ms/op | 22.914 ms/op | 1.00 | | unsafeUint8ArrayToTree | 39.218 ms/op | 39.998 ms/op | 0.98 | | bitLength(50) | 345.00 ns/op | 338.00 ns/op | 1.02 | | bitLengthStr(50) | 382.00 ns/op | 373.00 ns/op | 1.02 | | bitLength(8000) | 350.00 ns/op | 328.00 ns/op | 1.07 | | bitLengthStr(8000) | 425.00 ns/op | 418.00 ns/op | 1.02 | | bitLength(250000) | 344.00 ns/op | 331.00 ns/op | 1.04 | | bitLengthStr(250000) | 487.00 ns/op | 487.00 ns/op | 1.00 | | floor - Math.floor (53) | 0.60258 ns/op | 0.60275 ns/op | 1.00 | | floor - << 0 (53) | 0.60261 ns/op | 0.60274 ns/op | 1.00 | | floor - Math.floor (512) | 0.60255 ns/op | 0.60294 ns/op | 1.00 | | floor - << 0 (512) | 0.60252 ns/op | 0.60265 ns/op | 1.00 | | fnIf(0) | 2.0077 ns/op | 2.0082 ns/op | 1.00 | | fnSwitch(0) | 3.2618 ns/op | 3.3171 ns/op | 0.98 | | fnObj(0) | 0.60258 ns/op | 0.60278 ns/op | 1.00 | | fnArr(0) | 0.60265 ns/op | 0.60272 ns/op | 1.00 | | fnIf(4) | 3.1365 ns/op | 3.1969 ns/op | 0.98 | | fnSwitch(4) | 3.2184 ns/op | 3.2873 ns/op | 0.98 | | fnObj(4) | 0.60248 ns/op | 0.60263 ns/op | 1.00 | | fnArr(4) | 0.60259 ns/op | 0.60281 ns/op | 1.00 | | fnIf(9) | 5.2221 ns/op | 5.2272 ns/op | 1.00 | | fnSwitch(9) | 3.2914 ns/op | 3.2847 ns/op | 1.00 | | fnObj(9) | 0.60253 ns/op | 0.60266 ns/op | 1.00 | | fnArr(9) | 0.60259 ns/op | 0.60273 ns/op | 1.00 | | Container {a,b,vec} - as struct x100000 | 60.491 us/op | 60.533 us/op | 1.00 | | Container {a,b,vec} - as tree x100000 | 505.76 us/op | 522.38 us/op | 0.97 | | Container {a,vec,b} - as struct x100000 | 120.72 us/op | 120.76 us/op | 1.00 | | Container {a,vec,b} - as tree x100000 | 549.42 us/op | 550.00 us/op | 1.00 | | get 2 props x1000000 - rawObject | 401.87 us/op | 401.90 us/op | 1.00 | | get 2 props x1000000 - proxy | 90.613 ms/op | 90.592 ms/op | 1.00 | | get 2 props x1000000 - customObj | 401.77 us/op | 401.95 us/op | 1.00 | | Simple object binary -> struct | 1.0660 us/op | 952.00 ns/op | 1.12 | | Simple object binary -> tree_backed | 2.8280 us/op | 2.5330 us/op | 1.12 | | Simple object struct -> tree_backed | 3.6820 us/op | 3.2020 us/op | 1.15 | | Simple object tree_backed -> struct | 3.1770 us/op | 2.7880 us/op | 1.14 | | Simple object struct -> binary | 1.6010 us/op | 1.3950 us/op | 1.15 | | Simple object tree_backed -> binary | 2.7310 us/op | 2.4110 us/op | 1.13 | | aggregationBits binary -> struct | 941.00 ns/op | 810.00 ns/op | 1.16 | | aggregationBits binary -> tree_backed | 3.7320 us/op | 3.1770 us/op | 1.17 | | aggregationBits struct -> tree_backed | 4.5270 us/op | 3.8750 us/op | 1.17 | | aggregationBits tree_backed -> struct | 1.9110 us/op | 1.6540 us/op | 1.16 | | aggregationBits struct -> binary | 1.3700 us/op | 1.1730 us/op | 1.17 | | aggregationBits tree_backed -> binary | 1.7250 us/op | 1.6490 us/op | 1.05 | | List(uint8) 100000 binary -> struct | 1.7314 ms/op | 1.8344 ms/op | 0.94 | | List(uint8) 100000 binary -> tree_backed | 125.91 us/op | 158.44 us/op | 0.79 | | List(uint8) 100000 struct -> tree_backed | 1.6334 ms/op | 1.8430 ms/op | 0.89 | | List(uint8) 100000 tree_backed -> struct | 1.1333 ms/op | 1.2437 ms/op | 0.91 | | List(uint8) 100000 struct -> binary | 1.5128 ms/op | 1.6188 ms/op | 0.93 | | List(uint8) 100000 tree_backed -> binary | 88.844 us/op | 96.113 us/op | 0.92 | | List(uint64Number) 100000 binary -> struct | 1.4286 ms/op | 1.5824 ms/op | 0.90 | | List(uint64Number) 100000 binary -> tree_backed | 3.7811 ms/op | 5.2410 ms/op | 0.72 | | List(uint64Number) 100000 struct -> tree_backed | 5.7146 ms/op | 7.1244 ms/op | 0.80 | | List(uint64Number) 100000 tree_backed -> struct | 2.4863 ms/op | 2.7433 ms/op | 0.91 | | List(uint64Number) 100000 struct -> binary | 1.8257 ms/op | 1.9942 ms/op | 0.92 | | List(uint64Number) 100000 tree_backed -> binary | 1.0055 ms/op | 1.1694 ms/op | 0.86 | | List(Uint64Bigint) 100000 binary -> struct | 4.3465 ms/op | 4.3238 ms/op | 1.01 | | List(Uint64Bigint) 100000 binary -> tree_backed | 4.6653 ms/op | 4.9340 ms/op | 0.95 | | List(Uint64Bigint) 100000 struct -> tree_backed | 7.3143 ms/op | 7.3971 ms/op | 0.99 | | List(Uint64Bigint) 100000 tree_backed -> struct | 5.4635 ms/op | 5.9088 ms/op | 0.92 | | List(Uint64Bigint) 100000 struct -> binary | 2.6059 ms/op | 2.6222 ms/op | 0.99 | | List(Uint64Bigint) 100000 tree_backed -> binary | 1.1273 ms/op | 1.1397 ms/op | 0.99 | | Vector(Root) 100000 binary -> struct | 46.266 ms/op | 39.335 ms/op | 1.18 | | Vector(Root) 100000 binary -> tree_backed | 47.651 ms/op | 47.326 ms/op | 1.01 | | Vector(Root) 100000 struct -> tree_backed | 53.972 ms/op | 53.988 ms/op | 1.00 | | Vector(Root) 100000 tree_backed -> struct | 61.589 ms/op | 62.382 ms/op | 0.99 | | Vector(Root) 100000 struct -> binary | 2.4421 ms/op | 2.5898 ms/op | 0.94 | | Vector(Root) 100000 tree_backed -> binary | 10.639 ms/op | 11.642 ms/op | 0.91 | | List(Validator) 100000 binary -> struct | 161.24 ms/op | 171.72 ms/op | 0.94 | | List(Validator) 100000 binary -> tree_backed | 416.14 ms/op | 435.20 ms/op | 0.96 | | List(Validator) 100000 struct -> tree_backed | 452.75 ms/op | 469.47 ms/op | 0.96 | | List(Validator) 100000 tree_backed -> struct | 257.29 ms/op | 251.51 ms/op | 1.02 | | List(Validator) 100000 struct -> binary | 39.443 ms/op | 40.779 ms/op | 0.97 | | List(Validator) 100000 tree_backed -> binary | 110.81 ms/op | 110.01 ms/op | 1.01 | | List(Validator-NS) 100000 binary -> struct | 161.86 ms/op | 168.66 ms/op | 0.96 | | List(Validator-NS) 100000 binary -> tree_backed | 224.91 ms/op | 233.00 ms/op | 0.97 | | List(Validator-NS) 100000 struct -> tree_backed | 280.99 ms/op | 283.80 ms/op | 0.99 | | List(Validator-NS) 100000 tree_backed -> struct | 233.36 ms/op | 235.73 ms/op | 0.99 | | List(Validator-NS) 100000 struct -> binary | 42.482 ms/op | 41.290 ms/op | 1.03 | | List(Validator-NS) 100000 tree_backed -> binary | 48.378 ms/op | 47.611 ms/op | 1.02 | | get epochStatuses - MutableVector | 100.06 us/op | 104.06 us/op | 0.96 | | get epochStatuses - ViewDU | 285.76 us/op | 239.41 us/op | 1.19 | | set epochStatuses - ListTreeView | 1.9099 ms/op | 1.8985 ms/op | 1.01 | | set epochStatuses - ListTreeView - set() | 604.39 us/op | 625.68 us/op | 0.97 | | set epochStatuses - ListTreeView - commit() | 521.58 us/op | 553.59 us/op | 0.94 | | bitstring | 918.17 ns/op | 927.91 ns/op | 0.99 | | bit mask | 14.483 ns/op | 14.496 ns/op | 1.00 | | struct - increase slot to 1000000 | 2.0430 ms/op | 1.8106 ms/op | 1.13 | | UintNumberType - increase slot to 1000000 | 36.898 ms/op | 36.945 ms/op | 1.00 | | UintBigintType - increase slot to 1000000 | 547.92 ms/op | 566.47 ms/op | 0.97 | | UintBigint8 x 100000 tree_deserialize | 5.1417 ms/op | 5.1494 ms/op | 1.00 | | UintBigint8 x 100000 tree_serialize | 1.4622 ms/op | 735.62 us/op | 1.99 | | UintBigint16 x 100000 tree_deserialize | 5.0003 ms/op | 4.8182 ms/op | 1.04 | | UintBigint16 x 100000 tree_serialize | 1.5213 ms/op | 1.5756 ms/op | 0.97 | | UintBigint32 x 100000 tree_deserialize | 6.7320 ms/op | 6.6967 ms/op | 1.01 | | UintBigint32 x 100000 tree_serialize | 1.5118 ms/op | 1.7506 ms/op | 0.86 | | UintBigint64 x 100000 tree_deserialize | 6.7746 ms/op | 7.0975 ms/op | 0.95 | | UintBigint64 x 100000 tree_serialize | 1.9540 ms/op | 2.2681 ms/op | 0.86 | | UintBigint8 x 100000 value_deserialize | 545.28 us/op | 544.53 us/op | 1.00 | | UintBigint8 x 100000 value_serialize | 793.00 us/op | 925.52 us/op | 0.86 | | UintBigint16 x 100000 value_deserialize | 601.19 us/op | 576.93 us/op | 1.04 | | UintBigint16 x 100000 value_serialize | 852.83 us/op | 1.0064 ms/op | 0.85 | | UintBigint32 x 100000 value_deserialize | 543.77 us/op | 546.45 us/op | 1.00 | | UintBigint32 x 100000 value_serialize | 875.01 us/op | 993.07 us/op | 0.88 | | UintBigint64 x 100000 value_deserialize | 603.14 us/op | 630.89 us/op | 0.96 | | UintBigint64 x 100000 value_serialize | 1.0872 ms/op | 1.2442 ms/op | 0.87 | | UintBigint8 x 100000 deserialize | 5.7329 ms/op | 6.2300 ms/op | 0.92 | | UintBigint8 x 100000 serialize | 2.0304 ms/op | 1.9317 ms/op | 1.05 | | UintBigint16 x 100000 deserialize | 5.9673 ms/op | 5.8656 ms/op | 1.02 | | UintBigint16 x 100000 serialize | 1.8554 ms/op | 2.0571 ms/op | 0.90 | | UintBigint32 x 100000 deserialize | 6.8628 ms/op | 7.1049 ms/op | 0.97 | | UintBigint32 x 100000 serialize | 3.5782 ms/op | 3.6221 ms/op | 0.99 | | UintBigint64 x 100000 deserialize | 4.4871 ms/op | 4.4801 ms/op | 1.00 | | UintBigint64 x 100000 serialize | 1.8737 ms/op | 1.9085 ms/op | 0.98 | | UintBigint128 x 100000 deserialize | 6.9987 ms/op | 7.0560 ms/op | 0.99 | | UintBigint128 x 100000 serialize | 21.625 ms/op | 21.695 ms/op | 1.00 | | UintBigint256 x 100000 deserialize | 13.620 ms/op | 13.118 ms/op | 1.04 | | UintBigint256 x 100000 serialize | 65.871 ms/op | 63.952 ms/op | 1.03 | | Slice from Uint8Array x25000 | 1.3405 ms/op | 1.3232 ms/op | 1.01 | | Slice from ArrayBuffer x25000 | 24.109 ms/op | 25.687 ms/op | 0.94 | | Slice from ArrayBuffer x25000 + new Uint8Array | 24.349 ms/op | 27.199 ms/op | 0.90 | | Copy Uint8Array 100000 iterate | 1.0338 ms/op | 1.0536 ms/op | 0.98 | | Copy Uint8Array 100000 slice | 91.974 us/op | 96.837 us/op | 0.95 | | Copy Uint8Array 100000 Uint8Array.prototype.slice.call | 97.026 us/op | 99.809 us/op | 0.97 | | Copy Buffer 100000 Uint8Array.prototype.slice.call | 95.119 us/op | 102.07 us/op | 0.93 | | Copy Uint8Array 100000 slice + set | 207.15 us/op | 213.85 us/op | 0.97 | | Copy Uint8Array 100000 subarray + set | 95.117 us/op | 98.881 us/op | 0.96 | | Copy Uint8Array 100000 slice arrayBuffer | 94.963 us/op | 97.027 us/op | 0.98 | | Uint64 deserialize 100000 - iterate Uint8Array | 2.0016 ms/op | 2.0892 ms/op | 0.96 | | Uint64 deserialize 100000 - by Uint32A | 1.8691 ms/op | 1.9825 ms/op | 0.94 | | Uint64 deserialize 100000 - by DataView.getUint32 x2 | 1.9932 ms/op | 2.0265 ms/op | 0.98 | | Uint64 deserialize 100000 - by DataView.getBigUint64 | 5.7301 ms/op | 5.8826 ms/op | 0.97 | | Uint64 deserialize 100000 - by byte | 72.438 ms/op | 72.216 ms/op | 1.00 |

by benchmarkbot/action

wemeetagain commented 1 year ago

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