ChainSafe / ssz

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

fix: export ListUintNum64Type #353

Closed twoeths closed 6 months ago

twoeths commented 6 months ago

Motivation

Description

github-actions[bot] commented 6 months ago

Performance Report

✔️ no performance regression detected

Full benchmark results | Benchmark suite | Current: 4e9c7c15c93ea9351ca4874d8a5b3e91612413b0 | Previous: 39b39b4e9702f5428a2a8388076fce6c78af6897 | Ratio | |-|-|-|-| | digestTwoHashObjects 50023 times | 48.798 ms/op | 47.667 ms/op | 1.02 | | digest64 50023 times | 50.577 ms/op | 49.772 ms/op | 1.02 | | digest 50023 times | 50.286 ms/op | 49.617 ms/op | 1.01 | | input length 32 | 1.2280 us/op | 1.2260 us/op | 1.00 | | input length 64 | 1.3160 us/op | 1.3330 us/op | 0.99 | | input length 128 | 2.2620 us/op | 2.2910 us/op | 0.99 | | input length 256 | 3.3680 us/op | 3.3920 us/op | 0.99 | | input length 512 | 5.4750 us/op | 5.5440 us/op | 0.99 | | input length 1024 | 10.840 us/op | 10.849 us/op | 1.00 | | digest 1000000 times | 826.04 ms/op | 828.77 ms/op | 1.00 | | hashObjectToByteArray 50023 times | 1.4596 ms/op | 1.4285 ms/op | 1.02 | | byteArrayToHashObject 50023 times | 2.1182 ms/op | 1.8256 ms/op | 1.16 | | getGindicesAtDepth | 4.5590 us/op | 4.4430 us/op | 1.03 | | iterateAtDepth | 9.4040 us/op | 9.4740 us/op | 0.99 | | getGindexBits | 492.00 ns/op | 495.00 ns/op | 0.99 | | gindexIterator | 1.1540 us/op | 1.0870 us/op | 1.06 | | hash 2 Uint8Array 2250026 times - as-sha256 | 2.2944 s/op | 2.2649 s/op | 1.01 | | hashTwoObjects 2250026 times - as-sha256 | 2.1864 s/op | 2.1590 s/op | 1.01 | | hash 2 Uint8Array 2250026 times - noble | 5.5690 s/op | 5.1457 s/op | 1.08 | | hashTwoObjects 2250026 times - noble | 8.5822 s/op | 7.6650 s/op | 1.12 | | getNodeH() x7812.5 avg hindex | 14.605 us/op | 14.567 us/op | 1.00 | | getNodeH() x7812.5 index 0 | 5.1720 us/op | 5.1780 us/op | 1.00 | | getNodeH() x7812.5 index 7 | 5.2010 us/op | 5.1770 us/op | 1.00 | | getNodeH() x7812.5 index 7 with key array | 5.1990 us/op | 5.1060 us/op | 1.02 | | new LeafNode() x7812.5 | 123.94 us/op | 118.43 us/op | 1.05 | | multiproof - depth 15, 1 requested leaves | 10.235 us/op | 9.7350 us/op | 1.05 | | tree offset multiproof - depth 15, 1 requested leaves | 22.523 us/op | 23.450 us/op | 0.96 | | compact multiproof - depth 15, 1 requested leaves | 5.6940 us/op | 4.9540 us/op | 1.15 | | multiproof - depth 15, 2 requested leaves | 15.147 us/op | 14.292 us/op | 1.06 | | tree offset multiproof - depth 15, 2 requested leaves | 27.343 us/op | 24.751 us/op | 1.10 | | compact multiproof - depth 15, 2 requested leaves | 3.3380 us/op | 3.3900 us/op | 0.98 | | multiproof - depth 15, 3 requested leaves | 21.877 us/op | 19.582 us/op | 1.12 | | tree offset multiproof - depth 15, 3 requested leaves | 35.602 us/op | 34.104 us/op | 1.04 | | compact multiproof - depth 15, 3 requested leaves | 6.3100 us/op | 6.2810 us/op | 1.00 | | multiproof - depth 15, 4 requested leaves | 27.311 us/op | 27.940 us/op | 0.98 | | tree offset multiproof - depth 15, 4 requested leaves | 42.480 us/op | 42.180 us/op | 1.01 | | compact multiproof - depth 15, 4 requested leaves | 7.1880 us/op | 6.6270 us/op | 1.08 | | packedRootsBytesToLeafNodes bytes 4000 offset 0 | 2.1640 us/op | 2.1820 us/op | 0.99 | | packedRootsBytesToLeafNodes bytes 4000 offset 1 | 2.1200 us/op | 1.9220 us/op | 1.10 | | packedRootsBytesToLeafNodes bytes 4000 offset 2 | 2.1340 us/op | 1.8130 us/op | 1.18 | | packedRootsBytesToLeafNodes bytes 4000 offset 3 | 2.1200 us/op | 1.7830 us/op | 1.19 | | subtreeFillToContents depth 40 count 250000 | 41.074 ms/op | 40.884 ms/op | 1.00 | | setRoot - gindexBitstring | 10.701 ms/op | 10.284 ms/op | 1.04 | | setRoot - gindex | 11.460 ms/op | 12.624 ms/op | 0.91 | | getRoot - gindexBitstring | 2.9249 ms/op | 2.7033 ms/op | 1.08 | | getRoot - gindex | 3.7376 ms/op | 3.5120 ms/op | 1.06 | | getHashObject then setHashObject | 13.403 ms/op | 12.202 ms/op | 1.10 | | setNodeWithFn | 11.446 ms/op | 10.029 ms/op | 1.14 | | getNodeAtDepth depth 0 x100000 | 1.1698 ms/op | 1.1439 ms/op | 1.02 | | setNodeAtDepth depth 0 x100000 | 3.3842 ms/op | 3.0671 ms/op | 1.10 | | getNodesAtDepth depth 0 x100000 | 1.0887 ms/op | 1.0841 ms/op | 1.00 | | setNodesAtDepth depth 0 x100000 | 1.4859 ms/op | 1.4917 ms/op | 1.00 | | getNodeAtDepth depth 1 x100000 | 1.2076 ms/op | 1.2077 ms/op | 1.00 | | setNodeAtDepth depth 1 x100000 | 8.8092 ms/op | 6.6206 ms/op | 1.33 | | getNodesAtDepth depth 1 x100000 | 1.2090 ms/op | 1.2104 ms/op | 1.00 | | setNodesAtDepth depth 1 x100000 | 6.8192 ms/op | 5.7682 ms/op | 1.18 | | getNodeAtDepth depth 2 x100000 | 3.4457 ms/op | 1.4859 ms/op | 2.32 | | setNodeAtDepth depth 2 x100000 | 15.498 ms/op | 11.365 ms/op | 1.36 | | getNodesAtDepth depth 2 x100000 | 21.998 ms/op | 22.235 ms/op | 0.99 | | setNodesAtDepth depth 2 x100000 | 21.900 ms/op | 16.632 ms/op | 1.32 | | tree.getNodesAtDepth - gindexes | 9.6982 ms/op | 8.3880 ms/op | 1.16 | | tree.getNodesAtDepth - push all nodes | 3.8241 ms/op | 2.4368 ms/op | 1.57 | | tree.getNodesAtDepth - navigation | 158.04 us/op | 157.65 us/op | 1.00 | | tree.setNodesAtDepth - indexes | 563.55 us/op | 434.88 us/op | 1.30 | | set at depth 8 | 801.00 ns/op | 759.00 ns/op | 1.06 | | set at depth 16 | 1.0840 us/op | 911.00 ns/op | 1.19 | | set at depth 32 | 1.6020 us/op | 1.3090 us/op | 1.22 | | iterateNodesAtDepth 8 256 | 17.642 us/op | 17.262 us/op | 1.02 | | getNodesAtDepth 8 256 | 3.9900 us/op | 3.8630 us/op | 1.03 | | iterateNodesAtDepth 16 65536 | 5.1239 ms/op | 4.9030 ms/op | 1.05 | | getNodesAtDepth 16 65536 | 4.5161 ms/op | 2.1411 ms/op | 2.11 | | iterateNodesAtDepth 32 250000 | 18.455 ms/op | 17.860 ms/op | 1.03 | | getNodesAtDepth 32 250000 | 6.2644 ms/op | 5.8007 ms/op | 1.08 | | iterateNodesAtDepth 40 250000 | 16.701 ms/op | 17.559 ms/op | 0.95 | | getNodesAtDepth 40 250000 | 6.3445 ms/op | 5.2690 ms/op | 1.20 | | 250k validators | 10.171 s/op | 9.4509 s/op | 1.08 | | bitlist bytes to struct (120,90) | 935.00 ns/op | 813.00 ns/op | 1.15 | | bitlist bytes to tree (120,90) | 3.2240 us/op | 2.7960 us/op | 1.15 | | bitlist bytes to struct (2048,2048) | 1.5560 us/op | 1.3840 us/op | 1.12 | | bitlist bytes to tree (2048,2048) | 5.8430 us/op | 4.1220 us/op | 1.42 | | ByteListType - deserialize | 11.873 ms/op | 8.7896 ms/op | 1.35 | | BasicListType - deserialize | 9.8530 ms/op | 9.6807 ms/op | 1.02 | | ByteListType - serialize | 11.309 ms/op | 9.4080 ms/op | 1.20 | | BasicListType - serialize | 14.560 ms/op | 12.170 ms/op | 1.20 | | BasicListType - tree_convertToStruct | 29.431 ms/op | 24.261 ms/op | 1.21 | | List[uint8, 68719476736] len 300000 ViewDU.getAll() + iterate | 6.2709 ms/op | 4.5458 ms/op | 1.38 | | List[uint8, 68719476736] len 300000 ViewDU.get(i) | 4.1714 ms/op | 4.1414 ms/op | 1.01 | | Array.push len 300000 empty Array - number | 7.1959 ms/op | 6.8793 ms/op | 1.05 | | Array.set len 300000 from new Array - number | 2.5654 ms/op | 1.6469 ms/op | 1.56 | | Array.set len 300000 - number | 6.6626 ms/op | 6.0207 ms/op | 1.11 | | Uint8Array.set len 300000 | 227.67 us/op | 225.99 us/op | 1.01 | | Uint32Array.set len 300000 | 341.88 us/op | 313.42 us/op | 1.09 | | Container({a: uint8, b: uint8}) getViewDU x300000 | 23.684 ms/op | 21.160 ms/op | 1.12 | | ContainerNodeStruct({a: uint8, b: uint8}) getViewDU x300000 | 10.852 ms/op | 10.082 ms/op | 1.08 | | List(Container) len 300000 ViewDU.getAllReadonly() + iterate | 228.31 ms/op | 223.39 ms/op | 1.02 | | List(Container) len 300000 ViewDU.getAllReadonlyValues() + iterate | 372.29 ms/op | 331.20 ms/op | 1.12 | | List(Container) len 300000 ViewDU.get(i) | 12.802 ms/op | 7.8577 ms/op | 1.63 | | List(Container) len 300000 ViewDU.getReadonly(i) | 13.006 ms/op | 7.5450 ms/op | 1.72 | | List(ContainerNodeStruct) len 300000 ViewDU.getAllReadonly() + iterate | 39.040 ms/op | 39.828 ms/op | 0.98 | | List(ContainerNodeStruct) len 300000 ViewDU.getAllReadonlyValues() + iterate | 7.0843 ms/op | 5.7757 ms/op | 1.23 | | List(ContainerNodeStruct) len 300000 ViewDU.get(i) | 11.244 ms/op | 6.8262 ms/op | 1.65 | | List(ContainerNodeStruct) len 300000 ViewDU.getReadonly(i) | 11.329 ms/op | 6.6419 ms/op | 1.71 | | Array.push len 300000 empty Array - object | 7.3055 ms/op | 6.8811 ms/op | 1.06 | | Array.set len 300000 from new Array - object | 4.1147 ms/op | 1.9328 ms/op | 2.13 | | Array.set len 300000 - object | 7.0089 ms/op | 6.6441 ms/op | 1.05 | | cachePermanentRootStruct no cache | 10.279 us/op | 9.8510 us/op | 1.04 | | cachePermanentRootStruct with cache | 279.00 ns/op | 251.00 ns/op | 1.11 | | epochParticipation len 250000 rws 7813 | 2.8028 ms/op | 2.3643 ms/op | 1.19 | | deserialize Attestation - tree | 3.7630 us/op | 3.2780 us/op | 1.15 | | deserialize Attestation - struct | 2.5650 us/op | 2.2260 us/op | 1.15 | | deserialize SignedAggregateAndProof - tree | 5.0270 us/op | 4.1320 us/op | 1.22 | | deserialize SignedAggregateAndProof - struct | 3.7170 us/op | 3.3220 us/op | 1.12 | | deserialize SyncCommitteeMessage - tree | 1.3470 us/op | 1.1670 us/op | 1.15 | | deserialize SyncCommitteeMessage - struct | 1.5630 us/op | 1.3420 us/op | 1.16 | | deserialize SignedContributionAndProof - tree | 2.3140 us/op | 2.0740 us/op | 1.12 | | deserialize SignedContributionAndProof - struct | 3.4570 us/op | 2.7420 us/op | 1.26 | | deserialize SignedBeaconBlock - tree | 288.02 us/op | 240.91 us/op | 1.20 | | deserialize SignedBeaconBlock - struct | 168.72 us/op | 148.12 us/op | 1.14 | | BeaconState vc 300000 - deserialize tree | 603.80 ms/op | 590.30 ms/op | 1.02 | | BeaconState vc 300000 - serialize tree | 121.50 ms/op | 120.44 ms/op | 1.01 | | BeaconState.historicalRoots vc 300000 - deserialize tree | 1.0180 us/op | 945.00 ns/op | 1.08 | | BeaconState.historicalRoots vc 300000 - serialize tree | 973.00 ns/op | 837.00 ns/op | 1.16 | | BeaconState.validators vc 300000 - deserialize tree | 557.92 ms/op | 568.10 ms/op | 0.98 | | BeaconState.validators vc 300000 - serialize tree | 111.10 ms/op | 111.70 ms/op | 0.99 | | BeaconState.balances vc 300000 - deserialize tree | 21.290 ms/op | 18.918 ms/op | 1.13 | | BeaconState.balances vc 300000 - serialize tree | 5.7921 ms/op | 3.4981 ms/op | 1.66 | | BeaconState.previousEpochParticipation vc 300000 - deserialize tree | 758.84 us/op | 461.60 us/op | 1.64 | | BeaconState.previousEpochParticipation vc 300000 - serialize tree | 289.41 us/op | 269.01 us/op | 1.08 | | BeaconState.currentEpochParticipation vc 300000 - deserialize tree | 753.73 us/op | 485.22 us/op | 1.55 | | BeaconState.currentEpochParticipation vc 300000 - serialize tree | 280.42 us/op | 268.69 us/op | 1.04 | | BeaconState.inactivityScores vc 300000 - deserialize tree | 21.548 ms/op | 16.847 ms/op | 1.28 | | BeaconState.inactivityScores vc 300000 - serialize tree | 6.0908 ms/op | 5.4842 ms/op | 1.11 | | hashTreeRoot Attestation - struct | 42.931 us/op | 35.242 us/op | 1.22 | | hashTreeRoot Attestation - tree | 19.732 us/op | 18.606 us/op | 1.06 | | hashTreeRoot SignedAggregateAndProof - struct | 61.299 us/op | 46.009 us/op | 1.33 | | hashTreeRoot SignedAggregateAndProof - tree | 30.777 us/op | 29.594 us/op | 1.04 | | hashTreeRoot SyncCommitteeMessage - struct | 15.593 us/op | 15.157 us/op | 1.03 | | hashTreeRoot SyncCommitteeMessage - tree | 6.3700 us/op | 6.2990 us/op | 1.01 | | hashTreeRoot SignedContributionAndProof - struct | 39.489 us/op | 32.872 us/op | 1.20 | | hashTreeRoot SignedContributionAndProof - tree | 23.944 us/op | 23.120 us/op | 1.04 | | hashTreeRoot SignedBeaconBlock - struct | 2.9064 ms/op | 2.7187 ms/op | 1.07 | | hashTreeRoot SignedBeaconBlock - tree | 1.6966 ms/op | 1.6918 ms/op | 1.00 | | hashTreeRoot Validator - struct | 15.289 us/op | 14.488 us/op | 1.06 | | hashTreeRoot Validator - tree | 12.797 us/op | 12.519 us/op | 1.02 | | BeaconState vc 300000 - hashTreeRoot tree | 3.7703 s/op | 3.7754 s/op | 1.00 | | BeaconState.historicalRoots vc 300000 - hashTreeRoot tree | 1.5580 us/op | 1.5300 us/op | 1.02 | | BeaconState.validators vc 300000 - hashTreeRoot tree | 3.6418 s/op | 3.6146 s/op | 1.01 | | BeaconState.balances vc 300000 - hashTreeRoot tree | 88.009 ms/op | 89.419 ms/op | 0.98 | | BeaconState.previousEpochParticipation vc 300000 - hashTreeRoot tree | 9.2351 ms/op | 8.9598 ms/op | 1.03 | | BeaconState.currentEpochParticipation vc 300000 - hashTreeRoot tree | 9.1631 ms/op | 8.9620 ms/op | 1.02 | | BeaconState.inactivityScores vc 300000 - hashTreeRoot tree | 93.131 ms/op | 84.145 ms/op | 1.11 | | hash64 x18 | 19.970 us/op | 19.842 us/op | 1.01 | | hashTwoObjects x18 | 18.081 us/op | 18.016 us/op | 1.00 | | hash64 x1740 | 1.8728 ms/op | 1.8712 ms/op | 1.00 | | hashTwoObjects x1740 | 1.7403 ms/op | 1.7062 ms/op | 1.02 | | hash64 x2700000 | 2.9036 s/op | 2.8955 s/op | 1.00 | | hashTwoObjects x2700000 | 2.6776 s/op | 2.6504 s/op | 1.01 | | get_exitEpoch - ContainerType | 237.00 ns/op | 244.00 ns/op | 0.97 | | get_exitEpoch - ContainerNodeStructType | 238.00 ns/op | 246.00 ns/op | 0.97 | | set_exitEpoch - ContainerType | 276.00 ns/op | 269.00 ns/op | 1.03 | | set_exitEpoch - ContainerNodeStructType | 247.00 ns/op | 249.00 ns/op | 0.99 | | get_pubkey - ContainerType | 1.2580 us/op | 1.2600 us/op | 1.00 | | get_pubkey - ContainerNodeStructType | 244.00 ns/op | 248.00 ns/op | 0.98 | | hashTreeRoot - ContainerType | 478.00 ns/op | 470.00 ns/op | 1.02 | | hashTreeRoot - ContainerNodeStructType | 490.00 ns/op | 496.00 ns/op | 0.99 | | createProof - ContainerType | 4.6250 us/op | 4.3070 us/op | 1.07 | | createProof - ContainerNodeStructType | 24.205 us/op | 24.445 us/op | 0.99 | | serialize - ContainerType | 2.0430 us/op | 1.9570 us/op | 1.04 | | serialize - ContainerNodeStructType | 1.7960 us/op | 1.7840 us/op | 1.01 | | set_exitEpoch_and_hashTreeRoot - ContainerType | 4.4170 us/op | 4.3290 us/op | 1.02 | | set_exitEpoch_and_hashTreeRoot - ContainerNodeStructType | 11.911 us/op | 11.805 us/op | 1.01 | | Array - for of | 4.9020 us/op | 5.1830 us/op | 0.95 | | Array - for(;;) | 4.3040 us/op | 4.5070 us/op | 0.95 | | basicListValue.readonlyValuesArray() | 4.5949 ms/op | 5.2504 ms/op | 0.88 | | basicListValue.readonlyValuesArray() + loop all | 5.0594 ms/op | 4.9297 ms/op | 1.03 | | compositeListValue.readonlyValuesArray() | 27.265 ms/op | 35.036 ms/op | 0.78 | | compositeListValue.readonlyValuesArray() + loop all | 26.397 ms/op | 30.195 ms/op | 0.87 | | Number64UintType - get balances list | 4.8068 ms/op | 4.3181 ms/op | 1.11 | | Number64UintType - set balances list | 9.3357 ms/op | 11.342 ms/op | 0.82 | | Number64UintType - get and increase 10 then set | 42.707 ms/op | 43.135 ms/op | 0.99 | | Number64UintType - increase 10 using applyDelta | 17.578 ms/op | 17.126 ms/op | 1.03 | | Number64UintType - increase 10 using applyDeltaInBatch | 17.910 ms/op | 17.035 ms/op | 1.05 | | tree_newTreeFromUint64Deltas | 17.482 ms/op | 18.649 ms/op | 0.94 | | unsafeUint8ArrayToTree | 29.360 ms/op | 36.647 ms/op | 0.80 | | bitLength(50) | 234.00 ns/op | 225.00 ns/op | 1.04 | | bitLengthStr(50) | 271.00 ns/op | 242.00 ns/op | 1.12 | | bitLength(8000) | 234.00 ns/op | 223.00 ns/op | 1.05 | | bitLengthStr(8000) | 315.00 ns/op | 289.00 ns/op | 1.09 | | bitLength(250000) | 246.00 ns/op | 224.00 ns/op | 1.10 | | bitLengthStr(250000) | 350.00 ns/op | 322.00 ns/op | 1.09 | | floor - Math.floor (53) | 0.46431 ns/op | 0.46458 ns/op | 1.00 | | floor - << 0 (53) | 0.46436 ns/op | 0.46703 ns/op | 0.99 | | floor - Math.floor (512) | 0.46487 ns/op | 0.46401 ns/op | 1.00 | | floor - << 0 (512) | 0.46416 ns/op | 0.46510 ns/op | 1.00 | | fnIf(0) | 1.5469 ns/op | 1.5462 ns/op | 1.00 | | fnSwitch(0) | 2.4755 ns/op | 2.4766 ns/op | 1.00 | | fnObj(0) | 0.47006 ns/op | 0.46556 ns/op | 1.01 | | fnArr(0) | 0.46534 ns/op | 0.46682 ns/op | 1.00 | | fnIf(4) | 2.1663 ns/op | 2.1637 ns/op | 1.00 | | fnSwitch(4) | 2.4748 ns/op | 2.4723 ns/op | 1.00 | | fnObj(4) | 0.46393 ns/op | 0.46430 ns/op | 1.00 | | fnArr(4) | 0.46397 ns/op | 0.46571 ns/op | 1.00 | | fnIf(9) | 3.0945 ns/op | 3.1031 ns/op | 1.00 | | fnSwitch(9) | 2.4809 ns/op | 2.4730 ns/op | 1.00 | | fnObj(9) | 0.46421 ns/op | 0.46466 ns/op | 1.00 | | fnArr(9) | 0.46441 ns/op | 0.46787 ns/op | 0.99 | | Container {a,b,vec} - as struct x100000 | 46.943 us/op | 47.104 us/op | 1.00 | | Container {a,b,vec} - as tree x100000 | 371.34 us/op | 371.14 us/op | 1.00 | | Container {a,vec,b} - as struct x100000 | 77.457 us/op | 78.237 us/op | 0.99 | | Container {a,vec,b} - as tree x100000 | 402.08 us/op | 403.55 us/op | 1.00 | | get 2 props x1000000 - rawObject | 309.94 us/op | 309.80 us/op | 1.00 | | get 2 props x1000000 - proxy | 71.208 ms/op | 71.793 ms/op | 0.99 | | get 2 props x1000000 - customObj | 309.40 us/op | 309.30 us/op | 1.00 | | Simple object binary -> struct | 657.00 ns/op | 619.00 ns/op | 1.06 | | Simple object binary -> tree_backed | 1.7620 us/op | 1.6640 us/op | 1.06 | | Simple object struct -> tree_backed | 2.3070 us/op | 2.2100 us/op | 1.04 | | Simple object tree_backed -> struct | 1.9710 us/op | 1.8580 us/op | 1.06 | | Simple object struct -> binary | 1.1300 us/op | 959.00 ns/op | 1.18 | | Simple object tree_backed -> binary | 1.7310 us/op | 1.6200 us/op | 1.07 | | aggregationBits binary -> struct | 640.00 ns/op | 565.00 ns/op | 1.13 | | aggregationBits binary -> tree_backed | 2.4280 us/op | 2.2530 us/op | 1.08 | | aggregationBits struct -> tree_backed | 3.0420 us/op | 2.7040 us/op | 1.13 | | aggregationBits tree_backed -> struct | 1.3030 us/op | 1.1400 us/op | 1.14 | | aggregationBits struct -> binary | 938.00 ns/op | 844.00 ns/op | 1.11 | | aggregationBits tree_backed -> binary | 1.1190 us/op | 998.00 ns/op | 1.12 | | List(uint8) 100000 binary -> struct | 1.3081 ms/op | 1.1267 ms/op | 1.16 | | List(uint8) 100000 binary -> tree_backed | 95.177 us/op | 79.659 us/op | 1.19 | | List(uint8) 100000 struct -> tree_backed | 1.5378 ms/op | 1.3478 ms/op | 1.14 | | List(uint8) 100000 tree_backed -> struct | 1.0023 ms/op | 949.99 us/op | 1.06 | | List(uint8) 100000 struct -> binary | 1.3808 ms/op | 1.2828 ms/op | 1.08 | | List(uint8) 100000 tree_backed -> binary | 86.372 us/op | 85.539 us/op | 1.01 | | List(uint64Number) 100000 binary -> struct | 1.3438 ms/op | 1.2415 ms/op | 1.08 | | List(uint64Number) 100000 binary -> tree_backed | 3.4244 ms/op | 3.9778 ms/op | 0.86 | | List(uint64Number) 100000 struct -> tree_backed | 4.9876 ms/op | 5.1952 ms/op | 0.96 | | List(uint64Number) 100000 tree_backed -> struct | 2.2647 ms/op | 2.1170 ms/op | 1.07 | | List(uint64Number) 100000 struct -> binary | 1.6221 ms/op | 1.4710 ms/op | 1.10 | | List(uint64Number) 100000 tree_backed -> binary | 831.25 us/op | 826.94 us/op | 1.01 | | List(Uint64Bigint) 100000 binary -> struct | 3.6155 ms/op | 3.7317 ms/op | 0.97 | | List(Uint64Bigint) 100000 binary -> tree_backed | 3.3633 ms/op | 3.9422 ms/op | 0.85 | | List(Uint64Bigint) 100000 struct -> tree_backed | 5.4925 ms/op | 6.0311 ms/op | 0.91 | | List(Uint64Bigint) 100000 tree_backed -> struct | 5.3833 ms/op | 4.7228 ms/op | 1.14 | | List(Uint64Bigint) 100000 struct -> binary | 2.0827 ms/op | 2.0434 ms/op | 1.02 | | List(Uint64Bigint) 100000 tree_backed -> binary | 1.2280 ms/op | 831.51 us/op | 1.48 | | Vector(Root) 100000 binary -> struct | 28.898 ms/op | 38.421 ms/op | 0.75 | | Vector(Root) 100000 binary -> tree_backed | 32.022 ms/op | 37.493 ms/op | 0.85 | | Vector(Root) 100000 struct -> tree_backed | 33.281 ms/op | 39.877 ms/op | 0.83 | | Vector(Root) 100000 tree_backed -> struct | 41.374 ms/op | 49.295 ms/op | 0.84 | | Vector(Root) 100000 struct -> binary | 1.9639 ms/op | 1.9264 ms/op | 1.02 | | Vector(Root) 100000 tree_backed -> binary | 9.8277 ms/op | 10.306 ms/op | 0.95 | | List(Validator) 100000 binary -> struct | 109.07 ms/op | 136.95 ms/op | 0.80 | | List(Validator) 100000 binary -> tree_backed | 286.11 ms/op | 342.33 ms/op | 0.84 | | List(Validator) 100000 struct -> tree_backed | 300.74 ms/op | 379.47 ms/op | 0.79 | | List(Validator) 100000 tree_backed -> struct | 186.46 ms/op | 232.64 ms/op | 0.80 | | List(Validator) 100000 struct -> binary | 38.005 ms/op | 31.297 ms/op | 1.21 | | List(Validator) 100000 tree_backed -> binary | 97.362 ms/op | 100.03 ms/op | 0.97 | | List(Validator-NS) 100000 binary -> struct | 103.40 ms/op | 137.06 ms/op | 0.75 | | List(Validator-NS) 100000 binary -> tree_backed | 159.21 ms/op | 192.38 ms/op | 0.83 | | List(Validator-NS) 100000 struct -> tree_backed | 194.36 ms/op | 227.69 ms/op | 0.85 | | List(Validator-NS) 100000 tree_backed -> struct | 154.62 ms/op | 178.53 ms/op | 0.87 | | List(Validator-NS) 100000 struct -> binary | 37.910 ms/op | 31.634 ms/op | 1.20 | | List(Validator-NS) 100000 tree_backed -> binary | 38.288 ms/op | 36.209 ms/op | 1.06 | | get epochStatuses - MutableVector | 108.62 us/op | 94.256 us/op | 1.15 | | get epochStatuses - ViewDU | 204.08 us/op | 206.46 us/op | 0.99 | | set epochStatuses - ListTreeView | 1.5688 ms/op | 1.7382 ms/op | 0.90 | | set epochStatuses - ListTreeView - set() | 440.05 us/op | 442.01 us/op | 1.00 | | set epochStatuses - ListTreeView - commit() | 433.14 us/op | 425.97 us/op | 1.02 | | bitstring | 647.36 ns/op | 639.22 ns/op | 1.01 | | bit mask | 13.871 ns/op | 13.693 ns/op | 1.01 | | struct - increase slot to 1000000 | 928.31 us/op | 927.37 us/op | 1.00 | | UintNumberType - increase slot to 1000000 | 28.494 ms/op | 28.874 ms/op | 0.99 | | UintBigintType - increase slot to 1000000 | 424.62 ms/op | 411.05 ms/op | 1.03 | | UintBigint8 x 100000 tree_deserialize | 4.8990 ms/op | 4.5436 ms/op | 1.08 | | UintBigint8 x 100000 tree_serialize | 1.2049 ms/op | 1.1860 ms/op | 1.02 | | UintBigint16 x 100000 tree_deserialize | 5.4422 ms/op | 4.1935 ms/op | 1.30 | | UintBigint16 x 100000 tree_serialize | 1.2968 ms/op | 1.1447 ms/op | 1.13 | | UintBigint32 x 100000 tree_deserialize | 5.1044 ms/op | 4.6370 ms/op | 1.10 | | UintBigint32 x 100000 tree_serialize | 1.3930 ms/op | 1.2128 ms/op | 1.15 | | UintBigint64 x 100000 tree_deserialize | 5.7858 ms/op | 5.4607 ms/op | 1.06 | | UintBigint64 x 100000 tree_serialize | 1.7832 ms/op | 1.6501 ms/op | 1.08 | | UintBigint8 x 100000 value_deserialize | 433.13 us/op | 436.74 us/op | 0.99 | | UintBigint8 x 100000 value_serialize | 667.25 us/op | 630.07 us/op | 1.06 | | UintBigint16 x 100000 value_deserialize | 470.86 us/op | 464.02 us/op | 1.01 | | UintBigint16 x 100000 value_serialize | 688.78 us/op | 649.19 us/op | 1.06 | | UintBigint32 x 100000 value_deserialize | 432.84 us/op | 436.23 us/op | 0.99 | | UintBigint32 x 100000 value_serialize | 720.81 us/op | 643.64 us/op | 1.12 | | UintBigint64 x 100000 value_deserialize | 465.07 us/op | 465.13 us/op | 1.00 | | UintBigint64 x 100000 value_serialize | 966.58 us/op | 797.24 us/op | 1.21 | | UintBigint8 x 100000 deserialize | 4.9281 ms/op | 5.2747 ms/op | 0.93 | | UintBigint8 x 100000 serialize | 1.5711 ms/op | 1.4062 ms/op | 1.12 | | UintBigint16 x 100000 deserialize | 4.6564 ms/op | 5.2890 ms/op | 0.88 | | UintBigint16 x 100000 serialize | 1.5091 ms/op | 1.4486 ms/op | 1.04 | | UintBigint32 x 100000 deserialize | 5.4348 ms/op | 5.4833 ms/op | 0.99 | | UintBigint32 x 100000 serialize | 2.7875 ms/op | 2.8139 ms/op | 0.99 | | UintBigint64 x 100000 deserialize | 3.8848 ms/op | 4.4435 ms/op | 0.87 | | UintBigint64 x 100000 serialize | 1.4879 ms/op | 1.5126 ms/op | 0.98 | | UintBigint128 x 100000 deserialize | 6.3447 ms/op | 6.4324 ms/op | 0.99 | | UintBigint128 x 100000 serialize | 17.415 ms/op | 17.236 ms/op | 1.01 | | UintBigint256 x 100000 deserialize | 10.981 ms/op | 11.598 ms/op | 0.95 | | UintBigint256 x 100000 serialize | 50.468 ms/op | 51.060 ms/op | 0.99 | | Slice from Uint8Array x25000 | 1.0297 ms/op | 988.47 us/op | 1.04 | | Slice from ArrayBuffer x25000 | 18.051 ms/op | 17.571 ms/op | 1.03 | | Slice from ArrayBuffer x25000 + new Uint8Array | 20.452 ms/op | 20.102 ms/op | 1.02 | | Copy Uint8Array 100000 iterate | 819.52 us/op | 925.74 us/op | 0.89 | | Copy Uint8Array 100000 slice | 91.701 us/op | 138.34 us/op | 0.66 | | Copy Uint8Array 100000 Uint8Array.prototype.slice.call | 93.187 us/op | 137.74 us/op | 0.68 | | Copy Buffer 100000 Uint8Array.prototype.slice.call | 92.812 us/op | 147.00 us/op | 0.63 | | Copy Uint8Array 100000 slice + set | 182.81 us/op | 261.50 us/op | 0.70 | | Copy Uint8Array 100000 subarray + set | 92.927 us/op | 134.45 us/op | 0.69 | | Copy Uint8Array 100000 slice arrayBuffer | 92.696 us/op | 128.65 us/op | 0.72 | | Uint64 deserialize 100000 - iterate Uint8Array | 1.9527 ms/op | 1.8804 ms/op | 1.04 | | Uint64 deserialize 100000 - by Uint32A | 1.9474 ms/op | 1.9150 ms/op | 1.02 | | Uint64 deserialize 100000 - by DataView.getUint32 x2 | 1.9746 ms/op | 1.9270 ms/op | 1.02 | | Uint64 deserialize 100000 - by DataView.getBigUint64 | 5.0432 ms/op | 4.9707 ms/op | 1.01 | | Uint64 deserialize 100000 - by byte | 65.241 ms/op | 65.055 ms/op | 1.00 |

by benchmarkbot/action