ChainSafe / ssz

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

feat: Add deneb to simpleserialize.com #362

Closed ensi321 closed 6 months ago

ensi321 commented 6 months ago
CLAassistant commented 6 months ago

CLA assistant check
All committers have signed the CLA.

github-actions[bot] commented 6 months ago

Performance Report

✔️ no performance regression detected

Full benchmark results | Benchmark suite | Current: ee2dea81cf1d20152ceeea2ff6264f87e8e9d88b | Previous: 9cf6991e7ece4e4002668f601ecb43bb8bd53f4e | Ratio | |-|-|-|-| | digestTwoHashObjects 50023 times | 47.838 ms/op | 48.285 ms/op | 0.99 | | digest64 50023 times | 49.375 ms/op | 49.639 ms/op | 0.99 | | digest 50023 times | 53.607 ms/op | 53.716 ms/op | 1.00 | | input length 32 | 1.4200 us/op | 1.4220 us/op | 1.00 | | input length 64 | 1.5450 us/op | 1.5230 us/op | 1.01 | | input length 128 | 2.5000 us/op | 2.5340 us/op | 0.99 | | input length 256 | 3.6040 us/op | 3.6590 us/op | 0.98 | | input length 512 | 5.8150 us/op | 5.9160 us/op | 0.98 | | input length 1024 | 11.063 us/op | 11.307 us/op | 0.98 | | digest 1000000 times | 861.92 ms/op | 873.45 ms/op | 0.99 | | hashObjectToByteArray 50023 times | 1.4258 ms/op | 1.4264 ms/op | 1.00 | | byteArrayToHashObject 50023 times | 2.6288 ms/op | 3.7377 ms/op | 0.70 | | getGindicesAtDepth | 4.9220 us/op | 5.0600 us/op | 0.97 | | iterateAtDepth | 10.122 us/op | 10.233 us/op | 0.99 | | getGindexBits | 535.00 ns/op | 562.00 ns/op | 0.95 | | gindexIterator | 1.2330 us/op | 1.2280 us/op | 1.00 | | hash 2 Uint8Array 2250026 times - as-sha256 | 2.3149 s/op | 2.3065 s/op | 1.00 | | hashTwoObjects 2250026 times - as-sha256 | 2.2592 s/op | 2.2279 s/op | 1.01 | | hash 2 Uint8Array 2250026 times - noble | 6.0241 s/op | 6.0080 s/op | 1.00 | | hashTwoObjects 2250026 times - noble | 6.9579 s/op | 7.0158 s/op | 0.99 | | getNodeH() x7812.5 avg hindex | 15.270 us/op | 15.272 us/op | 1.00 | | getNodeH() x7812.5 index 0 | 5.1470 us/op | 5.1960 us/op | 0.99 | | getNodeH() x7812.5 index 7 | 5.1180 us/op | 5.0980 us/op | 1.00 | | getNodeH() x7812.5 index 7 with key array | 5.3610 us/op | 5.1600 us/op | 1.04 | | new LeafNode() x7812.5 | 207.81 us/op | 207.11 us/op | 1.00 | | multiproof - depth 15, 1 requested leaves | 10.769 us/op | 10.608 us/op | 1.02 | | tree offset multiproof - depth 15, 1 requested leaves | 20.906 us/op | 21.220 us/op | 0.99 | | compact multiproof - depth 15, 1 requested leaves | 5.6990 us/op | 5.4640 us/op | 1.04 | | multiproof - depth 15, 2 requested leaves | 13.358 us/op | 13.836 us/op | 0.97 | | tree offset multiproof - depth 15, 2 requested leaves | 24.318 us/op | 24.816 us/op | 0.98 | | compact multiproof - depth 15, 2 requested leaves | 3.5610 us/op | 3.1640 us/op | 1.13 | | multiproof - depth 15, 3 requested leaves | 18.848 us/op | 18.999 us/op | 0.99 | | tree offset multiproof - depth 15, 3 requested leaves | 32.001 us/op | 32.057 us/op | 1.00 | | compact multiproof - depth 15, 3 requested leaves | 5.8400 us/op | 5.5440 us/op | 1.05 | | multiproof - depth 15, 4 requested leaves | 24.453 us/op | 24.858 us/op | 0.98 | | tree offset multiproof - depth 15, 4 requested leaves | 37.114 us/op | 39.442 us/op | 0.94 | | compact multiproof - depth 15, 4 requested leaves | 5.6170 us/op | 5.4290 us/op | 1.03 | | packedRootsBytesToLeafNodes bytes 4000 offset 0 | 2.0590 us/op | 2.0330 us/op | 1.01 | | packedRootsBytesToLeafNodes bytes 4000 offset 1 | 2.0500 us/op | 2.0190 us/op | 1.02 | | packedRootsBytesToLeafNodes bytes 4000 offset 2 | 2.0140 us/op | 2.0120 us/op | 1.00 | | packedRootsBytesToLeafNodes bytes 4000 offset 3 | 2.0510 us/op | 2.0140 us/op | 1.02 | | subtreeFillToContents depth 40 count 250000 | 45.535 ms/op | 46.683 ms/op | 0.98 | | setRoot - gindexBitstring | 8.0310 ms/op | 8.8775 ms/op | 0.90 | | setRoot - gindex | 8.3670 ms/op | 9.5630 ms/op | 0.87 | | getRoot - gindexBitstring | 2.3231 ms/op | 2.3965 ms/op | 0.97 | | getRoot - gindex | 3.1767 ms/op | 3.0536 ms/op | 1.04 | | getHashObject then setHashObject | 9.2572 ms/op | 10.551 ms/op | 0.88 | | setNodeWithFn | 7.9628 ms/op | 9.4797 ms/op | 0.84 | | getNodeAtDepth depth 0 x100000 | 1.1444 ms/op | 1.1445 ms/op | 1.00 | | setNodeAtDepth depth 0 x100000 | 2.3459 ms/op | 2.7071 ms/op | 0.87 | | getNodesAtDepth depth 0 x100000 | 1.0870 ms/op | 1.0835 ms/op | 1.00 | | setNodesAtDepth depth 0 x100000 | 1.4845 ms/op | 1.4853 ms/op | 1.00 | | getNodeAtDepth depth 1 x100000 | 1.2067 ms/op | 1.2076 ms/op | 1.00 | | setNodeAtDepth depth 1 x100000 | 5.1686 ms/op | 5.9761 ms/op | 0.86 | | getNodesAtDepth depth 1 x100000 | 1.2264 ms/op | 1.2101 ms/op | 1.01 | | setNodesAtDepth depth 1 x100000 | 4.3724 ms/op | 4.7749 ms/op | 0.92 | | getNodeAtDepth depth 2 x100000 | 1.4835 ms/op | 1.4843 ms/op | 1.00 | | setNodeAtDepth depth 2 x100000 | 8.9546 ms/op | 10.028 ms/op | 0.89 | | getNodesAtDepth depth 2 x100000 | 18.168 ms/op | 18.907 ms/op | 0.96 | | setNodesAtDepth depth 2 x100000 | 12.698 ms/op | 15.627 ms/op | 0.81 | | tree.getNodesAtDepth - gindexes | 5.5301 ms/op | 6.3417 ms/op | 0.87 | | tree.getNodesAtDepth - push all nodes | 1.7971 ms/op | 2.1973 ms/op | 0.82 | | tree.getNodesAtDepth - navigation | 157.01 us/op | 157.13 us/op | 1.00 | | tree.setNodesAtDepth - indexes | 365.36 us/op | 382.17 us/op | 0.96 | | set at depth 8 | 472.00 ns/op | 521.00 ns/op | 0.91 | | set at depth 16 | 599.00 ns/op | 679.00 ns/op | 0.88 | | set at depth 32 | 932.00 ns/op | 1.0670 us/op | 0.87 | | iterateNodesAtDepth 8 256 | 13.591 us/op | 14.517 us/op | 0.94 | | getNodesAtDepth 8 256 | 3.3600 us/op | 3.6240 us/op | 0.93 | | iterateNodesAtDepth 16 65536 | 4.3596 ms/op | 4.6303 ms/op | 0.94 | | getNodesAtDepth 16 65536 | 1.5751 ms/op | 2.0332 ms/op | 0.77 | | iterateNodesAtDepth 32 250000 | 15.859 ms/op | 16.556 ms/op | 0.96 | | getNodesAtDepth 32 250000 | 4.2156 ms/op | 4.7274 ms/op | 0.89 | | iterateNodesAtDepth 40 250000 | 16.443 ms/op | 16.251 ms/op | 1.01 | | getNodesAtDepth 40 250000 | 4.3664 ms/op | 4.7072 ms/op | 0.93 | | 250k validators | 7.1624 s/op | 7.7540 s/op | 0.92 | | bitlist bytes to struct (120,90) | 575.00 ns/op | 646.00 ns/op | 0.89 | | bitlist bytes to tree (120,90) | 2.2830 us/op | 2.6890 us/op | 0.85 | | bitlist bytes to struct (2048,2048) | 1.0040 us/op | 1.1300 us/op | 0.89 | | bitlist bytes to tree (2048,2048) | 3.6560 us/op | 3.9720 us/op | 0.92 | | ByteListType - deserialize | 8.2187 ms/op | 9.0002 ms/op | 0.91 | | BasicListType - deserialize | 8.0493 ms/op | 9.6526 ms/op | 0.83 | | ByteListType - serialize | 8.1997 ms/op | 8.1813 ms/op | 1.00 | | BasicListType - serialize | 10.974 ms/op | 11.206 ms/op | 0.98 | | BasicListType - tree_convertToStruct | 29.309 ms/op | 29.835 ms/op | 0.98 | | List[uint8, 68719476736] len 300000 ViewDU.getAll() + iterate | 4.0882 ms/op | 4.0826 ms/op | 1.00 | | List[uint8, 68719476736] len 300000 ViewDU.get(i) | 4.2209 ms/op | 4.1427 ms/op | 1.02 | | Array.push len 300000 empty Array - number | 6.4121 ms/op | 6.1768 ms/op | 1.04 | | Array.set len 300000 from new Array - number | 1.6429 ms/op | 1.6200 ms/op | 1.01 | | Array.set len 300000 - number | 5.2906 ms/op | 5.3222 ms/op | 0.99 | | Uint8Array.set len 300000 | 211.87 us/op | 211.16 us/op | 1.00 | | Uint32Array.set len 300000 | 289.98 us/op | 282.88 us/op | 1.03 | | Container({a: uint8, b: uint8}) getViewDU x300000 | 20.534 ms/op | 20.067 ms/op | 1.02 | | ContainerNodeStruct({a: uint8, b: uint8}) getViewDU x300000 | 9.3158 ms/op | 9.4835 ms/op | 0.98 | | List(Container) len 300000 ViewDU.getAllReadonly() + iterate | 210.69 ms/op | 206.96 ms/op | 1.02 | | List(Container) len 300000 ViewDU.getAllReadonlyValues() + iterate | 291.39 ms/op | 288.70 ms/op | 1.01 | | List(Container) len 300000 ViewDU.get(i) | 7.5482 ms/op | 6.8438 ms/op | 1.10 | | List(Container) len 300000 ViewDU.getReadonly(i) | 7.4165 ms/op | 6.3335 ms/op | 1.17 | | List(ContainerNodeStruct) len 300000 ViewDU.getAllReadonly() + iterate | 37.722 ms/op | 37.459 ms/op | 1.01 | | List(ContainerNodeStruct) len 300000 ViewDU.getAllReadonlyValues() + iterate | 5.2421 ms/op | 5.2030 ms/op | 1.01 | | List(ContainerNodeStruct) len 300000 ViewDU.get(i) | 6.1886 ms/op | 6.1396 ms/op | 1.01 | | List(ContainerNodeStruct) len 300000 ViewDU.getReadonly(i) | 6.1108 ms/op | 5.9703 ms/op | 1.02 | | Array.push len 300000 empty Array - object | 6.0843 ms/op | 6.0965 ms/op | 1.00 | | Array.set len 300000 from new Array - object | 1.9260 ms/op | 1.9658 ms/op | 0.98 | | Array.set len 300000 - object | 5.6074 ms/op | 5.4572 ms/op | 1.03 | | cachePermanentRootStruct no cache | 9.0110 us/op | 8.8750 us/op | 1.02 | | cachePermanentRootStruct with cache | 221.00 ns/op | 219.00 ns/op | 1.01 | | epochParticipation len 250000 rws 7813 | 2.3129 ms/op | 2.2825 ms/op | 1.01 | | deserialize Attestation - tree | 2.9450 us/op | 2.9240 us/op | 1.01 | | deserialize Attestation - struct | 2.0150 us/op | 2.0100 us/op | 1.00 | | deserialize SignedAggregateAndProof - tree | 3.6820 us/op | 3.7010 us/op | 0.99 | | deserialize SignedAggregateAndProof - struct | 2.9790 us/op | 3.0820 us/op | 0.97 | | deserialize SyncCommitteeMessage - tree | 1.1120 us/op | 1.1560 us/op | 0.96 | | deserialize SyncCommitteeMessage - struct | 1.2110 us/op | 1.1800 us/op | 1.03 | | deserialize SignedContributionAndProof - tree | 1.9090 us/op | 1.9350 us/op | 0.99 | | deserialize SignedContributionAndProof - struct | 2.5100 us/op | 2.4940 us/op | 1.01 | | deserialize SignedBeaconBlock - tree | 218.01 us/op | 214.98 us/op | 1.01 | | deserialize SignedBeaconBlock - struct | 131.34 us/op | 125.93 us/op | 1.04 | | BeaconState vc 300000 - deserialize tree | 580.43 ms/op | 565.72 ms/op | 1.03 | | BeaconState vc 300000 - serialize tree | 144.19 ms/op | 127.05 ms/op | 1.13 | | BeaconState.historicalRoots vc 300000 - deserialize tree | 827.00 ns/op | 853.00 ns/op | 0.97 | | BeaconState.historicalRoots vc 300000 - serialize tree | 706.00 ns/op | 681.00 ns/op | 1.04 | | BeaconState.validators vc 300000 - deserialize tree | 550.00 ms/op | 547.79 ms/op | 1.00 | | BeaconState.validators vc 300000 - serialize tree | 105.51 ms/op | 98.385 ms/op | 1.07 | | BeaconState.balances vc 300000 - deserialize tree | 19.754 ms/op | 23.017 ms/op | 0.86 | | BeaconState.balances vc 300000 - serialize tree | 3.5840 ms/op | 2.8993 ms/op | 1.24 | | BeaconState.previousEpochParticipation vc 300000 - deserialize tree | 458.94 us/op | 330.08 us/op | 1.39 | | BeaconState.previousEpochParticipation vc 300000 - serialize tree | 280.72 us/op | 269.52 us/op | 1.04 | | BeaconState.currentEpochParticipation vc 300000 - deserialize tree | 449.96 us/op | 333.11 us/op | 1.35 | | BeaconState.currentEpochParticipation vc 300000 - serialize tree | 274.93 us/op | 264.88 us/op | 1.04 | | BeaconState.inactivityScores vc 300000 - deserialize tree | 21.655 ms/op | 16.154 ms/op | 1.34 | | BeaconState.inactivityScores vc 300000 - serialize tree | 3.6468 ms/op | 3.4338 ms/op | 1.06 | | hashTreeRoot Attestation - struct | 32.094 us/op | 30.822 us/op | 1.04 | | hashTreeRoot Attestation - tree | 19.457 us/op | 18.097 us/op | 1.08 | | hashTreeRoot SignedAggregateAndProof - struct | 43.308 us/op | 42.596 us/op | 1.02 | | hashTreeRoot SignedAggregateAndProof - tree | 28.683 us/op | 28.453 us/op | 1.01 | | hashTreeRoot SyncCommitteeMessage - struct | 10.281 us/op | 10.025 us/op | 1.03 | | hashTreeRoot SyncCommitteeMessage - tree | 6.2540 us/op | 6.2560 us/op | 1.00 | | hashTreeRoot SignedContributionAndProof - struct | 30.095 us/op | 28.525 us/op | 1.06 | | hashTreeRoot SignedContributionAndProof - tree | 20.795 us/op | 20.204 us/op | 1.03 | | hashTreeRoot SignedBeaconBlock - struct | 2.3888 ms/op | 2.3373 ms/op | 1.02 | | hashTreeRoot SignedBeaconBlock - tree | 1.6741 ms/op | 1.6751 ms/op | 1.00 | | hashTreeRoot Validator - struct | 13.205 us/op | 12.879 us/op | 1.03 | | hashTreeRoot Validator - tree | 11.533 us/op | 11.140 us/op | 1.04 | | BeaconState vc 300000 - hashTreeRoot tree | 3.6732 s/op | 3.6818 s/op | 1.00 | | BeaconState.historicalRoots vc 300000 - hashTreeRoot tree | 1.5050 us/op | 1.4570 us/op | 1.03 | | BeaconState.validators vc 300000 - hashTreeRoot tree | 3.5022 s/op | 3.4889 s/op | 1.00 | | BeaconState.balances vc 300000 - hashTreeRoot tree | 88.331 ms/op | 88.129 ms/op | 1.00 | | BeaconState.previousEpochParticipation vc 300000 - hashTreeRoot tree | 9.0101 ms/op | 9.0431 ms/op | 1.00 | | BeaconState.currentEpochParticipation vc 300000 - hashTreeRoot tree | 8.9995 ms/op | 9.1932 ms/op | 0.98 | | BeaconState.inactivityScores vc 300000 - hashTreeRoot tree | 84.132 ms/op | 82.965 ms/op | 1.01 | | hash64 x18 | 19.617 us/op | 19.748 us/op | 0.99 | | hashTwoObjects x18 | 18.000 us/op | 18.014 us/op | 1.00 | | hash64 x1740 | 1.8409 ms/op | 1.8368 ms/op | 1.00 | | hashTwoObjects x1740 | 1.7036 ms/op | 1.7150 ms/op | 0.99 | | hash64 x2700000 | 2.9011 s/op | 2.8577 s/op | 1.02 | | hashTwoObjects x2700000 | 2.6565 s/op | 2.6681 s/op | 1.00 | | get_exitEpoch - ContainerType | 225.00 ns/op | 216.00 ns/op | 1.04 | | get_exitEpoch - ContainerNodeStructType | 217.00 ns/op | 217.00 ns/op | 1.00 | | set_exitEpoch - ContainerType | 254.00 ns/op | 241.00 ns/op | 1.05 | | set_exitEpoch - ContainerNodeStructType | 219.00 ns/op | 209.00 ns/op | 1.05 | | get_pubkey - ContainerType | 1.1000 us/op | 1.0260 us/op | 1.07 | | get_pubkey - ContainerNodeStructType | 221.00 ns/op | 205.00 ns/op | 1.08 | | hashTreeRoot - ContainerType | 417.00 ns/op | 402.00 ns/op | 1.04 | | hashTreeRoot - ContainerNodeStructType | 439.00 ns/op | 447.00 ns/op | 0.98 | | createProof - ContainerType | 4.0350 us/op | 4.0010 us/op | 1.01 | | createProof - ContainerNodeStructType | 21.675 us/op | 21.490 us/op | 1.01 | | serialize - ContainerType | 1.7350 us/op | 1.7770 us/op | 0.98 | | serialize - ContainerNodeStructType | 1.5350 us/op | 1.5060 us/op | 1.02 | | set_exitEpoch_and_hashTreeRoot - ContainerType | 4.3100 us/op | 4.0980 us/op | 1.05 | | set_exitEpoch_and_hashTreeRoot - ContainerNodeStructType | 11.747 us/op | 11.258 us/op | 1.04 | | Array - for of | 6.0410 us/op | 4.8960 us/op | 1.23 | | Array - for(;;) | 5.5040 us/op | 4.3240 us/op | 1.27 | | basicListValue.readonlyValuesArray() | 4.1240 ms/op | 3.9963 ms/op | 1.03 | | basicListValue.readonlyValuesArray() + loop all | 4.1308 ms/op | 4.0088 ms/op | 1.03 | | compositeListValue.readonlyValuesArray() | 28.824 ms/op | 29.343 ms/op | 0.98 | | compositeListValue.readonlyValuesArray() + loop all | 24.945 ms/op | 25.721 ms/op | 0.97 | | Number64UintType - get balances list | 4.2773 ms/op | 4.1484 ms/op | 1.03 | | Number64UintType - set balances list | 9.0581 ms/op | 10.053 ms/op | 0.90 | | Number64UintType - get and increase 10 then set | 42.240 ms/op | 39.758 ms/op | 1.06 | | Number64UintType - increase 10 using applyDelta | 14.848 ms/op | 15.934 ms/op | 0.93 | | Number64UintType - increase 10 using applyDeltaInBatch | 14.940 ms/op | 16.722 ms/op | 0.89 | | tree_newTreeFromUint64Deltas | 15.343 ms/op | 15.668 ms/op | 0.98 | | unsafeUint8ArrayToTree | 29.016 ms/op | 29.900 ms/op | 0.97 | | bitLength(50) | 237.00 ns/op | 235.00 ns/op | 1.01 | | bitLengthStr(50) | 235.00 ns/op | 250.00 ns/op | 0.94 | | bitLength(8000) | 223.00 ns/op | 227.00 ns/op | 0.98 | | bitLengthStr(8000) | 309.00 ns/op | 285.00 ns/op | 1.08 | | bitLength(250000) | 231.00 ns/op | 225.00 ns/op | 1.03 | | bitLengthStr(250000) | 349.00 ns/op | 326.00 ns/op | 1.07 | | floor - Math.floor (53) | 0.46589 ns/op | 0.46587 ns/op | 1.00 | | floor - << 0 (53) | 0.46522 ns/op | 0.46457 ns/op | 1.00 | | floor - Math.floor (512) | 0.47156 ns/op | 0.46432 ns/op | 1.02 | | floor - << 0 (512) | 0.46483 ns/op | 0.47131 ns/op | 0.99 | | fnIf(0) | 1.5499 ns/op | 1.5465 ns/op | 1.00 | | fnSwitch(0) | 2.4734 ns/op | 2.5243 ns/op | 0.98 | | fnObj(0) | 0.46389 ns/op | 0.46395 ns/op | 1.00 | | fnArr(0) | 0.46501 ns/op | 0.46537 ns/op | 1.00 | | fnIf(4) | 2.1648 ns/op | 2.1709 ns/op | 1.00 | | fnSwitch(4) | 2.4762 ns/op | 2.4745 ns/op | 1.00 | | fnObj(4) | 0.46418 ns/op | 0.46438 ns/op | 1.00 | | fnArr(4) | 0.46613 ns/op | 0.46647 ns/op | 1.00 | | fnIf(9) | 3.0905 ns/op | 3.0910 ns/op | 1.00 | | fnSwitch(9) | 2.4735 ns/op | 2.4859 ns/op | 0.99 | | fnObj(9) | 0.46706 ns/op | 0.46528 ns/op | 1.00 | | fnArr(9) | 0.46647 ns/op | 0.47203 ns/op | 0.99 | | Container {a,b,vec} - as struct x100000 | 46.804 us/op | 46.695 us/op | 1.00 | | Container {a,b,vec} - as tree x100000 | 371.18 us/op | 371.38 us/op | 1.00 | | Container {a,vec,b} - as struct x100000 | 77.787 us/op | 78.555 us/op | 0.99 | | Container {a,vec,b} - as tree x100000 | 402.16 us/op | 402.19 us/op | 1.00 | | get 2 props x1000000 - rawObject | 310.51 us/op | 309.29 us/op | 1.00 | | get 2 props x1000000 - proxy | 71.222 ms/op | 72.221 ms/op | 0.99 | | get 2 props x1000000 - customObj | 310.49 us/op | 310.22 us/op | 1.00 | | Simple object binary -> struct | 613.00 ns/op | 642.00 ns/op | 0.95 | | Simple object binary -> tree_backed | 1.6720 us/op | 1.6770 us/op | 1.00 | | Simple object struct -> tree_backed | 2.1250 us/op | 2.1900 us/op | 0.97 | | Simple object tree_backed -> struct | 1.8000 us/op | 1.9030 us/op | 0.95 | | Simple object struct -> binary | 932.00 ns/op | 896.00 ns/op | 1.04 | | Simple object tree_backed -> binary | 1.6170 us/op | 1.4930 us/op | 1.08 | | aggregationBits binary -> struct | 549.00 ns/op | 559.00 ns/op | 0.98 | | aggregationBits binary -> tree_backed | 2.1380 us/op | 2.1680 us/op | 0.99 | | aggregationBits struct -> tree_backed | 2.4860 us/op | 2.5820 us/op | 0.96 | | aggregationBits tree_backed -> struct | 1.0510 us/op | 1.0620 us/op | 0.99 | | aggregationBits struct -> binary | 757.00 ns/op | 765.00 ns/op | 0.99 | | aggregationBits tree_backed -> binary | 930.00 ns/op | 912.00 ns/op | 1.02 | | List(uint8) 100000 binary -> struct | 1.3562 ms/op | 1.4138 ms/op | 0.96 | | List(uint8) 100000 binary -> tree_backed | 88.638 us/op | 92.033 us/op | 0.96 | | List(uint8) 100000 struct -> tree_backed | 1.3228 ms/op | 1.3474 ms/op | 0.98 | | List(uint8) 100000 tree_backed -> struct | 993.46 us/op | 935.05 us/op | 1.06 | | List(uint8) 100000 struct -> binary | 1.2334 ms/op | 1.2047 ms/op | 1.02 | | List(uint8) 100000 tree_backed -> binary | 82.862 us/op | 85.075 us/op | 0.97 | | List(uint64Number) 100000 binary -> struct | 1.2497 ms/op | 1.1630 ms/op | 1.07 | | List(uint64Number) 100000 binary -> tree_backed | 3.1204 ms/op | 3.0756 ms/op | 1.01 | | List(uint64Number) 100000 struct -> tree_backed | 4.6408 ms/op | 4.6349 ms/op | 1.00 | | List(uint64Number) 100000 tree_backed -> struct | 2.0792 ms/op | 2.1046 ms/op | 0.99 | | List(uint64Number) 100000 struct -> binary | 1.4282 ms/op | 1.4424 ms/op | 0.99 | | List(uint64Number) 100000 tree_backed -> binary | 809.26 us/op | 821.54 us/op | 0.99 | | List(Uint64Bigint) 100000 binary -> struct | 3.5265 ms/op | 3.4725 ms/op | 1.02 | | List(Uint64Bigint) 100000 binary -> tree_backed | 2.8580 ms/op | 3.0211 ms/op | 0.95 | | List(Uint64Bigint) 100000 struct -> tree_backed | 5.2068 ms/op | 5.1078 ms/op | 1.02 | | List(Uint64Bigint) 100000 tree_backed -> struct | 4.4439 ms/op | 4.3443 ms/op | 1.02 | | List(Uint64Bigint) 100000 struct -> binary | 2.0419 ms/op | 2.0732 ms/op | 0.98 | | List(Uint64Bigint) 100000 tree_backed -> binary | 810.29 us/op | 937.51 us/op | 0.86 | | Vector(Root) 100000 binary -> struct | 30.869 ms/op | 27.678 ms/op | 1.12 | | Vector(Root) 100000 binary -> tree_backed | 28.961 ms/op | 29.364 ms/op | 0.99 | | Vector(Root) 100000 struct -> tree_backed | 33.251 ms/op | 33.369 ms/op | 1.00 | | Vector(Root) 100000 tree_backed -> struct | 43.040 ms/op | 43.151 ms/op | 1.00 | | Vector(Root) 100000 struct -> binary | 1.8736 ms/op | 1.8679 ms/op | 1.00 | | Vector(Root) 100000 tree_backed -> binary | 8.7525 ms/op | 8.5358 ms/op | 1.03 | | List(Validator) 100000 binary -> struct | 96.454 ms/op | 104.69 ms/op | 0.92 | | List(Validator) 100000 binary -> tree_backed | 267.06 ms/op | 273.37 ms/op | 0.98 | | List(Validator) 100000 struct -> tree_backed | 286.58 ms/op | 295.71 ms/op | 0.97 | | List(Validator) 100000 tree_backed -> struct | 190.64 ms/op | 191.71 ms/op | 0.99 | | List(Validator) 100000 struct -> binary | 30.077 ms/op | 31.039 ms/op | 0.97 | | List(Validator) 100000 tree_backed -> binary | 95.254 ms/op | 95.991 ms/op | 0.99 | | List(Validator-NS) 100000 binary -> struct | 96.952 ms/op | 96.884 ms/op | 1.00 | | List(Validator-NS) 100000 binary -> tree_backed | 154.91 ms/op | 153.07 ms/op | 1.01 | | List(Validator-NS) 100000 struct -> tree_backed | 181.54 ms/op | 190.48 ms/op | 0.95 | | List(Validator-NS) 100000 tree_backed -> struct | 151.71 ms/op | 151.71 ms/op | 1.00 | | List(Validator-NS) 100000 struct -> binary | 30.290 ms/op | 31.352 ms/op | 0.97 | | List(Validator-NS) 100000 tree_backed -> binary | 36.000 ms/op | 36.683 ms/op | 0.98 | | get epochStatuses - MutableVector | 106.36 us/op | 89.932 us/op | 1.18 | | get epochStatuses - ViewDU | 211.28 us/op | 206.80 us/op | 1.02 | | set epochStatuses - ListTreeView | 1.5244 ms/op | 1.4231 ms/op | 1.07 | | set epochStatuses - ListTreeView - set() | 433.75 us/op | 436.29 us/op | 0.99 | | set epochStatuses - ListTreeView - commit() | 400.83 us/op | 445.32 us/op | 0.90 | | bitstring | 642.66 ns/op | 642.41 ns/op | 1.00 | | bit mask | 14.307 ns/op | 13.538 ns/op | 1.06 | | struct - increase slot to 1000000 | 927.54 us/op | 928.07 us/op | 1.00 | | UintNumberType - increase slot to 1000000 | 28.480 ms/op | 28.481 ms/op | 1.00 | | UintBigintType - increase slot to 1000000 | 422.07 ms/op | 430.69 ms/op | 0.98 | | UintBigint8 x 100000 tree_deserialize | 5.5083 ms/op | 5.4886 ms/op | 1.00 | | UintBigint8 x 100000 tree_serialize | 1.1876 ms/op | 1.1857 ms/op | 1.00 | | UintBigint16 x 100000 tree_deserialize | 4.6631 ms/op | 4.6997 ms/op | 0.99 | | UintBigint16 x 100000 tree_serialize | 1.1752 ms/op | 1.1887 ms/op | 0.99 | | UintBigint32 x 100000 tree_deserialize | 6.1825 ms/op | 5.7579 ms/op | 1.07 | | UintBigint32 x 100000 tree_serialize | 1.2361 ms/op | 1.2441 ms/op | 0.99 | | UintBigint64 x 100000 tree_deserialize | 6.5186 ms/op | 6.2432 ms/op | 1.04 | | UintBigint64 x 100000 tree_serialize | 1.5962 ms/op | 1.6056 ms/op | 0.99 | | UintBigint8 x 100000 value_deserialize | 434.38 us/op | 433.18 us/op | 1.00 | | UintBigint8 x 100000 value_serialize | 597.74 us/op | 613.44 us/op | 0.97 | | UintBigint16 x 100000 value_deserialize | 464.37 us/op | 464.43 us/op | 1.00 | | UintBigint16 x 100000 value_serialize | 632.51 us/op | 653.41 us/op | 0.97 | | UintBigint32 x 100000 value_deserialize | 433.16 us/op | 433.40 us/op | 1.00 | | UintBigint32 x 100000 value_serialize | 637.57 us/op | 651.03 us/op | 0.98 | | UintBigint64 x 100000 value_deserialize | 465.15 us/op | 465.83 us/op | 1.00 | | UintBigint64 x 100000 value_serialize | 810.68 us/op | 825.39 us/op | 0.98 | | UintBigint8 x 100000 deserialize | 4.5932 ms/op | 4.6694 ms/op | 0.98 | | UintBigint8 x 100000 serialize | 1.4845 ms/op | 1.4428 ms/op | 1.03 | | UintBigint16 x 100000 deserialize | 4.8227 ms/op | 4.5884 ms/op | 1.05 | | UintBigint16 x 100000 serialize | 1.5186 ms/op | 1.5044 ms/op | 1.01 | | UintBigint32 x 100000 deserialize | 5.3164 ms/op | 5.3718 ms/op | 0.99 | | UintBigint32 x 100000 serialize | 2.7441 ms/op | 2.7840 ms/op | 0.99 | | UintBigint64 x 100000 deserialize | 3.6342 ms/op | 3.6328 ms/op | 1.00 | | UintBigint64 x 100000 serialize | 1.4838 ms/op | 1.4816 ms/op | 1.00 | | UintBigint128 x 100000 deserialize | 6.1477 ms/op | 5.7264 ms/op | 1.07 | | UintBigint128 x 100000 serialize | 17.208 ms/op | 17.443 ms/op | 0.99 | | UintBigint256 x 100000 deserialize | 10.708 ms/op | 10.643 ms/op | 1.01 | | UintBigint256 x 100000 serialize | 50.797 ms/op | 51.289 ms/op | 0.99 | | Slice from Uint8Array x25000 | 1.0008 ms/op | 997.24 us/op | 1.00 | | Slice from ArrayBuffer x25000 | 17.330 ms/op | 17.436 ms/op | 0.99 | | Slice from ArrayBuffer x25000 + new Uint8Array | 18.289 ms/op | 18.399 ms/op | 0.99 | | Copy Uint8Array 100000 iterate | 805.29 us/op | 806.68 us/op | 1.00 | | Copy Uint8Array 100000 slice | 80.115 us/op | 91.493 us/op | 0.88 | | Copy Uint8Array 100000 Uint8Array.prototype.slice.call | 80.195 us/op | 91.705 us/op | 0.87 | | Copy Buffer 100000 Uint8Array.prototype.slice.call | 80.693 us/op | 91.953 us/op | 0.88 | | Copy Uint8Array 100000 slice + set | 140.98 us/op | 151.79 us/op | 0.93 | | Copy Uint8Array 100000 subarray + set | 80.678 us/op | 91.115 us/op | 0.89 | | Copy Uint8Array 100000 slice arrayBuffer | 80.944 us/op | 92.415 us/op | 0.88 | | Uint64 deserialize 100000 - iterate Uint8Array | 1.7702 ms/op | 1.7589 ms/op | 1.01 | | Uint64 deserialize 100000 - by Uint32A | 1.7611 ms/op | 1.7543 ms/op | 1.00 | | Uint64 deserialize 100000 - by DataView.getUint32 x2 | 1.7562 ms/op | 1.7946 ms/op | 0.98 | | Uint64 deserialize 100000 - by DataView.getBigUint64 | 4.8624 ms/op | 4.8848 ms/op | 1.00 | | Uint64 deserialize 100000 - by byte | 65.625 ms/op | 65.296 ms/op | 1.01 |

by benchmarkbot/action