ChainSafe / ssz

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

chore: release master #343

Closed wemeetagain closed 7 months ago

wemeetagain commented 7 months ago

:robot: I have created a release beep boop

ssz: 0.14.2 ## [0.14.2](https://github.com/ChainSafe/ssz/compare/ssz-v0.14.1...ssz-v0.14.2) (2024-02-10) ### Bug Fixes * update changelog ordering ([#342](https://github.com/ChainSafe/ssz/issues/342)) ([698ad13](https://github.com/ChainSafe/ssz/commit/698ad13f8828a237650136ff90f3793b09357ddc))

This PR was generated with Release Please. See documentation.

wemeetagain commented 7 months ago

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

github-actions[bot] commented 7 months ago

Performance Report

✔️ no performance regression detected

Full benchmark results | Benchmark suite | Current: 89db81019e1c17adb5310f63c83b26255552dc8a | Previous: f96814a9bd8680c6a17987b5585950e425292bd2 | Ratio | |-|-|-|-| | digestTwoHashObjects 50023 times | 48.691 ms/op | 48.101 ms/op | 1.01 | | digest64 50023 times | 48.930 ms/op | 48.899 ms/op | 1.00 | | digest 50023 times | 48.684 ms/op | 49.188 ms/op | 0.99 | | input length 32 | 1.1580 us/op | 1.1510 us/op | 1.01 | | input length 64 | 1.2590 us/op | 1.2830 us/op | 0.98 | | input length 128 | 2.2080 us/op | 2.2110 us/op | 1.00 | | input length 256 | 3.3470 us/op | 3.3010 us/op | 1.01 | | input length 512 | 5.4320 us/op | 5.3850 us/op | 1.01 | | input length 1024 | 10.854 us/op | 10.710 us/op | 1.01 | | digest 1000000 times | 782.78 ms/op | 782.91 ms/op | 1.00 | | hashObjectToByteArray 50023 times | 1.4249 ms/op | 1.4228 ms/op | 1.00 | | byteArrayToHashObject 50023 times | 1.6766 ms/op | 1.6522 ms/op | 1.01 | | getGindicesAtDepth | 3.9740 us/op | 3.9230 us/op | 1.01 | | iterateAtDepth | 8.9210 us/op | 8.4010 us/op | 1.06 | | getGindexBits | 406.00 ns/op | 400.00 ns/op | 1.01 | | gindexIterator | 923.00 ns/op | 961.00 ns/op | 0.96 | | hash 2 Uint8Array 2250026 times - as-sha256 | 2.2571 s/op | 2.2355 s/op | 1.01 | | hashTwoObjects 2250026 times - as-sha256 | 2.1438 s/op | 2.1470 s/op | 1.00 | | hash 2 Uint8Array 2250026 times - noble | 4.5920 s/op | 4.7989 s/op | 0.96 | | hashTwoObjects 2250026 times - noble | 6.6982 s/op | 6.7888 s/op | 0.99 | | getNodeH() x7812.5 avg hindex | 14.403 us/op | 14.532 us/op | 0.99 | | getNodeH() x7812.5 index 0 | 5.1160 us/op | 5.1100 us/op | 1.00 | | getNodeH() x7812.5 index 7 | 5.0560 us/op | 5.1370 us/op | 0.98 | | getNodeH() x7812.5 index 7 with key array | 5.0860 us/op | 5.0890 us/op | 1.00 | | new LeafNode() x7812.5 | 113.15 us/op | 116.66 us/op | 0.97 | | multiproof - depth 15, 1 requested leaves | 9.4680 us/op | 9.8540 us/op | 0.96 | | tree offset multiproof - depth 15, 1 requested leaves | 20.875 us/op | 20.984 us/op | 0.99 | | compact multiproof - depth 15, 1 requested leaves | 5.5130 us/op | 4.6470 us/op | 1.19 | | multiproof - depth 15, 2 requested leaves | 13.807 us/op | 13.027 us/op | 1.06 | | tree offset multiproof - depth 15, 2 requested leaves | 23.857 us/op | 23.655 us/op | 1.01 | | compact multiproof - depth 15, 2 requested leaves | 3.2800 us/op | 3.4970 us/op | 0.94 | | multiproof - depth 15, 3 requested leaves | 18.303 us/op | 18.343 us/op | 1.00 | | tree offset multiproof - depth 15, 3 requested leaves | 31.126 us/op | 30.976 us/op | 1.00 | | compact multiproof - depth 15, 3 requested leaves | 4.5050 us/op | 4.7340 us/op | 0.95 | | multiproof - depth 15, 4 requested leaves | 23.840 us/op | 23.834 us/op | 1.00 | | tree offset multiproof - depth 15, 4 requested leaves | 38.241 us/op | 37.570 us/op | 1.02 | | compact multiproof - depth 15, 4 requested leaves | 5.3020 us/op | 5.5600 us/op | 0.95 | | packedRootsBytesToLeafNodes bytes 4000 offset 0 | 1.9870 us/op | 2.0340 us/op | 0.98 | | packedRootsBytesToLeafNodes bytes 4000 offset 1 | 1.9690 us/op | 2.0290 us/op | 0.97 | | packedRootsBytesToLeafNodes bytes 4000 offset 2 | 1.9680 us/op | 2.0350 us/op | 0.97 | | packedRootsBytesToLeafNodes bytes 4000 offset 3 | 1.9750 us/op | 1.9920 us/op | 0.99 | | subtreeFillToContents depth 40 count 250000 | 47.734 ms/op | 45.179 ms/op | 1.06 | | setRoot - gindexBitstring | 7.8587 ms/op | 8.6264 ms/op | 0.91 | | setRoot - gindex | 8.1069 ms/op | 9.3114 ms/op | 0.87 | | getRoot - gindexBitstring | 2.2807 ms/op | 2.6048 ms/op | 0.88 | | getRoot - gindex | 3.1041 ms/op | 3.3480 ms/op | 0.93 | | getHashObject then setHashObject | 9.2885 ms/op | 10.431 ms/op | 0.89 | | setNodeWithFn | 7.9693 ms/op | 9.3371 ms/op | 0.85 | | getNodeAtDepth depth 0 x100000 | 1.1442 ms/op | 1.1449 ms/op | 1.00 | | setNodeAtDepth depth 0 x100000 | 2.3514 ms/op | 2.6184 ms/op | 0.90 | | getNodesAtDepth depth 0 x100000 | 1.0841 ms/op | 1.1078 ms/op | 0.98 | | setNodesAtDepth depth 0 x100000 | 1.4843 ms/op | 1.4866 ms/op | 1.00 | | getNodeAtDepth depth 1 x100000 | 1.2087 ms/op | 1.2058 ms/op | 1.00 | | setNodeAtDepth depth 1 x100000 | 5.1051 ms/op | 5.8729 ms/op | 0.87 | | getNodesAtDepth depth 1 x100000 | 1.2085 ms/op | 1.2072 ms/op | 1.00 | | setNodesAtDepth depth 1 x100000 | 4.2744 ms/op | 4.8121 ms/op | 0.89 | | getNodeAtDepth depth 2 x100000 | 1.5381 ms/op | 1.4839 ms/op | 1.04 | | setNodeAtDepth depth 2 x100000 | 8.8088 ms/op | 9.8288 ms/op | 0.90 | | getNodesAtDepth depth 2 x100000 | 18.522 ms/op | 20.146 ms/op | 0.92 | | setNodesAtDepth depth 2 x100000 | 12.500 ms/op | 13.611 ms/op | 0.92 | | tree.getNodesAtDepth - gindexes | 5.7280 ms/op | 6.3648 ms/op | 0.90 | | tree.getNodesAtDepth - push all nodes | 1.7787 ms/op | 2.1975 ms/op | 0.81 | | tree.getNodesAtDepth - navigation | 156.61 us/op | 157.51 us/op | 0.99 | | tree.setNodesAtDepth - indexes | 359.78 us/op | 378.03 us/op | 0.95 | | set at depth 8 | 469.00 ns/op | 512.00 ns/op | 0.92 | | set at depth 16 | 604.00 ns/op | 661.00 ns/op | 0.91 | | set at depth 32 | 933.00 ns/op | 1.0520 us/op | 0.89 | | iterateNodesAtDepth 8 256 | 13.132 us/op | 14.353 us/op | 0.91 | | getNodesAtDepth 8 256 | 3.3150 us/op | 3.5090 us/op | 0.94 | | iterateNodesAtDepth 16 65536 | 4.0724 ms/op | 4.4654 ms/op | 0.91 | | getNodesAtDepth 16 65536 | 1.5997 ms/op | 1.9994 ms/op | 0.80 | | iterateNodesAtDepth 32 250000 | 15.390 ms/op | 16.725 ms/op | 0.92 | | getNodesAtDepth 32 250000 | 4.2080 ms/op | 4.7890 ms/op | 0.88 | | iterateNodesAtDepth 40 250000 | 15.568 ms/op | 16.703 ms/op | 0.93 | | getNodesAtDepth 40 250000 | 4.2181 ms/op | 4.6489 ms/op | 0.91 | | 250k validators | 6.8716 s/op | 7.4809 s/op | 0.92 | | bitlist bytes to struct (120,90) | 600.00 ns/op | 641.00 ns/op | 0.94 | | bitlist bytes to tree (120,90) | 2.3390 us/op | 2.5620 us/op | 0.91 | | bitlist bytes to struct (2048,2048) | 1.0420 us/op | 1.0790 us/op | 0.97 | | bitlist bytes to tree (2048,2048) | 3.5380 us/op | 4.0640 us/op | 0.87 | | ByteListType - deserialize | 7.9984 ms/op | 8.7376 ms/op | 0.92 | | BasicListType - deserialize | 7.5639 ms/op | 9.7508 ms/op | 0.78 | | ByteListType - serialize | 8.2839 ms/op | 8.4041 ms/op | 0.99 | | BasicListType - serialize | 10.354 ms/op | 10.877 ms/op | 0.95 | | BasicListType - tree_convertToStruct | 29.605 ms/op | 24.625 ms/op | 1.20 | | List[uint8, 68719476736] len 300000 ViewDU.getAll() + iterate | 4.0862 ms/op | 4.3224 ms/op | 0.95 | | List[uint8, 68719476736] len 300000 ViewDU.get(i) | 4.1372 ms/op | 4.1474 ms/op | 1.00 | | Array.push len 300000 empty Array - number | 6.0756 ms/op | 6.1982 ms/op | 0.98 | | Array.set len 300000 from new Array - number | 1.6160 ms/op | 1.6530 ms/op | 0.98 | | Array.set len 300000 - number | 5.1684 ms/op | 5.1804 ms/op | 1.00 | | Uint8Array.set len 300000 | 208.29 us/op | 206.40 us/op | 1.01 | | Uint32Array.set len 300000 | 288.62 us/op | 283.95 us/op | 1.02 | | Container({a: uint8, b: uint8}) getViewDU x300000 | 20.575 ms/op | 20.446 ms/op | 1.01 | | ContainerNodeStruct({a: uint8, b: uint8}) getViewDU x300000 | 9.3686 ms/op | 9.2396 ms/op | 1.01 | | List(Container) len 300000 ViewDU.getAllReadonly() + iterate | 256.45 ms/op | 254.64 ms/op | 1.01 | | List(Container) len 300000 ViewDU.getAllReadonlyValues() + iterate | 283.00 ms/op | 264.93 ms/op | 1.07 | | List(Container) len 300000 ViewDU.get(i) | 6.4667 ms/op | 6.5003 ms/op | 0.99 | | List(Container) len 300000 ViewDU.getReadonly(i) | 6.3898 ms/op | 6.7169 ms/op | 0.95 | | List(ContainerNodeStruct) len 300000 ViewDU.getAllReadonly() + iterate | 37.468 ms/op | 35.508 ms/op | 1.06 | | List(ContainerNodeStruct) len 300000 ViewDU.getAllReadonlyValues() + iterate | 5.2742 ms/op | 5.8650 ms/op | 0.90 | | List(ContainerNodeStruct) len 300000 ViewDU.get(i) | 6.0891 ms/op | 6.2073 ms/op | 0.98 | | List(ContainerNodeStruct) len 300000 ViewDU.getReadonly(i) | 5.9164 ms/op | 6.1593 ms/op | 0.96 | | Array.push len 300000 empty Array - object | 5.8793 ms/op | 5.8099 ms/op | 1.01 | | Array.set len 300000 from new Array - object | 1.9504 ms/op | 1.8525 ms/op | 1.05 | | Array.set len 300000 - object | 5.5270 ms/op | 5.3452 ms/op | 1.03 | | cachePermanentRootStruct no cache | 8.9930 us/op | 8.8280 us/op | 1.02 | | cachePermanentRootStruct with cache | 211.00 ns/op | 218.00 ns/op | 0.97 | | epochParticipation len 250000 rws 7813 | 2.3042 ms/op | 2.2694 ms/op | 1.02 | | deserialize Attestation - tree | 2.9940 us/op | 2.8800 us/op | 1.04 | | deserialize Attestation - struct | 2.0080 us/op | 1.9230 us/op | 1.04 | | deserialize SignedAggregateAndProof - tree | 3.7480 us/op | 3.5960 us/op | 1.04 | | deserialize SignedAggregateAndProof - struct | 3.0020 us/op | 3.0130 us/op | 1.00 | | deserialize SyncCommitteeMessage - tree | 1.1390 us/op | 1.0780 us/op | 1.06 | | deserialize SyncCommitteeMessage - struct | 1.2190 us/op | 1.1550 us/op | 1.06 | | deserialize SignedContributionAndProof - tree | 1.9260 us/op | 1.8810 us/op | 1.02 | | deserialize SignedContributionAndProof - struct | 2.4850 us/op | 2.3790 us/op | 1.04 | | deserialize SignedBeaconBlock - tree | 217.66 us/op | 204.00 us/op | 1.07 | | deserialize SignedBeaconBlock - struct | 131.67 us/op | 125.63 us/op | 1.05 | | BeaconState vc 300000 - deserialize tree | 619.81 ms/op | 679.47 ms/op | 0.91 | | BeaconState vc 300000 - serialize tree | 117.98 ms/op | 122.49 ms/op | 0.96 | | BeaconState.historicalRoots vc 300000 - deserialize tree | 852.00 ns/op | 820.00 ns/op | 1.04 | | BeaconState.historicalRoots vc 300000 - serialize tree | 843.00 ns/op | 818.00 ns/op | 1.03 | | BeaconState.validators vc 300000 - deserialize tree | 550.44 ms/op | 640.22 ms/op | 0.86 | | BeaconState.validators vc 300000 - serialize tree | 140.69 ms/op | 141.37 ms/op | 1.00 | | BeaconState.balances vc 300000 - deserialize tree | 21.392 ms/op | 23.898 ms/op | 0.90 | | BeaconState.balances vc 300000 - serialize tree | 3.2910 ms/op | 3.5261 ms/op | 0.93 | | BeaconState.previousEpochParticipation vc 300000 - deserialize tree | 417.69 us/op | 510.55 us/op | 0.82 | | BeaconState.previousEpochParticipation vc 300000 - serialize tree | 269.66 us/op | 275.45 us/op | 0.98 | | BeaconState.currentEpochParticipation vc 300000 - deserialize tree | 413.08 us/op | 524.47 us/op | 0.79 | | BeaconState.currentEpochParticipation vc 300000 - serialize tree | 267.42 us/op | 277.39 us/op | 0.96 | | BeaconState.inactivityScores vc 300000 - deserialize tree | 25.085 ms/op | 24.037 ms/op | 1.04 | | BeaconState.inactivityScores vc 300000 - serialize tree | 2.5396 ms/op | 2.7484 ms/op | 0.92 | | hashTreeRoot Attestation - struct | 27.373 us/op | 27.175 us/op | 1.01 | | hashTreeRoot Attestation - tree | 19.685 us/op | 18.265 us/op | 1.08 | | hashTreeRoot SignedAggregateAndProof - struct | 42.734 us/op | 38.357 us/op | 1.11 | | hashTreeRoot SignedAggregateAndProof - tree | 28.002 us/op | 28.013 us/op | 1.00 | | hashTreeRoot SyncCommitteeMessage - struct | 9.1040 us/op | 9.2130 us/op | 0.99 | | hashTreeRoot SyncCommitteeMessage - tree | 6.1830 us/op | 6.2020 us/op | 1.00 | | hashTreeRoot SignedContributionAndProof - struct | 25.936 us/op | 26.256 us/op | 0.99 | | hashTreeRoot SignedContributionAndProof - tree | 19.600 us/op | 19.660 us/op | 1.00 | | hashTreeRoot SignedBeaconBlock - struct | 2.2724 ms/op | 2.2934 ms/op | 0.99 | | hashTreeRoot SignedBeaconBlock - tree | 1.6742 ms/op | 1.6835 ms/op | 0.99 | | hashTreeRoot Validator - struct | 12.205 us/op | 12.869 us/op | 0.95 | | hashTreeRoot Validator - tree | 10.573 us/op | 10.744 us/op | 0.98 | | BeaconState vc 300000 - hashTreeRoot tree | 3.5615 s/op | 3.6222 s/op | 0.98 | | BeaconState.historicalRoots vc 300000 - hashTreeRoot tree | 1.4610 us/op | 1.4440 us/op | 1.01 | | BeaconState.validators vc 300000 - hashTreeRoot tree | 3.4354 s/op | 3.5028 s/op | 0.98 | | BeaconState.balances vc 300000 - hashTreeRoot tree | 89.531 ms/op | 89.980 ms/op | 1.00 | | BeaconState.previousEpochParticipation vc 300000 - hashTreeRoot tree | 8.9879 ms/op | 9.1239 ms/op | 0.99 | | BeaconState.currentEpochParticipation vc 300000 - hashTreeRoot tree | 8.9714 ms/op | 9.0028 ms/op | 1.00 | | BeaconState.inactivityScores vc 300000 - hashTreeRoot tree | 84.899 ms/op | 87.670 ms/op | 0.97 | | hash64 x18 | 19.032 us/op | 19.771 us/op | 0.96 | | hashTwoObjects x18 | 17.567 us/op | 17.834 us/op | 0.99 | | hash64 x1740 | 1.7984 ms/op | 1.8379 ms/op | 0.98 | | hashTwoObjects x1740 | 1.6993 ms/op | 1.7099 ms/op | 0.99 | | hash64 x2700000 | 2.8043 s/op | 2.8362 s/op | 0.99 | | hashTwoObjects x2700000 | 2.6177 s/op | 2.6387 s/op | 0.99 | | get_exitEpoch - ContainerType | 210.00 ns/op | 214.00 ns/op | 0.98 | | get_exitEpoch - ContainerNodeStructType | 197.00 ns/op | 205.00 ns/op | 0.96 | | set_exitEpoch - ContainerType | 230.00 ns/op | 243.00 ns/op | 0.95 | | set_exitEpoch - ContainerNodeStructType | 207.00 ns/op | 216.00 ns/op | 0.96 | | get_pubkey - ContainerType | 977.00 ns/op | 1.0160 us/op | 0.96 | | get_pubkey - ContainerNodeStructType | 210.00 ns/op | 216.00 ns/op | 0.97 | | hashTreeRoot - ContainerType | 345.00 ns/op | 364.00 ns/op | 0.95 | | hashTreeRoot - ContainerNodeStructType | 403.00 ns/op | 417.00 ns/op | 0.97 | | createProof - ContainerType | 3.8370 us/op | 3.9110 us/op | 0.98 | | createProof - ContainerNodeStructType | 20.891 us/op | 21.854 us/op | 0.96 | | serialize - ContainerType | 1.9320 us/op | 1.9600 us/op | 0.99 | | serialize - ContainerNodeStructType | 1.4770 us/op | 1.5580 us/op | 0.95 | | set_exitEpoch_and_hashTreeRoot - ContainerType | 4.1560 us/op | 4.2400 us/op | 0.98 | | set_exitEpoch_and_hashTreeRoot - ContainerNodeStructType | 10.932 us/op | 11.165 us/op | 0.98 | | Array - for of | 4.9680 us/op | 5.0160 us/op | 0.99 | | Array - for(;;) | 4.3090 us/op | 4.2860 us/op | 1.01 | | basicListValue.readonlyValuesArray() | 3.5151 ms/op | 3.7355 ms/op | 0.94 | | basicListValue.readonlyValuesArray() + loop all | 3.6338 ms/op | 3.8060 ms/op | 0.95 | | compositeListValue.readonlyValuesArray() | 26.365 ms/op | 29.971 ms/op | 0.88 | | compositeListValue.readonlyValuesArray() + loop all | 25.625 ms/op | 26.486 ms/op | 0.97 | | Number64UintType - get balances list | 4.1803 ms/op | 4.1622 ms/op | 1.00 | | Number64UintType - set balances list | 8.9140 ms/op | 8.9199 ms/op | 1.00 | | Number64UintType - get and increase 10 then set | 38.808 ms/op | 39.258 ms/op | 0.99 | | Number64UintType - increase 10 using applyDelta | 15.362 ms/op | 15.080 ms/op | 1.02 | | Number64UintType - increase 10 using applyDeltaInBatch | 15.323 ms/op | 15.022 ms/op | 1.02 | | tree_newTreeFromUint64Deltas | 17.516 ms/op | 18.839 ms/op | 0.93 | | unsafeUint8ArrayToTree | 31.274 ms/op | 30.445 ms/op | 1.03 | | bitLength(50) | 234.00 ns/op | 222.00 ns/op | 1.05 | | bitLengthStr(50) | 231.00 ns/op | 231.00 ns/op | 1.00 | | bitLength(8000) | 220.00 ns/op | 218.00 ns/op | 1.01 | | bitLengthStr(8000) | 282.00 ns/op | 274.00 ns/op | 1.03 | | bitLength(250000) | 215.00 ns/op | 212.00 ns/op | 1.01 | | bitLengthStr(250000) | 320.00 ns/op | 326.00 ns/op | 0.98 | | floor - Math.floor (53) | 0.46405 ns/op | 0.46551 ns/op | 1.00 | | floor - << 0 (53) | 0.46486 ns/op | 0.46376 ns/op | 1.00 | | floor - Math.floor (512) | 0.46555 ns/op | 0.46403 ns/op | 1.00 | | floor - << 0 (512) | 0.47221 ns/op | 0.46484 ns/op | 1.02 | | fnIf(0) | 1.5460 ns/op | 1.5695 ns/op | 0.99 | | fnSwitch(0) | 2.4763 ns/op | 2.4737 ns/op | 1.00 | | fnObj(0) | 0.46507 ns/op | 0.46563 ns/op | 1.00 | | fnArr(0) | 0.46517 ns/op | 0.46579 ns/op | 1.00 | | fnIf(4) | 2.1719 ns/op | 2.1656 ns/op | 1.00 | | fnSwitch(4) | 2.4776 ns/op | 2.4772 ns/op | 1.00 | | fnObj(4) | 0.46418 ns/op | 0.46731 ns/op | 0.99 | | fnArr(4) | 0.46519 ns/op | 0.46483 ns/op | 1.00 | | fnIf(9) | 3.0988 ns/op | 3.0939 ns/op | 1.00 | | fnSwitch(9) | 2.4759 ns/op | 2.4745 ns/op | 1.00 | | fnObj(9) | 0.46452 ns/op | 0.47487 ns/op | 0.98 | | fnArr(9) | 0.46679 ns/op | 0.46597 ns/op | 1.00 | | Container {a,b,vec} - as struct x100000 | 46.610 us/op | 46.644 us/op | 1.00 | | Container {a,b,vec} - as tree x100000 | 372.15 us/op | 377.61 us/op | 0.99 | | Container {a,vec,b} - as struct x100000 | 77.542 us/op | 77.607 us/op | 1.00 | | Container {a,vec,b} - as tree x100000 | 402.95 us/op | 402.03 us/op | 1.00 | | get 2 props x1000000 - rawObject | 309.84 us/op | 316.73 us/op | 0.98 | | get 2 props x1000000 - proxy | 71.233 ms/op | 72.154 ms/op | 0.99 | | get 2 props x1000000 - customObj | 309.98 us/op | 310.06 us/op | 1.00 | | Simple object binary -> struct | 634.00 ns/op | 875.00 ns/op | 0.72 | | Simple object binary -> tree_backed | 1.6870 us/op | 2.3510 us/op | 0.72 | | Simple object struct -> tree_backed | 2.1840 us/op | 3.0270 us/op | 0.72 | | Simple object tree_backed -> struct | 1.9010 us/op | 2.5030 us/op | 0.76 | | Simple object struct -> binary | 904.00 ns/op | 1.2290 us/op | 0.74 | | Simple object tree_backed -> binary | 1.6150 us/op | 2.2560 us/op | 0.72 | | aggregationBits binary -> struct | 545.00 ns/op | 851.00 ns/op | 0.64 | | aggregationBits binary -> tree_backed | 2.0920 us/op | 2.5670 us/op | 0.81 | | aggregationBits struct -> tree_backed | 2.5160 us/op | 2.9930 us/op | 0.84 | | aggregationBits tree_backed -> struct | 1.0870 us/op | 1.3070 us/op | 0.83 | | aggregationBits struct -> binary | 748.00 ns/op | 892.00 ns/op | 0.84 | | aggregationBits tree_backed -> binary | 974.00 ns/op | 1.1240 us/op | 0.87 | | List(uint8) 100000 binary -> struct | 1.3176 ms/op | 1.2973 ms/op | 1.02 | | List(uint8) 100000 binary -> tree_backed | 87.206 us/op | 87.888 us/op | 0.99 | | List(uint8) 100000 struct -> tree_backed | 1.3224 ms/op | 1.3106 ms/op | 1.01 | | List(uint8) 100000 tree_backed -> struct | 971.52 us/op | 909.73 us/op | 1.07 | | List(uint8) 100000 struct -> binary | 1.2268 ms/op | 1.2663 ms/op | 0.97 | | List(uint8) 100000 tree_backed -> binary | 80.058 us/op | 86.600 us/op | 0.92 | | List(uint64Number) 100000 binary -> struct | 1.2362 ms/op | 1.1967 ms/op | 1.03 | | List(uint64Number) 100000 binary -> tree_backed | 3.3740 ms/op | 3.8277 ms/op | 0.88 | | List(uint64Number) 100000 struct -> tree_backed | 4.9603 ms/op | 4.8759 ms/op | 1.02 | | List(uint64Number) 100000 tree_backed -> struct | 2.0274 ms/op | 2.1130 ms/op | 0.96 | | List(uint64Number) 100000 struct -> binary | 1.4268 ms/op | 1.4985 ms/op | 0.95 | | List(uint64Number) 100000 tree_backed -> binary | 783.89 us/op | 794.69 us/op | 0.99 | | List(Uint64Bigint) 100000 binary -> struct | 3.4061 ms/op | 3.5556 ms/op | 0.96 | | List(Uint64Bigint) 100000 binary -> tree_backed | 3.0593 ms/op | 3.6937 ms/op | 0.83 | | List(Uint64Bigint) 100000 struct -> tree_backed | 5.5306 ms/op | 5.8381 ms/op | 0.95 | | List(Uint64Bigint) 100000 tree_backed -> struct | 4.4190 ms/op | 4.2898 ms/op | 1.03 | | List(Uint64Bigint) 100000 struct -> binary | 2.0803 ms/op | 2.0034 ms/op | 1.04 | | List(Uint64Bigint) 100000 tree_backed -> binary | 856.64 us/op | 850.29 us/op | 1.01 | | Vector(Root) 100000 binary -> struct | 38.642 ms/op | 36.099 ms/op | 1.07 | | Vector(Root) 100000 binary -> tree_backed | 38.265 ms/op | 36.947 ms/op | 1.04 | | Vector(Root) 100000 struct -> tree_backed | 42.118 ms/op | 37.538 ms/op | 1.12 | | Vector(Root) 100000 tree_backed -> struct | 48.397 ms/op | 43.513 ms/op | 1.11 | | Vector(Root) 100000 struct -> binary | 1.8510 ms/op | 1.8808 ms/op | 0.98 | | Vector(Root) 100000 tree_backed -> binary | 8.9122 ms/op | 8.4970 ms/op | 1.05 | | List(Validator) 100000 binary -> struct | 130.34 ms/op | 122.47 ms/op | 1.06 | | List(Validator) 100000 binary -> tree_backed | 334.59 ms/op | 342.36 ms/op | 0.98 | | List(Validator) 100000 struct -> tree_backed | 355.03 ms/op | 341.96 ms/op | 1.04 | | List(Validator) 100000 tree_backed -> struct | 214.69 ms/op | 202.84 ms/op | 1.06 | | List(Validator) 100000 struct -> binary | 30.297 ms/op | 30.150 ms/op | 1.00 | | List(Validator) 100000 tree_backed -> binary | 98.067 ms/op | 96.888 ms/op | 1.01 | | List(Validator-NS) 100000 binary -> struct | 119.05 ms/op | 124.45 ms/op | 0.96 | | List(Validator-NS) 100000 binary -> tree_backed | 167.16 ms/op | 182.68 ms/op | 0.92 | | List(Validator-NS) 100000 struct -> tree_backed | 208.50 ms/op | 217.09 ms/op | 0.96 | | List(Validator-NS) 100000 tree_backed -> struct | 173.02 ms/op | 172.69 ms/op | 1.00 | | List(Validator-NS) 100000 struct -> binary | 30.121 ms/op | 29.985 ms/op | 1.00 | | List(Validator-NS) 100000 tree_backed -> binary | 36.111 ms/op | 37.113 ms/op | 0.97 | | get epochStatuses - MutableVector | 92.336 us/op | 96.537 us/op | 0.96 | | get epochStatuses - ViewDU | 197.27 us/op | 197.48 us/op | 1.00 | | set epochStatuses - ListTreeView | 1.3737 ms/op | 1.4054 ms/op | 0.98 | | set epochStatuses - ListTreeView - set() | 438.38 us/op | 428.35 us/op | 1.02 | | set epochStatuses - ListTreeView - commit() | 407.54 us/op | 402.44 us/op | 1.01 | | bitstring | 643.17 ns/op | 651.06 ns/op | 0.99 | | bit mask | 14.106 ns/op | 14.039 ns/op | 1.00 | | struct - increase slot to 1000000 | 928.00 us/op | 927.90 us/op | 1.00 | | UintNumberType - increase slot to 1000000 | 28.490 ms/op | 28.581 ms/op | 1.00 | | UintBigintType - increase slot to 1000000 | 415.35 ms/op | 434.71 ms/op | 0.96 | | UintBigint8 x 100000 tree_deserialize | 5.4176 ms/op | 4.8324 ms/op | 1.12 | | UintBigint8 x 100000 tree_serialize | 1.1857 ms/op | 1.2064 ms/op | 0.98 | | UintBigint16 x 100000 tree_deserialize | 4.7475 ms/op | 4.7946 ms/op | 0.99 | | UintBigint16 x 100000 tree_serialize | 1.1514 ms/op | 1.2098 ms/op | 0.95 | | UintBigint32 x 100000 tree_deserialize | 5.1722 ms/op | 5.1175 ms/op | 1.01 | | UintBigint32 x 100000 tree_serialize | 1.2204 ms/op | 1.2605 ms/op | 0.97 | | UintBigint64 x 100000 tree_deserialize | 5.9032 ms/op | 5.7912 ms/op | 1.02 | | UintBigint64 x 100000 tree_serialize | 1.5902 ms/op | 1.6441 ms/op | 0.97 | | UintBigint8 x 100000 value_deserialize | 433.16 us/op | 438.98 us/op | 0.99 | | UintBigint8 x 100000 value_serialize | 593.02 us/op | 630.86 us/op | 0.94 | | UintBigint16 x 100000 value_deserialize | 464.61 us/op | 464.59 us/op | 1.00 | | UintBigint16 x 100000 value_serialize | 630.11 us/op | 673.37 us/op | 0.94 | | UintBigint32 x 100000 value_deserialize | 433.16 us/op | 433.55 us/op | 1.00 | | UintBigint32 x 100000 value_serialize | 625.46 us/op | 669.46 us/op | 0.93 | | UintBigint64 x 100000 value_deserialize | 470.64 us/op | 465.47 us/op | 1.01 | | UintBigint64 x 100000 value_serialize | 806.34 us/op | 834.70 us/op | 0.97 | | UintBigint8 x 100000 deserialize | 4.5304 ms/op | 4.5401 ms/op | 1.00 | | UintBigint8 x 100000 serialize | 1.4402 ms/op | 1.4414 ms/op | 1.00 | | UintBigint16 x 100000 deserialize | 4.4915 ms/op | 4.6339 ms/op | 0.97 | | UintBigint16 x 100000 serialize | 1.4805 ms/op | 1.4872 ms/op | 1.00 | | UintBigint32 x 100000 deserialize | 5.3903 ms/op | 5.3034 ms/op | 1.02 | | UintBigint32 x 100000 serialize | 2.8024 ms/op | 2.8481 ms/op | 0.98 | | UintBigint64 x 100000 deserialize | 3.8857 ms/op | 3.8555 ms/op | 1.01 | | UintBigint64 x 100000 serialize | 1.5071 ms/op | 1.5091 ms/op | 1.00 | | UintBigint128 x 100000 deserialize | 5.8825 ms/op | 5.8084 ms/op | 1.01 | | UintBigint128 x 100000 serialize | 17.339 ms/op | 17.754 ms/op | 0.98 | | UintBigint256 x 100000 deserialize | 11.137 ms/op | 10.832 ms/op | 1.03 | | UintBigint256 x 100000 serialize | 51.067 ms/op | 53.772 ms/op | 0.95 | | Slice from Uint8Array x25000 | 1.0017 ms/op | 1.0175 ms/op | 0.98 | | Slice from ArrayBuffer x25000 | 16.837 ms/op | 17.127 ms/op | 0.98 | | Slice from ArrayBuffer x25000 + new Uint8Array | 16.865 ms/op | 18.111 ms/op | 0.93 | | Copy Uint8Array 100000 iterate | 808.13 us/op | 805.02 us/op | 1.00 | | Copy Uint8Array 100000 slice | 90.360 us/op | 92.814 us/op | 0.97 | | Copy Uint8Array 100000 Uint8Array.prototype.slice.call | 90.496 us/op | 92.630 us/op | 0.98 | | Copy Buffer 100000 Uint8Array.prototype.slice.call | 90.689 us/op | 93.353 us/op | 0.97 | | Copy Uint8Array 100000 slice + set | 148.37 us/op | 157.13 us/op | 0.94 | | Copy Uint8Array 100000 subarray + set | 90.448 us/op | 93.283 us/op | 0.97 | | Copy Uint8Array 100000 slice arrayBuffer | 90.894 us/op | 93.101 us/op | 0.98 | | Uint64 deserialize 100000 - iterate Uint8Array | 1.7358 ms/op | 1.8103 ms/op | 0.96 | | Uint64 deserialize 100000 - by Uint32A | 1.7224 ms/op | 1.7554 ms/op | 0.98 | | Uint64 deserialize 100000 - by DataView.getUint32 x2 | 1.7152 ms/op | 1.7532 ms/op | 0.98 | | Uint64 deserialize 100000 - by DataView.getBigUint64 | 4.8310 ms/op | 4.8392 ms/op | 1.00 | | Uint64 deserialize 100000 - by byte | 43.239 ms/op | 43.326 ms/op | 1.00 |

by benchmarkbot/action