ChainSafe / ssz

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

fix: update changelog ordering #342

Closed wemeetagain closed 7 months ago

wemeetagain commented 7 months ago

Motivation

Description

github-actions[bot] commented 7 months ago

Performance Report

✔️ no performance regression detected

Full benchmark results | Benchmark suite | Current: 1e4b3594ab1b208987a2d951b79793b6c16c9107 | Previous: f96814a9bd8680c6a17987b5585950e425292bd2 | Ratio | |-|-|-|-| | digestTwoHashObjects 50023 times | 47.868 ms/op | 48.101 ms/op | 1.00 | | digest64 50023 times | 49.664 ms/op | 48.899 ms/op | 1.02 | | digest 50023 times | 49.619 ms/op | 49.188 ms/op | 1.01 | | input length 32 | 1.1830 us/op | 1.1510 us/op | 1.03 | | input length 64 | 1.2970 us/op | 1.2830 us/op | 1.01 | | input length 128 | 2.2250 us/op | 2.2110 us/op | 1.01 | | input length 256 | 3.3190 us/op | 3.3010 us/op | 1.01 | | input length 512 | 5.5990 us/op | 5.3850 us/op | 1.04 | | input length 1024 | 10.753 us/op | 10.710 us/op | 1.00 | | digest 1000000 times | 795.84 ms/op | 782.91 ms/op | 1.02 | | hashObjectToByteArray 50023 times | 1.4601 ms/op | 1.4228 ms/op | 1.03 | | byteArrayToHashObject 50023 times | 1.7055 ms/op | 1.6522 ms/op | 1.03 | | getGindicesAtDepth | 4.0260 us/op | 3.9230 us/op | 1.03 | | iterateAtDepth | 8.7600 us/op | 8.4010 us/op | 1.04 | | getGindexBits | 434.00 ns/op | 400.00 ns/op | 1.08 | | gindexIterator | 1.0090 us/op | 961.00 ns/op | 1.05 | | hash 2 Uint8Array 2250026 times - as-sha256 | 2.2722 s/op | 2.2355 s/op | 1.02 | | hashTwoObjects 2250026 times - as-sha256 | 2.1506 s/op | 2.1470 s/op | 1.00 | | hash 2 Uint8Array 2250026 times - noble | 5.0311 s/op | 4.7989 s/op | 1.05 | | hashTwoObjects 2250026 times - noble | 7.0356 s/op | 6.7888 s/op | 1.04 | | getNodeH() x7812.5 avg hindex | 14.629 us/op | 14.532 us/op | 1.01 | | getNodeH() x7812.5 index 0 | 5.1210 us/op | 5.1100 us/op | 1.00 | | getNodeH() x7812.5 index 7 | 5.1010 us/op | 5.1370 us/op | 0.99 | | getNodeH() x7812.5 index 7 with key array | 5.1700 us/op | 5.0890 us/op | 1.02 | | new LeafNode() x7812.5 | 113.04 us/op | 116.66 us/op | 0.97 | | multiproof - depth 15, 1 requested leaves | 9.5270 us/op | 9.8540 us/op | 0.97 | | tree offset multiproof - depth 15, 1 requested leaves | 21.867 us/op | 20.984 us/op | 1.04 | | compact multiproof - depth 15, 1 requested leaves | 5.9170 us/op | 4.6470 us/op | 1.27 | | multiproof - depth 15, 2 requested leaves | 13.712 us/op | 13.027 us/op | 1.05 | | tree offset multiproof - depth 15, 2 requested leaves | 25.014 us/op | 23.655 us/op | 1.06 | | compact multiproof - depth 15, 2 requested leaves | 3.5090 us/op | 3.4970 us/op | 1.00 | | multiproof - depth 15, 3 requested leaves | 19.122 us/op | 18.343 us/op | 1.04 | | tree offset multiproof - depth 15, 3 requested leaves | 31.280 us/op | 30.976 us/op | 1.01 | | compact multiproof - depth 15, 3 requested leaves | 5.3020 us/op | 4.7340 us/op | 1.12 | | multiproof - depth 15, 4 requested leaves | 26.701 us/op | 23.834 us/op | 1.12 | | tree offset multiproof - depth 15, 4 requested leaves | 40.372 us/op | 37.570 us/op | 1.07 | | compact multiproof - depth 15, 4 requested leaves | 5.9410 us/op | 5.5600 us/op | 1.07 | | packedRootsBytesToLeafNodes bytes 4000 offset 0 | 2.0740 us/op | 2.0340 us/op | 1.02 | | packedRootsBytesToLeafNodes bytes 4000 offset 1 | 2.1120 us/op | 2.0290 us/op | 1.04 | | packedRootsBytesToLeafNodes bytes 4000 offset 2 | 2.0640 us/op | 2.0350 us/op | 1.01 | | packedRootsBytesToLeafNodes bytes 4000 offset 3 | 2.0900 us/op | 1.9920 us/op | 1.05 | | subtreeFillToContents depth 40 count 250000 | 44.198 ms/op | 45.179 ms/op | 0.98 | | setRoot - gindexBitstring | 8.1243 ms/op | 8.6264 ms/op | 0.94 | | setRoot - gindex | 8.5870 ms/op | 9.3114 ms/op | 0.92 | | getRoot - gindexBitstring | 2.6201 ms/op | 2.6048 ms/op | 1.01 | | getRoot - gindex | 3.3290 ms/op | 3.3480 ms/op | 0.99 | | getHashObject then setHashObject | 9.6640 ms/op | 10.431 ms/op | 0.93 | | setNodeWithFn | 8.2570 ms/op | 9.3371 ms/op | 0.88 | | getNodeAtDepth depth 0 x100000 | 1.1451 ms/op | 1.1449 ms/op | 1.00 | | setNodeAtDepth depth 0 x100000 | 2.4122 ms/op | 2.6184 ms/op | 0.92 | | getNodesAtDepth depth 0 x100000 | 1.0838 ms/op | 1.1078 ms/op | 0.98 | | setNodesAtDepth depth 0 x100000 | 1.4847 ms/op | 1.4866 ms/op | 1.00 | | getNodeAtDepth depth 1 x100000 | 1.2066 ms/op | 1.2058 ms/op | 1.00 | | setNodeAtDepth depth 1 x100000 | 5.3305 ms/op | 5.8729 ms/op | 0.91 | | getNodesAtDepth depth 1 x100000 | 1.2096 ms/op | 1.2072 ms/op | 1.00 | | setNodesAtDepth depth 1 x100000 | 4.4073 ms/op | 4.8121 ms/op | 0.92 | | getNodeAtDepth depth 2 x100000 | 1.4871 ms/op | 1.4839 ms/op | 1.00 | | setNodeAtDepth depth 2 x100000 | 9.1275 ms/op | 9.8288 ms/op | 0.93 | | getNodesAtDepth depth 2 x100000 | 19.998 ms/op | 20.146 ms/op | 0.99 | | setNodesAtDepth depth 2 x100000 | 15.213 ms/op | 13.611 ms/op | 1.12 | | tree.getNodesAtDepth - gindexes | 6.0932 ms/op | 6.3648 ms/op | 0.96 | | tree.getNodesAtDepth - push all nodes | 1.7735 ms/op | 2.1975 ms/op | 0.81 | | tree.getNodesAtDepth - navigation | 158.75 us/op | 157.51 us/op | 1.01 | | tree.setNodesAtDepth - indexes | 376.40 us/op | 378.03 us/op | 1.00 | | set at depth 8 | 489.00 ns/op | 512.00 ns/op | 0.96 | | set at depth 16 | 622.00 ns/op | 661.00 ns/op | 0.94 | | set at depth 32 | 936.00 ns/op | 1.0520 us/op | 0.89 | | iterateNodesAtDepth 8 256 | 13.349 us/op | 14.353 us/op | 0.93 | | getNodesAtDepth 8 256 | 3.3710 us/op | 3.5090 us/op | 0.96 | | iterateNodesAtDepth 16 65536 | 4.3246 ms/op | 4.4654 ms/op | 0.97 | | getNodesAtDepth 16 65536 | 1.5861 ms/op | 1.9994 ms/op | 0.79 | | iterateNodesAtDepth 32 250000 | 15.683 ms/op | 16.725 ms/op | 0.94 | | getNodesAtDepth 32 250000 | 4.2292 ms/op | 4.7890 ms/op | 0.88 | | iterateNodesAtDepth 40 250000 | 17.476 ms/op | 16.703 ms/op | 1.05 | | getNodesAtDepth 40 250000 | 4.2590 ms/op | 4.6489 ms/op | 0.92 | | 250k validators | 7.1645 s/op | 7.4809 s/op | 0.96 | | bitlist bytes to struct (120,90) | 603.00 ns/op | 641.00 ns/op | 0.94 | | bitlist bytes to tree (120,90) | 2.2620 us/op | 2.5620 us/op | 0.88 | | bitlist bytes to struct (2048,2048) | 1.0590 us/op | 1.0790 us/op | 0.98 | | bitlist bytes to tree (2048,2048) | 3.6060 us/op | 4.0640 us/op | 0.89 | | ByteListType - deserialize | 8.9888 ms/op | 8.7376 ms/op | 1.03 | | BasicListType - deserialize | 7.5863 ms/op | 9.7508 ms/op | 0.78 | | ByteListType - serialize | 8.7277 ms/op | 8.4041 ms/op | 1.04 | | BasicListType - serialize | 10.621 ms/op | 10.877 ms/op | 0.98 | | BasicListType - tree_convertToStruct | 22.439 ms/op | 24.625 ms/op | 0.91 | | List[uint8, 68719476736] len 300000 ViewDU.getAll() + iterate | 4.3501 ms/op | 4.3224 ms/op | 1.01 | | List[uint8, 68719476736] len 300000 ViewDU.get(i) | 4.1371 ms/op | 4.1474 ms/op | 1.00 | | Array.push len 300000 empty Array - number | 6.3913 ms/op | 6.1982 ms/op | 1.03 | | Array.set len 300000 from new Array - number | 1.7817 ms/op | 1.6530 ms/op | 1.08 | | Array.set len 300000 - number | 6.2180 ms/op | 5.1804 ms/op | 1.20 | | Uint8Array.set len 300000 | 218.85 us/op | 206.40 us/op | 1.06 | | Uint32Array.set len 300000 | 311.58 us/op | 283.95 us/op | 1.10 | | Container({a: uint8, b: uint8}) getViewDU x300000 | 20.329 ms/op | 20.446 ms/op | 0.99 | | ContainerNodeStruct({a: uint8, b: uint8}) getViewDU x300000 | 10.332 ms/op | 9.2396 ms/op | 1.12 | | List(Container) len 300000 ViewDU.getAllReadonly() + iterate | 252.11 ms/op | 254.64 ms/op | 0.99 | | List(Container) len 300000 ViewDU.getAllReadonlyValues() + iterate | 298.91 ms/op | 264.93 ms/op | 1.13 | | List(Container) len 300000 ViewDU.get(i) | 6.7922 ms/op | 6.5003 ms/op | 1.04 | | List(Container) len 300000 ViewDU.getReadonly(i) | 6.7096 ms/op | 6.7169 ms/op | 1.00 | | List(ContainerNodeStruct) len 300000 ViewDU.getAllReadonly() + iterate | 39.554 ms/op | 35.508 ms/op | 1.11 | | List(ContainerNodeStruct) len 300000 ViewDU.getAllReadonlyValues() + iterate | 5.1385 ms/op | 5.8650 ms/op | 0.88 | | List(ContainerNodeStruct) len 300000 ViewDU.get(i) | 6.1565 ms/op | 6.2073 ms/op | 0.99 | | List(ContainerNodeStruct) len 300000 ViewDU.getReadonly(i) | 6.2831 ms/op | 6.1593 ms/op | 1.02 | | Array.push len 300000 empty Array - object | 6.2043 ms/op | 5.8099 ms/op | 1.07 | | Array.set len 300000 from new Array - object | 1.8734 ms/op | 1.8525 ms/op | 1.01 | | Array.set len 300000 - object | 6.2670 ms/op | 5.3452 ms/op | 1.17 | | cachePermanentRootStruct no cache | 9.3180 us/op | 8.8280 us/op | 1.06 | | cachePermanentRootStruct with cache | 235.00 ns/op | 218.00 ns/op | 1.08 | | epochParticipation len 250000 rws 7813 | 2.3178 ms/op | 2.2694 ms/op | 1.02 | | deserialize Attestation - tree | 2.9820 us/op | 2.8800 us/op | 1.04 | | deserialize Attestation - struct | 2.1980 us/op | 1.9230 us/op | 1.14 | | deserialize SignedAggregateAndProof - tree | 3.7860 us/op | 3.5960 us/op | 1.05 | | deserialize SignedAggregateAndProof - struct | 3.2030 us/op | 3.0130 us/op | 1.06 | | deserialize SyncCommitteeMessage - tree | 1.1560 us/op | 1.0780 us/op | 1.07 | | deserialize SyncCommitteeMessage - struct | 1.2810 us/op | 1.1550 us/op | 1.11 | | deserialize SignedContributionAndProof - tree | 1.9630 us/op | 1.8810 us/op | 1.04 | | deserialize SignedContributionAndProof - struct | 2.6510 us/op | 2.3790 us/op | 1.11 | | deserialize SignedBeaconBlock - tree | 220.85 us/op | 204.00 us/op | 1.08 | | deserialize SignedBeaconBlock - struct | 131.43 us/op | 125.63 us/op | 1.05 | | BeaconState vc 300000 - deserialize tree | 715.04 ms/op | 679.47 ms/op | 1.05 | | BeaconState vc 300000 - serialize tree | 111.76 ms/op | 122.49 ms/op | 0.91 | | BeaconState.historicalRoots vc 300000 - deserialize tree | 875.00 ns/op | 820.00 ns/op | 1.07 | | BeaconState.historicalRoots vc 300000 - serialize tree | 861.00 ns/op | 818.00 ns/op | 1.05 | | BeaconState.validators vc 300000 - deserialize tree | 651.68 ms/op | 640.22 ms/op | 1.02 | | BeaconState.validators vc 300000 - serialize tree | 136.92 ms/op | 141.37 ms/op | 0.97 | | BeaconState.balances vc 300000 - deserialize tree | 24.095 ms/op | 23.898 ms/op | 1.01 | | BeaconState.balances vc 300000 - serialize tree | 2.7634 ms/op | 3.5261 ms/op | 0.78 | | BeaconState.previousEpochParticipation vc 300000 - deserialize tree | 332.71 us/op | 510.55 us/op | 0.65 | | BeaconState.previousEpochParticipation vc 300000 - serialize tree | 263.96 us/op | 275.45 us/op | 0.96 | | BeaconState.currentEpochParticipation vc 300000 - deserialize tree | 350.65 us/op | 524.47 us/op | 0.67 | | BeaconState.currentEpochParticipation vc 300000 - serialize tree | 261.64 us/op | 277.39 us/op | 0.94 | | BeaconState.inactivityScores vc 300000 - deserialize tree | 22.982 ms/op | 24.037 ms/op | 0.96 | | BeaconState.inactivityScores vc 300000 - serialize tree | 4.3503 ms/op | 2.7484 ms/op | 1.58 | | hashTreeRoot Attestation - struct | 30.274 us/op | 27.175 us/op | 1.11 | | hashTreeRoot Attestation - tree | 18.255 us/op | 18.265 us/op | 1.00 | | hashTreeRoot SignedAggregateAndProof - struct | 42.901 us/op | 38.357 us/op | 1.12 | | hashTreeRoot SignedAggregateAndProof - tree | 28.702 us/op | 28.013 us/op | 1.02 | | hashTreeRoot SyncCommitteeMessage - struct | 10.529 us/op | 9.2130 us/op | 1.14 | | hashTreeRoot SyncCommitteeMessage - tree | 6.2510 us/op | 6.2020 us/op | 1.01 | | hashTreeRoot SignedContributionAndProof - struct | 29.266 us/op | 26.256 us/op | 1.11 | | hashTreeRoot SignedContributionAndProof - tree | 21.085 us/op | 19.660 us/op | 1.07 | | hashTreeRoot SignedBeaconBlock - struct | 2.5863 ms/op | 2.2934 ms/op | 1.13 | | hashTreeRoot SignedBeaconBlock - tree | 1.6906 ms/op | 1.6835 ms/op | 1.00 | | hashTreeRoot Validator - struct | 13.935 us/op | 12.869 us/op | 1.08 | | hashTreeRoot Validator - tree | 11.900 us/op | 10.744 us/op | 1.11 | | BeaconState vc 300000 - hashTreeRoot tree | 3.7375 s/op | 3.6222 s/op | 1.03 | | BeaconState.historicalRoots vc 300000 - hashTreeRoot tree | 1.5390 us/op | 1.4440 us/op | 1.07 | | BeaconState.validators vc 300000 - hashTreeRoot tree | 3.5815 s/op | 3.5028 s/op | 1.02 | | BeaconState.balances vc 300000 - hashTreeRoot tree | 90.398 ms/op | 89.980 ms/op | 1.00 | | BeaconState.previousEpochParticipation vc 300000 - hashTreeRoot tree | 8.9892 ms/op | 9.1239 ms/op | 0.99 | | BeaconState.currentEpochParticipation vc 300000 - hashTreeRoot tree | 8.9918 ms/op | 9.0028 ms/op | 1.00 | | BeaconState.inactivityScores vc 300000 - hashTreeRoot tree | 82.618 ms/op | 87.670 ms/op | 0.94 | | hash64 x18 | 20.331 us/op | 19.771 us/op | 1.03 | | hashTwoObjects x18 | 18.400 us/op | 17.834 us/op | 1.03 | | hash64 x1740 | 1.8671 ms/op | 1.8379 ms/op | 1.02 | | hashTwoObjects x1740 | 1.7507 ms/op | 1.7099 ms/op | 1.02 | | hash64 x2700000 | 2.9456 s/op | 2.8362 s/op | 1.04 | | hashTwoObjects x2700000 | 2.6638 s/op | 2.6387 s/op | 1.01 | | get_exitEpoch - ContainerType | 238.00 ns/op | 214.00 ns/op | 1.11 | | get_exitEpoch - ContainerNodeStructType | 227.00 ns/op | 205.00 ns/op | 1.11 | | set_exitEpoch - ContainerType | 268.00 ns/op | 243.00 ns/op | 1.10 | | set_exitEpoch - ContainerNodeStructType | 223.00 ns/op | 216.00 ns/op | 1.03 | | get_pubkey - ContainerType | 1.1580 us/op | 1.0160 us/op | 1.14 | | get_pubkey - ContainerNodeStructType | 230.00 ns/op | 216.00 ns/op | 1.06 | | hashTreeRoot - ContainerType | 412.00 ns/op | 364.00 ns/op | 1.13 | | hashTreeRoot - ContainerNodeStructType | 475.00 ns/op | 417.00 ns/op | 1.14 | | createProof - ContainerType | 4.6380 us/op | 3.9110 us/op | 1.19 | | createProof - ContainerNodeStructType | 24.326 us/op | 21.854 us/op | 1.11 | | serialize - ContainerType | 2.2250 us/op | 1.9600 us/op | 1.14 | | serialize - ContainerNodeStructType | 1.6440 us/op | 1.5580 us/op | 1.06 | | set_exitEpoch_and_hashTreeRoot - ContainerType | 4.2730 us/op | 4.2400 us/op | 1.01 | | set_exitEpoch_and_hashTreeRoot - ContainerNodeStructType | 11.744 us/op | 11.165 us/op | 1.05 | | Array - for of | 5.9260 us/op | 5.0160 us/op | 1.18 | | Array - for(;;) | 5.2700 us/op | 4.2860 us/op | 1.23 | | basicListValue.readonlyValuesArray() | 4.2645 ms/op | 3.7355 ms/op | 1.14 | | basicListValue.readonlyValuesArray() + loop all | 3.6226 ms/op | 3.8060 ms/op | 0.95 | | compositeListValue.readonlyValuesArray() | 25.857 ms/op | 29.971 ms/op | 0.86 | | compositeListValue.readonlyValuesArray() + loop all | 22.568 ms/op | 26.486 ms/op | 0.85 | | Number64UintType - get balances list | 4.3899 ms/op | 4.1622 ms/op | 1.05 | | Number64UintType - set balances list | 11.036 ms/op | 8.9199 ms/op | 1.24 | | Number64UintType - get and increase 10 then set | 39.677 ms/op | 39.258 ms/op | 1.01 | | Number64UintType - increase 10 using applyDelta | 17.022 ms/op | 15.080 ms/op | 1.13 | | Number64UintType - increase 10 using applyDeltaInBatch | 17.037 ms/op | 15.022 ms/op | 1.13 | | tree_newTreeFromUint64Deltas | 18.035 ms/op | 18.839 ms/op | 0.96 | | unsafeUint8ArrayToTree | 32.680 ms/op | 30.445 ms/op | 1.07 | | bitLength(50) | 231.00 ns/op | 222.00 ns/op | 1.04 | | bitLengthStr(50) | 255.00 ns/op | 231.00 ns/op | 1.10 | | bitLength(8000) | 232.00 ns/op | 218.00 ns/op | 1.06 | | bitLengthStr(8000) | 296.00 ns/op | 274.00 ns/op | 1.08 | | bitLength(250000) | 234.00 ns/op | 212.00 ns/op | 1.10 | | bitLengthStr(250000) | 355.00 ns/op | 326.00 ns/op | 1.09 | | floor - Math.floor (53) | 0.46407 ns/op | 0.46551 ns/op | 1.00 | | floor - << 0 (53) | 0.46524 ns/op | 0.46376 ns/op | 1.00 | | floor - Math.floor (512) | 0.46882 ns/op | 0.46403 ns/op | 1.01 | | floor - << 0 (512) | 0.46742 ns/op | 0.46484 ns/op | 1.01 | | fnIf(0) | 1.5470 ns/op | 1.5695 ns/op | 0.99 | | fnSwitch(0) | 2.4743 ns/op | 2.4737 ns/op | 1.00 | | fnObj(0) | 0.46628 ns/op | 0.46563 ns/op | 1.00 | | fnArr(0) | 0.47387 ns/op | 0.46579 ns/op | 1.02 | | fnIf(4) | 2.1672 ns/op | 2.1656 ns/op | 1.00 | | fnSwitch(4) | 2.4762 ns/op | 2.4772 ns/op | 1.00 | | fnObj(4) | 0.46466 ns/op | 0.46731 ns/op | 0.99 | | fnArr(4) | 0.46486 ns/op | 0.46483 ns/op | 1.00 | | fnIf(9) | 3.0977 ns/op | 3.0939 ns/op | 1.00 | | fnSwitch(9) | 2.4746 ns/op | 2.4745 ns/op | 1.00 | | fnObj(9) | 0.46528 ns/op | 0.47487 ns/op | 0.98 | | fnArr(9) | 0.46661 ns/op | 0.46597 ns/op | 1.00 | | Container {a,b,vec} - as struct x100000 | 46.647 us/op | 46.644 us/op | 1.00 | | Container {a,b,vec} - as tree x100000 | 371.42 us/op | 377.61 us/op | 0.98 | | Container {a,vec,b} - as struct x100000 | 77.551 us/op | 77.607 us/op | 1.00 | | Container {a,vec,b} - as tree x100000 | 402.63 us/op | 402.03 us/op | 1.00 | | get 2 props x1000000 - rawObject | 309.54 us/op | 316.73 us/op | 0.98 | | get 2 props x1000000 - proxy | 72.225 ms/op | 72.154 ms/op | 1.00 | | get 2 props x1000000 - customObj | 310.11 us/op | 310.06 us/op | 1.00 | | Simple object binary -> struct | 884.00 ns/op | 875.00 ns/op | 1.01 | | Simple object binary -> tree_backed | 2.4290 us/op | 2.3510 us/op | 1.03 | | Simple object struct -> tree_backed | 3.0990 us/op | 3.0270 us/op | 1.02 | | Simple object tree_backed -> struct | 2.5760 us/op | 2.5030 us/op | 1.03 | | Simple object struct -> binary | 1.2550 us/op | 1.2290 us/op | 1.02 | | Simple object tree_backed -> binary | 2.2860 us/op | 2.2560 us/op | 1.01 | | aggregationBits binary -> struct | 878.00 ns/op | 851.00 ns/op | 1.03 | | aggregationBits binary -> tree_backed | 2.6340 us/op | 2.5670 us/op | 1.03 | | aggregationBits struct -> tree_backed | 3.0300 us/op | 2.9930 us/op | 1.01 | | aggregationBits tree_backed -> struct | 1.3120 us/op | 1.3070 us/op | 1.00 | | aggregationBits struct -> binary | 900.00 ns/op | 892.00 ns/op | 1.01 | | aggregationBits tree_backed -> binary | 1.1390 us/op | 1.1240 us/op | 1.01 | | List(uint8) 100000 binary -> struct | 1.3669 ms/op | 1.2973 ms/op | 1.05 | | List(uint8) 100000 binary -> tree_backed | 93.659 us/op | 87.888 us/op | 1.07 | | List(uint8) 100000 struct -> tree_backed | 1.4147 ms/op | 1.3106 ms/op | 1.08 | | List(uint8) 100000 tree_backed -> struct | 930.46 us/op | 909.73 us/op | 1.02 | | List(uint8) 100000 struct -> binary | 1.2117 ms/op | 1.2663 ms/op | 0.96 | | List(uint8) 100000 tree_backed -> binary | 84.158 us/op | 86.600 us/op | 0.97 | | List(uint64Number) 100000 binary -> struct | 1.2451 ms/op | 1.1967 ms/op | 1.04 | | List(uint64Number) 100000 binary -> tree_backed | 3.2613 ms/op | 3.8277 ms/op | 0.85 | | List(uint64Number) 100000 struct -> tree_backed | 5.1855 ms/op | 4.8759 ms/op | 1.06 | | List(uint64Number) 100000 tree_backed -> struct | 2.0856 ms/op | 2.1130 ms/op | 0.99 | | List(uint64Number) 100000 struct -> binary | 1.5678 ms/op | 1.4985 ms/op | 1.05 | | List(uint64Number) 100000 tree_backed -> binary | 792.16 us/op | 794.69 us/op | 1.00 | | List(Uint64Bigint) 100000 binary -> struct | 3.4775 ms/op | 3.5556 ms/op | 0.98 | | List(Uint64Bigint) 100000 binary -> tree_backed | 3.9492 ms/op | 3.6937 ms/op | 1.07 | | List(Uint64Bigint) 100000 struct -> tree_backed | 6.0773 ms/op | 5.8381 ms/op | 1.04 | | List(Uint64Bigint) 100000 tree_backed -> struct | 4.3855 ms/op | 4.2898 ms/op | 1.02 | | List(Uint64Bigint) 100000 struct -> binary | 2.0743 ms/op | 2.0034 ms/op | 1.04 | | List(Uint64Bigint) 100000 tree_backed -> binary | 898.51 us/op | 850.29 us/op | 1.06 | | Vector(Root) 100000 binary -> struct | 37.302 ms/op | 36.099 ms/op | 1.03 | | Vector(Root) 100000 binary -> tree_backed | 38.200 ms/op | 36.947 ms/op | 1.03 | | Vector(Root) 100000 struct -> tree_backed | 40.260 ms/op | 37.538 ms/op | 1.07 | | Vector(Root) 100000 tree_backed -> struct | 48.100 ms/op | 43.513 ms/op | 1.11 | | Vector(Root) 100000 struct -> binary | 1.8686 ms/op | 1.8808 ms/op | 0.99 | | Vector(Root) 100000 tree_backed -> binary | 8.8577 ms/op | 8.4970 ms/op | 1.04 | | List(Validator) 100000 binary -> struct | 130.55 ms/op | 122.47 ms/op | 1.07 | | List(Validator) 100000 binary -> tree_backed | 339.40 ms/op | 342.36 ms/op | 0.99 | | List(Validator) 100000 struct -> tree_backed | 359.07 ms/op | 341.96 ms/op | 1.05 | | List(Validator) 100000 tree_backed -> struct | 208.41 ms/op | 202.84 ms/op | 1.03 | | List(Validator) 100000 struct -> binary | 29.857 ms/op | 30.150 ms/op | 0.99 | | List(Validator) 100000 tree_backed -> binary | 95.636 ms/op | 96.888 ms/op | 0.99 | | List(Validator-NS) 100000 binary -> struct | 120.07 ms/op | 124.45 ms/op | 0.96 | | List(Validator-NS) 100000 binary -> tree_backed | 187.06 ms/op | 182.68 ms/op | 1.02 | | List(Validator-NS) 100000 struct -> tree_backed | 218.01 ms/op | 217.09 ms/op | 1.00 | | List(Validator-NS) 100000 tree_backed -> struct | 172.40 ms/op | 172.69 ms/op | 1.00 | | List(Validator-NS) 100000 struct -> binary | 29.965 ms/op | 29.985 ms/op | 1.00 | | List(Validator-NS) 100000 tree_backed -> binary | 35.942 ms/op | 37.113 ms/op | 0.97 | | get epochStatuses - MutableVector | 99.414 us/op | 96.537 us/op | 1.03 | | get epochStatuses - ViewDU | 203.67 us/op | 197.48 us/op | 1.03 | | set epochStatuses - ListTreeView | 1.4360 ms/op | 1.4054 ms/op | 1.02 | | set epochStatuses - ListTreeView - set() | 438.81 us/op | 428.35 us/op | 1.02 | | set epochStatuses - ListTreeView - commit() | 402.71 us/op | 402.44 us/op | 1.00 | | bitstring | 640.60 ns/op | 651.06 ns/op | 0.98 | | bit mask | 14.293 ns/op | 14.039 ns/op | 1.02 | | struct - increase slot to 1000000 | 928.23 us/op | 927.90 us/op | 1.00 | | UintNumberType - increase slot to 1000000 | 28.215 ms/op | 28.581 ms/op | 0.99 | | UintBigintType - increase slot to 1000000 | 419.75 ms/op | 434.71 ms/op | 0.97 | | UintBigint8 x 100000 tree_deserialize | 4.7242 ms/op | 4.8324 ms/op | 0.98 | | UintBigint8 x 100000 tree_serialize | 1.1847 ms/op | 1.2064 ms/op | 0.98 | | UintBigint16 x 100000 tree_deserialize | 4.7158 ms/op | 4.7946 ms/op | 0.98 | | UintBigint16 x 100000 tree_serialize | 1.1479 ms/op | 1.2098 ms/op | 0.95 | | UintBigint32 x 100000 tree_deserialize | 5.6766 ms/op | 5.1175 ms/op | 1.11 | | UintBigint32 x 100000 tree_serialize | 1.2179 ms/op | 1.2605 ms/op | 0.97 | | UintBigint64 x 100000 tree_deserialize | 5.5249 ms/op | 5.7912 ms/op | 0.95 | | UintBigint64 x 100000 tree_serialize | 1.5956 ms/op | 1.6441 ms/op | 0.97 | | UintBigint8 x 100000 value_deserialize | 433.01 us/op | 438.98 us/op | 0.99 | | UintBigint8 x 100000 value_serialize | 588.21 us/op | 630.86 us/op | 0.93 | | UintBigint16 x 100000 value_deserialize | 464.67 us/op | 464.59 us/op | 1.00 | | UintBigint16 x 100000 value_serialize | 632.89 us/op | 673.37 us/op | 0.94 | | UintBigint32 x 100000 value_deserialize | 433.78 us/op | 433.55 us/op | 1.00 | | UintBigint32 x 100000 value_serialize | 629.75 us/op | 669.46 us/op | 0.94 | | UintBigint64 x 100000 value_deserialize | 465.77 us/op | 465.47 us/op | 1.00 | | UintBigint64 x 100000 value_serialize | 804.25 us/op | 834.70 us/op | 0.96 | | UintBigint8 x 100000 deserialize | 4.7100 ms/op | 4.5401 ms/op | 1.04 | | UintBigint8 x 100000 serialize | 1.5417 ms/op | 1.4414 ms/op | 1.07 | | UintBigint16 x 100000 deserialize | 4.9187 ms/op | 4.6339 ms/op | 1.06 | | UintBigint16 x 100000 serialize | 1.5750 ms/op | 1.4872 ms/op | 1.06 | | UintBigint32 x 100000 deserialize | 5.5079 ms/op | 5.3034 ms/op | 1.04 | | UintBigint32 x 100000 serialize | 2.8230 ms/op | 2.8481 ms/op | 0.99 | | UintBigint64 x 100000 deserialize | 3.7261 ms/op | 3.8555 ms/op | 0.97 | | UintBigint64 x 100000 serialize | 1.4968 ms/op | 1.5091 ms/op | 0.99 | | UintBigint128 x 100000 deserialize | 6.0984 ms/op | 5.8084 ms/op | 1.05 | | UintBigint128 x 100000 serialize | 18.669 ms/op | 17.754 ms/op | 1.05 | | UintBigint256 x 100000 deserialize | 11.265 ms/op | 10.832 ms/op | 1.04 | | UintBigint256 x 100000 serialize | 54.340 ms/op | 53.772 ms/op | 1.01 | | Slice from Uint8Array x25000 | 979.51 us/op | 1.0175 ms/op | 0.96 | | Slice from ArrayBuffer x25000 | 17.438 ms/op | 17.127 ms/op | 1.02 | | Slice from ArrayBuffer x25000 + new Uint8Array | 18.684 ms/op | 18.111 ms/op | 1.03 | | Copy Uint8Array 100000 iterate | 920.69 us/op | 805.02 us/op | 1.14 | | Copy Uint8Array 100000 slice | 125.03 us/op | 92.814 us/op | 1.35 | | Copy Uint8Array 100000 Uint8Array.prototype.slice.call | 142.51 us/op | 92.630 us/op | 1.54 | | Copy Buffer 100000 Uint8Array.prototype.slice.call | 124.92 us/op | 93.353 us/op | 1.34 | | Copy Uint8Array 100000 slice + set | 233.64 us/op | 157.13 us/op | 1.49 | | Copy Uint8Array 100000 subarray + set | 138.92 us/op | 93.283 us/op | 1.49 | | Copy Uint8Array 100000 slice arrayBuffer | 143.03 us/op | 93.101 us/op | 1.54 | | Uint64 deserialize 100000 - iterate Uint8Array | 1.7887 ms/op | 1.8103 ms/op | 0.99 | | Uint64 deserialize 100000 - by Uint32A | 1.7749 ms/op | 1.7554 ms/op | 1.01 | | Uint64 deserialize 100000 - by DataView.getUint32 x2 | 1.7848 ms/op | 1.7532 ms/op | 1.02 | | Uint64 deserialize 100000 - by DataView.getBigUint64 | 4.9601 ms/op | 4.8392 ms/op | 1.02 | | Uint64 deserialize 100000 - by byte | 43.318 ms/op | 43.326 ms/op | 1.00 |

by benchmarkbot/action