ChainSafe / ssz

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

chore: release master #345

Closed wemeetagain closed 5 months ago

wemeetagain commented 5 months ago

:robot: I have created a release beep boop

ssz: 0.14.3 ## [0.14.3](https://github.com/ChainSafe/ssz/compare/ssz-v0.14.2...ssz-v0.14.3) (2024-02-10) ### Bug Fixes * relax other instances of intersectValues ([#344](https://github.com/ChainSafe/ssz/issues/344)) ([e000351](https://github.com/ChainSafe/ssz/commit/e0003516dd4e50005182b55ab954baab81d9cc12))

This PR was generated with Release Please. See documentation.

wemeetagain commented 5 months ago

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

github-actions[bot] commented 5 months ago

Performance Report

✔️ no performance regression detected

Full benchmark results | Benchmark suite | Current: 5ee2412afb93a4a07f429582b57a5a0b42c68f42 | Previous: b618564deabcd9d268ce5e64896cfc72e8870ad2 | Ratio | |-|-|-|-| | digestTwoHashObjects 50023 times | 47.968 ms/op | 47.612 ms/op | 1.01 | | digest64 50023 times | 49.323 ms/op | 49.282 ms/op | 1.00 | | digest 50023 times | 48.461 ms/op | 49.263 ms/op | 0.98 | | input length 32 | 1.1440 us/op | 1.1760 us/op | 0.97 | | input length 64 | 1.2500 us/op | 1.2870 us/op | 0.97 | | input length 128 | 2.1990 us/op | 2.2310 us/op | 0.99 | | input length 256 | 3.2810 us/op | 3.3110 us/op | 0.99 | | input length 512 | 5.5480 us/op | 5.4000 us/op | 1.03 | | input length 1024 | 10.803 us/op | 10.857 us/op | 1.00 | | digest 1000000 times | 778.99 ms/op | 812.74 ms/op | 0.96 | | hashObjectToByteArray 50023 times | 1.4314 ms/op | 1.4655 ms/op | 0.98 | | byteArrayToHashObject 50023 times | 1.6642 ms/op | 1.7148 ms/op | 0.97 | | getGindicesAtDepth | 3.9620 us/op | 4.0300 us/op | 0.98 | | iterateAtDepth | 8.2330 us/op | 8.4090 us/op | 0.98 | | getGindexBits | 412.00 ns/op | 401.00 ns/op | 1.03 | | gindexIterator | 926.00 ns/op | 953.00 ns/op | 0.97 | | hash 2 Uint8Array 2250026 times - as-sha256 | 2.2262 s/op | 2.2245 s/op | 1.00 | | hashTwoObjects 2250026 times - as-sha256 | 2.1391 s/op | 2.1509 s/op | 0.99 | | hash 2 Uint8Array 2250026 times - noble | 4.8702 s/op | 5.0134 s/op | 0.97 | | hashTwoObjects 2250026 times - noble | 6.9490 s/op | 6.8784 s/op | 1.01 | | getNodeH() x7812.5 avg hindex | 14.484 us/op | 14.587 us/op | 0.99 | | getNodeH() x7812.5 index 0 | 5.0950 us/op | 5.1850 us/op | 0.98 | | getNodeH() x7812.5 index 7 | 5.1670 us/op | 5.1260 us/op | 1.01 | | getNodeH() x7812.5 index 7 with key array | 5.1810 us/op | 5.0680 us/op | 1.02 | | new LeafNode() x7812.5 | 111.07 us/op | 111.93 us/op | 0.99 | | multiproof - depth 15, 1 requested leaves | 9.3200 us/op | 9.5620 us/op | 0.97 | | tree offset multiproof - depth 15, 1 requested leaves | 20.670 us/op | 20.888 us/op | 0.99 | | compact multiproof - depth 15, 1 requested leaves | 5.5940 us/op | 5.6780 us/op | 0.99 | | multiproof - depth 15, 2 requested leaves | 13.726 us/op | 13.561 us/op | 1.01 | | tree offset multiproof - depth 15, 2 requested leaves | 24.997 us/op | 23.484 us/op | 1.06 | | compact multiproof - depth 15, 2 requested leaves | 3.5590 us/op | 3.4380 us/op | 1.04 | | multiproof - depth 15, 3 requested leaves | 18.143 us/op | 18.357 us/op | 0.99 | | tree offset multiproof - depth 15, 3 requested leaves | 30.557 us/op | 31.318 us/op | 0.98 | | compact multiproof - depth 15, 3 requested leaves | 4.7240 us/op | 4.7350 us/op | 1.00 | | multiproof - depth 15, 4 requested leaves | 23.810 us/op | 24.379 us/op | 0.98 | | tree offset multiproof - depth 15, 4 requested leaves | 37.700 us/op | 38.245 us/op | 0.99 | | compact multiproof - depth 15, 4 requested leaves | 5.4910 us/op | 5.5090 us/op | 1.00 | | packedRootsBytesToLeafNodes bytes 4000 offset 0 | 1.9570 us/op | 2.0230 us/op | 0.97 | | packedRootsBytesToLeafNodes bytes 4000 offset 1 | 1.9570 us/op | 2.0190 us/op | 0.97 | | packedRootsBytesToLeafNodes bytes 4000 offset 2 | 1.9510 us/op | 1.9870 us/op | 0.98 | | packedRootsBytesToLeafNodes bytes 4000 offset 3 | 1.9520 us/op | 1.9790 us/op | 0.99 | | subtreeFillToContents depth 40 count 250000 | 49.372 ms/op | 44.877 ms/op | 1.10 | | setRoot - gindexBitstring | 7.8669 ms/op | 9.2769 ms/op | 0.85 | | setRoot - gindex | 8.1615 ms/op | 9.9059 ms/op | 0.82 | | getRoot - gindexBitstring | 2.3000 ms/op | 2.5968 ms/op | 0.89 | | getRoot - gindex | 3.1974 ms/op | 3.2107 ms/op | 1.00 | | getHashObject then setHashObject | 9.2576 ms/op | 10.713 ms/op | 0.86 | | setNodeWithFn | 7.9075 ms/op | 9.5235 ms/op | 0.83 | | getNodeAtDepth depth 0 x100000 | 1.1465 ms/op | 1.1458 ms/op | 1.00 | | setNodeAtDepth depth 0 x100000 | 2.3331 ms/op | 2.7021 ms/op | 0.86 | | getNodesAtDepth depth 0 x100000 | 1.0833 ms/op | 1.0855 ms/op | 1.00 | | setNodesAtDepth depth 0 x100000 | 1.4959 ms/op | 1.4856 ms/op | 1.01 | | getNodeAtDepth depth 1 x100000 | 1.2072 ms/op | 1.2485 ms/op | 0.97 | | setNodeAtDepth depth 1 x100000 | 5.1469 ms/op | 5.9347 ms/op | 0.87 | | getNodesAtDepth depth 1 x100000 | 1.2087 ms/op | 1.2110 ms/op | 1.00 | | setNodesAtDepth depth 1 x100000 | 4.3061 ms/op | 4.8568 ms/op | 0.89 | | getNodeAtDepth depth 2 x100000 | 1.4833 ms/op | 1.5000 ms/op | 0.99 | | setNodeAtDepth depth 2 x100000 | 8.8744 ms/op | 12.132 ms/op | 0.73 | | getNodesAtDepth depth 2 x100000 | 19.149 ms/op | 20.331 ms/op | 0.94 | | setNodesAtDepth depth 2 x100000 | 12.952 ms/op | 15.797 ms/op | 0.82 | | tree.getNodesAtDepth - gindexes | 5.7449 ms/op | 6.2406 ms/op | 0.92 | | tree.getNodesAtDepth - push all nodes | 1.7768 ms/op | 2.2091 ms/op | 0.80 | | tree.getNodesAtDepth - navigation | 155.37 us/op | 160.65 us/op | 0.97 | | tree.setNodesAtDepth - indexes | 356.62 us/op | 387.00 us/op | 0.92 | | set at depth 8 | 462.00 ns/op | 521.00 ns/op | 0.89 | | set at depth 16 | 589.00 ns/op | 677.00 ns/op | 0.87 | | set at depth 32 | 905.00 ns/op | 1.0710 us/op | 0.85 | | iterateNodesAtDepth 8 256 | 13.154 us/op | 14.195 us/op | 0.93 | | getNodesAtDepth 8 256 | 3.2810 us/op | 3.4560 us/op | 0.95 | | iterateNodesAtDepth 16 65536 | 4.0861 ms/op | 4.6221 ms/op | 0.88 | | getNodesAtDepth 16 65536 | 1.5968 ms/op | 2.1251 ms/op | 0.75 | | iterateNodesAtDepth 32 250000 | 15.060 ms/op | 17.599 ms/op | 0.86 | | getNodesAtDepth 32 250000 | 4.2255 ms/op | 4.2390 ms/op | 1.00 | | iterateNodesAtDepth 40 250000 | 15.248 ms/op | 15.361 ms/op | 0.99 | | getNodesAtDepth 40 250000 | 4.2309 ms/op | 4.2633 ms/op | 0.99 | | 250k validators | 7.1290 s/op | 7.1164 s/op | 1.00 | | bitlist bytes to struct (120,90) | 579.00 ns/op | 569.00 ns/op | 1.02 | | bitlist bytes to tree (120,90) | 2.3170 us/op | 2.2990 us/op | 1.01 | | bitlist bytes to struct (2048,2048) | 1.0310 us/op | 1.0250 us/op | 1.01 | | bitlist bytes to tree (2048,2048) | 3.5830 us/op | 3.6480 us/op | 0.98 | | ByteListType - deserialize | 8.5667 ms/op | 7.8290 ms/op | 1.09 | | BasicListType - deserialize | 7.7270 ms/op | 7.7469 ms/op | 1.00 | | ByteListType - serialize | 9.1932 ms/op | 8.1315 ms/op | 1.13 | | BasicListType - serialize | 10.452 ms/op | 10.716 ms/op | 0.98 | | BasicListType - tree_convertToStruct | 21.720 ms/op | 21.691 ms/op | 1.00 | | List[uint8, 68719476736] len 300000 ViewDU.getAll() + iterate | 4.0847 ms/op | 4.2758 ms/op | 0.96 | | List[uint8, 68719476736] len 300000 ViewDU.get(i) | 4.1595 ms/op | 4.1334 ms/op | 1.01 | | Array.push len 300000 empty Array - number | 6.0911 ms/op | 5.6930 ms/op | 1.07 | | Array.set len 300000 from new Array - number | 1.6068 ms/op | 1.8125 ms/op | 0.89 | | Array.set len 300000 - number | 5.1148 ms/op | 5.2855 ms/op | 0.97 | | Uint8Array.set len 300000 | 208.02 us/op | 213.24 us/op | 0.98 | | Uint32Array.set len 300000 | 283.17 us/op | 296.46 us/op | 0.96 | | Container({a: uint8, b: uint8}) getViewDU x300000 | 20.246 ms/op | 20.171 ms/op | 1.00 | | ContainerNodeStruct({a: uint8, b: uint8}) getViewDU x300000 | 9.2642 ms/op | 9.4035 ms/op | 0.99 | | List(Container) len 300000 ViewDU.getAllReadonly() + iterate | 251.95 ms/op | 238.02 ms/op | 1.06 | | List(Container) len 300000 ViewDU.getAllReadonlyValues() + iterate | 264.08 ms/op | 283.76 ms/op | 0.93 | | List(Container) len 300000 ViewDU.get(i) | 6.5753 ms/op | 6.5989 ms/op | 1.00 | | List(Container) len 300000 ViewDU.getReadonly(i) | 6.4818 ms/op | 6.3506 ms/op | 1.02 | | List(ContainerNodeStruct) len 300000 ViewDU.getAllReadonly() + iterate | 38.331 ms/op | 37.577 ms/op | 1.02 | | List(ContainerNodeStruct) len 300000 ViewDU.getAllReadonlyValues() + iterate | 5.4847 ms/op | 5.0698 ms/op | 1.08 | | List(ContainerNodeStruct) len 300000 ViewDU.get(i) | 6.2745 ms/op | 6.0586 ms/op | 1.04 | | List(ContainerNodeStruct) len 300000 ViewDU.getReadonly(i) | 6.0134 ms/op | 5.9688 ms/op | 1.01 | | Array.push len 300000 empty Array - object | 5.9344 ms/op | 5.7707 ms/op | 1.03 | | Array.set len 300000 from new Array - object | 1.8528 ms/op | 1.9207 ms/op | 0.96 | | Array.set len 300000 - object | 5.7809 ms/op | 5.5494 ms/op | 1.04 | | cachePermanentRootStruct no cache | 8.7620 us/op | 8.9030 us/op | 0.98 | | cachePermanentRootStruct with cache | 219.00 ns/op | 222.00 ns/op | 0.99 | | epochParticipation len 250000 rws 7813 | 2.2587 ms/op | 2.2905 ms/op | 0.99 | | deserialize Attestation - tree | 2.8940 us/op | 2.8880 us/op | 1.00 | | deserialize Attestation - struct | 1.9670 us/op | 1.9580 us/op | 1.00 | | deserialize SignedAggregateAndProof - tree | 3.6980 us/op | 3.6400 us/op | 1.02 | | deserialize SignedAggregateAndProof - struct | 2.9820 us/op | 3.1500 us/op | 0.95 | | deserialize SyncCommitteeMessage - tree | 1.1070 us/op | 1.1010 us/op | 1.01 | | deserialize SyncCommitteeMessage - struct | 1.1790 us/op | 1.2830 us/op | 0.92 | | deserialize SignedContributionAndProof - tree | 1.9610 us/op | 2.0040 us/op | 0.98 | | deserialize SignedContributionAndProof - struct | 2.4670 us/op | 2.6760 us/op | 0.92 | | deserialize SignedBeaconBlock - tree | 211.44 us/op | 215.59 us/op | 0.98 | | deserialize SignedBeaconBlock - struct | 126.88 us/op | 134.89 us/op | 0.94 | | BeaconState vc 300000 - deserialize tree | 632.68 ms/op | 663.14 ms/op | 0.95 | | BeaconState vc 300000 - serialize tree | 141.58 ms/op | 134.01 ms/op | 1.06 | | BeaconState.historicalRoots vc 300000 - deserialize tree | 812.00 ns/op | 812.00 ns/op | 1.00 | | BeaconState.historicalRoots vc 300000 - serialize tree | 793.00 ns/op | 804.00 ns/op | 0.99 | | BeaconState.validators vc 300000 - deserialize tree | 638.89 ms/op | 644.93 ms/op | 0.99 | | BeaconState.validators vc 300000 - serialize tree | 120.69 ms/op | 144.52 ms/op | 0.84 | | BeaconState.balances vc 300000 - deserialize tree | 23.295 ms/op | 23.727 ms/op | 0.98 | | BeaconState.balances vc 300000 - serialize tree | 3.3553 ms/op | 3.9601 ms/op | 0.85 | | BeaconState.previousEpochParticipation vc 300000 - deserialize tree | 417.24 us/op | 454.42 us/op | 0.92 | | BeaconState.previousEpochParticipation vc 300000 - serialize tree | 275.14 us/op | 272.12 us/op | 1.01 | | BeaconState.currentEpochParticipation vc 300000 - deserialize tree | 411.03 us/op | 475.35 us/op | 0.86 | | BeaconState.currentEpochParticipation vc 300000 - serialize tree | 273.12 us/op | 266.87 us/op | 1.02 | | BeaconState.inactivityScores vc 300000 - deserialize tree | 23.618 ms/op | 24.210 ms/op | 0.98 | | BeaconState.inactivityScores vc 300000 - serialize tree | 2.6413 ms/op | 3.5828 ms/op | 0.74 | | hashTreeRoot Attestation - struct | 27.107 us/op | 31.780 us/op | 0.85 | | hashTreeRoot Attestation - tree | 19.424 us/op | 20.969 us/op | 0.93 | | hashTreeRoot SignedAggregateAndProof - struct | 43.005 us/op | 42.488 us/op | 1.01 | | hashTreeRoot SignedAggregateAndProof - tree | 27.680 us/op | 28.493 us/op | 0.97 | | hashTreeRoot SyncCommitteeMessage - struct | 9.0650 us/op | 10.163 us/op | 0.89 | | hashTreeRoot SyncCommitteeMessage - tree | 6.2030 us/op | 6.2080 us/op | 1.00 | | hashTreeRoot SignedContributionAndProof - struct | 26.030 us/op | 28.920 us/op | 0.90 | | hashTreeRoot SignedContributionAndProof - tree | 19.450 us/op | 20.387 us/op | 0.95 | | hashTreeRoot SignedBeaconBlock - struct | 2.2341 ms/op | 2.3990 ms/op | 0.93 | | hashTreeRoot SignedBeaconBlock - tree | 1.6705 ms/op | 1.6681 ms/op | 1.00 | | hashTreeRoot Validator - struct | 12.271 us/op | 13.158 us/op | 0.93 | | hashTreeRoot Validator - tree | 10.605 us/op | 10.744 us/op | 0.99 | | BeaconState vc 300000 - hashTreeRoot tree | 3.6880 s/op | 3.6275 s/op | 1.02 | | BeaconState.historicalRoots vc 300000 - hashTreeRoot tree | 1.4360 us/op | 1.4070 us/op | 1.02 | | BeaconState.validators vc 300000 - hashTreeRoot tree | 4.5799 s/op | 3.4803 s/op | 1.32 | | BeaconState.balances vc 300000 - hashTreeRoot tree | 89.950 ms/op | 88.816 ms/op | 1.01 | | BeaconState.previousEpochParticipation vc 300000 - hashTreeRoot tree | 9.0247 ms/op | 9.0264 ms/op | 1.00 | | BeaconState.currentEpochParticipation vc 300000 - hashTreeRoot tree | 9.0307 ms/op | 9.0248 ms/op | 1.00 | | BeaconState.inactivityScores vc 300000 - hashTreeRoot tree | 95.640 ms/op | 82.415 ms/op | 1.16 | | hash64 x18 | 19.400 us/op | 19.206 us/op | 1.01 | | hashTwoObjects x18 | 17.841 us/op | 17.883 us/op | 1.00 | | hash64 x1740 | 1.8130 ms/op | 1.8136 ms/op | 1.00 | | hashTwoObjects x1740 | 1.6945 ms/op | 1.6992 ms/op | 1.00 | | hash64 x2700000 | 2.8243 s/op | 2.8458 s/op | 0.99 | | hashTwoObjects x2700000 | 2.6490 s/op | 2.6437 s/op | 1.00 | | get_exitEpoch - ContainerType | 204.00 ns/op | 223.00 ns/op | 0.91 | | get_exitEpoch - ContainerNodeStructType | 204.00 ns/op | 211.00 ns/op | 0.97 | | set_exitEpoch - ContainerType | 239.00 ns/op | 249.00 ns/op | 0.96 | | set_exitEpoch - ContainerNodeStructType | 214.00 ns/op | 213.00 ns/op | 1.00 | | get_pubkey - ContainerType | 955.00 ns/op | 1.0310 us/op | 0.93 | | get_pubkey - ContainerNodeStructType | 215.00 ns/op | 220.00 ns/op | 0.98 | | hashTreeRoot - ContainerType | 377.00 ns/op | 386.00 ns/op | 0.98 | | hashTreeRoot - ContainerNodeStructType | 403.00 ns/op | 451.00 ns/op | 0.89 | | createProof - ContainerType | 3.8630 us/op | 4.0780 us/op | 0.95 | | createProof - ContainerNodeStructType | 21.112 us/op | 22.545 us/op | 0.94 | | serialize - ContainerType | 1.9470 us/op | 1.9390 us/op | 1.00 | | serialize - ContainerNodeStructType | 1.4660 us/op | 1.5660 us/op | 0.94 | | set_exitEpoch_and_hashTreeRoot - ContainerType | 4.1290 us/op | 4.0870 us/op | 1.01 | | set_exitEpoch_and_hashTreeRoot - ContainerNodeStructType | 11.203 us/op | 11.297 us/op | 0.99 | | Array - for of | 5.0560 us/op | 5.4450 us/op | 0.93 | | Array - for(;;) | 4.2960 us/op | 4.6620 us/op | 0.92 | | basicListValue.readonlyValuesArray() | 3.6242 ms/op | 3.9753 ms/op | 0.91 | | basicListValue.readonlyValuesArray() + loop all | 3.7148 ms/op | 3.9408 ms/op | 0.94 | | compositeListValue.readonlyValuesArray() | 27.618 ms/op | 29.072 ms/op | 0.95 | | compositeListValue.readonlyValuesArray() + loop all | 24.463 ms/op | 25.935 ms/op | 0.94 | | Number64UintType - get balances list | 4.4493 ms/op | 4.1898 ms/op | 1.06 | | Number64UintType - set balances list | 9.9633 ms/op | 9.8827 ms/op | 1.01 | | Number64UintType - get and increase 10 then set | 40.211 ms/op | 40.714 ms/op | 0.99 | | Number64UintType - increase 10 using applyDelta | 16.369 ms/op | 16.969 ms/op | 0.96 | | Number64UintType - increase 10 using applyDeltaInBatch | 15.907 ms/op | 16.598 ms/op | 0.96 | | tree_newTreeFromUint64Deltas | 14.873 ms/op | 17.681 ms/op | 0.84 | | unsafeUint8ArrayToTree | 30.959 ms/op | 30.339 ms/op | 1.02 | | bitLength(50) | 238.00 ns/op | 225.00 ns/op | 1.06 | | bitLengthStr(50) | 240.00 ns/op | 231.00 ns/op | 1.04 | | bitLength(8000) | 226.00 ns/op | 218.00 ns/op | 1.04 | | bitLengthStr(8000) | 280.00 ns/op | 281.00 ns/op | 1.00 | | bitLength(250000) | 231.00 ns/op | 221.00 ns/op | 1.05 | | bitLengthStr(250000) | 317.00 ns/op | 312.00 ns/op | 1.02 | | floor - Math.floor (53) | 0.46541 ns/op | 0.46511 ns/op | 1.00 | | floor - << 0 (53) | 0.46471 ns/op | 0.46556 ns/op | 1.00 | | floor - Math.floor (512) | 0.46458 ns/op | 0.47048 ns/op | 0.99 | | floor - << 0 (512) | 0.46620 ns/op | 0.46387 ns/op | 1.01 | | fnIf(0) | 1.5464 ns/op | 1.5593 ns/op | 0.99 | | fnSwitch(0) | 2.4743 ns/op | 2.5068 ns/op | 0.99 | | fnObj(0) | 0.46488 ns/op | 0.46380 ns/op | 1.00 | | fnArr(0) | 0.46748 ns/op | 0.47008 ns/op | 0.99 | | fnIf(4) | 2.1646 ns/op | 2.1674 ns/op | 1.00 | | fnSwitch(4) | 2.4748 ns/op | 2.4744 ns/op | 1.00 | | fnObj(4) | 0.46427 ns/op | 0.46634 ns/op | 1.00 | | fnArr(4) | 0.46618 ns/op | 0.46501 ns/op | 1.00 | | fnIf(9) | 3.0921 ns/op | 3.1528 ns/op | 0.98 | | fnSwitch(9) | 2.4758 ns/op | 2.5086 ns/op | 0.99 | | fnObj(9) | 0.46454 ns/op | 0.46566 ns/op | 1.00 | | fnArr(9) | 0.46401 ns/op | 0.46533 ns/op | 1.00 | | Container {a,b,vec} - as struct x100000 | 46.580 us/op | 46.567 us/op | 1.00 | | Container {a,b,vec} - as tree x100000 | 373.65 us/op | 371.37 us/op | 1.01 | | Container {a,vec,b} - as struct x100000 | 77.564 us/op | 77.498 us/op | 1.00 | | Container {a,vec,b} - as tree x100000 | 402.19 us/op | 410.59 us/op | 0.98 | | get 2 props x1000000 - rawObject | 309.58 us/op | 309.93 us/op | 1.00 | | get 2 props x1000000 - proxy | 72.484 ms/op | 78.681 ms/op | 0.92 | | get 2 props x1000000 - customObj | 310.70 us/op | 309.70 us/op | 1.00 | | Simple object binary -> struct | 624.00 ns/op | 827.00 ns/op | 0.75 | | Simple object binary -> tree_backed | 1.6910 us/op | 2.2420 us/op | 0.75 | | Simple object struct -> tree_backed | 2.1520 us/op | 2.8600 us/op | 0.75 | | Simple object tree_backed -> struct | 1.8410 us/op | 2.3680 us/op | 0.78 | | Simple object struct -> binary | 921.00 ns/op | 1.1670 us/op | 0.79 | | Simple object tree_backed -> binary | 1.6430 us/op | 2.0990 us/op | 0.78 | | aggregationBits binary -> struct | 549.00 ns/op | 796.00 ns/op | 0.69 | | aggregationBits binary -> tree_backed | 2.0720 us/op | 2.4740 us/op | 0.84 | | aggregationBits struct -> tree_backed | 2.5070 us/op | 2.8750 us/op | 0.87 | | aggregationBits tree_backed -> struct | 1.0470 us/op | 1.2420 us/op | 0.84 | | aggregationBits struct -> binary | 752.00 ns/op | 860.00 ns/op | 0.87 | | aggregationBits tree_backed -> binary | 942.00 ns/op | 1.0970 us/op | 0.86 | | List(uint8) 100000 binary -> struct | 1.3361 ms/op | 1.2414 ms/op | 1.08 | | List(uint8) 100000 binary -> tree_backed | 89.385 us/op | 86.055 us/op | 1.04 | | List(uint8) 100000 struct -> tree_backed | 1.3143 ms/op | 1.3271 ms/op | 0.99 | | List(uint8) 100000 tree_backed -> struct | 950.24 us/op | 928.22 us/op | 1.02 | | List(uint8) 100000 struct -> binary | 1.2242 ms/op | 1.2140 ms/op | 1.01 | | List(uint8) 100000 tree_backed -> binary | 82.176 us/op | 85.896 us/op | 0.96 | | List(uint64Number) 100000 binary -> struct | 1.2383 ms/op | 1.2397 ms/op | 1.00 | | List(uint64Number) 100000 binary -> tree_backed | 3.3956 ms/op | 3.6978 ms/op | 0.92 | | List(uint64Number) 100000 struct -> tree_backed | 5.0048 ms/op | 5.0504 ms/op | 0.99 | | List(uint64Number) 100000 tree_backed -> struct | 2.0376 ms/op | 2.1119 ms/op | 0.96 | | List(uint64Number) 100000 struct -> binary | 1.4589 ms/op | 1.3890 ms/op | 1.05 | | List(uint64Number) 100000 tree_backed -> binary | 816.76 us/op | 744.16 us/op | 1.10 | | List(Uint64Bigint) 100000 binary -> struct | 3.3041 ms/op | 3.2103 ms/op | 1.03 | | List(Uint64Bigint) 100000 binary -> tree_backed | 3.9604 ms/op | 3.3616 ms/op | 1.18 | | List(Uint64Bigint) 100000 struct -> tree_backed | 6.0351 ms/op | 6.0119 ms/op | 1.00 | | List(Uint64Bigint) 100000 tree_backed -> struct | 4.3236 ms/op | 4.2382 ms/op | 1.02 | | List(Uint64Bigint) 100000 struct -> binary | 2.0798 ms/op | 2.0561 ms/op | 1.01 | | List(Uint64Bigint) 100000 tree_backed -> binary | 841.94 us/op | 880.28 us/op | 0.96 | | Vector(Root) 100000 binary -> struct | 36.365 ms/op | 37.587 ms/op | 0.97 | | Vector(Root) 100000 binary -> tree_backed | 32.915 ms/op | 37.347 ms/op | 0.88 | | Vector(Root) 100000 struct -> tree_backed | 42.477 ms/op | 39.141 ms/op | 1.09 | | Vector(Root) 100000 tree_backed -> struct | 48.796 ms/op | 48.030 ms/op | 1.02 | | Vector(Root) 100000 struct -> binary | 1.8519 ms/op | 1.8767 ms/op | 0.99 | | Vector(Root) 100000 tree_backed -> binary | 8.7839 ms/op | 8.4738 ms/op | 1.04 | | List(Validator) 100000 binary -> struct | 120.96 ms/op | 129.36 ms/op | 0.94 | | List(Validator) 100000 binary -> tree_backed | 323.20 ms/op | 334.47 ms/op | 0.97 | | List(Validator) 100000 struct -> tree_backed | 356.84 ms/op | 346.32 ms/op | 1.03 | | List(Validator) 100000 tree_backed -> struct | 215.57 ms/op | 215.51 ms/op | 1.00 | | List(Validator) 100000 struct -> binary | 30.752 ms/op | 30.304 ms/op | 1.01 | | List(Validator) 100000 tree_backed -> binary | 99.683 ms/op | 100.13 ms/op | 1.00 | | List(Validator-NS) 100000 binary -> struct | 115.51 ms/op | 126.42 ms/op | 0.91 | | List(Validator-NS) 100000 binary -> tree_backed | 181.26 ms/op | 176.49 ms/op | 1.03 | | List(Validator-NS) 100000 struct -> tree_backed | 219.02 ms/op | 215.56 ms/op | 1.02 | | List(Validator-NS) 100000 tree_backed -> struct | 174.51 ms/op | 180.03 ms/op | 0.97 | | List(Validator-NS) 100000 struct -> binary | 30.750 ms/op | 31.290 ms/op | 0.98 | | List(Validator-NS) 100000 tree_backed -> binary | 36.271 ms/op | 38.182 ms/op | 0.95 | | get epochStatuses - MutableVector | 92.360 us/op | 101.91 us/op | 0.91 | | get epochStatuses - ViewDU | 197.55 us/op | 197.34 us/op | 1.00 | | set epochStatuses - ListTreeView | 1.4902 ms/op | 1.3946 ms/op | 1.07 | | set epochStatuses - ListTreeView - set() | 428.44 us/op | 427.69 us/op | 1.00 | | set epochStatuses - ListTreeView - commit() | 400.43 us/op | 409.16 us/op | 0.98 | | bitstring | 642.71 ns/op | 641.73 ns/op | 1.00 | | bit mask | 13.084 ns/op | 14.009 ns/op | 0.93 | | struct - increase slot to 1000000 | 929.45 us/op | 931.48 us/op | 1.00 | | UintNumberType - increase slot to 1000000 | 28.481 ms/op | 28.512 ms/op | 1.00 | | UintBigintType - increase slot to 1000000 | 430.55 ms/op | 421.63 ms/op | 1.02 | | UintBigint8 x 100000 tree_deserialize | 4.5670 ms/op | 4.5787 ms/op | 1.00 | | UintBigint8 x 100000 tree_serialize | 1.1904 ms/op | 1.1843 ms/op | 1.01 | | UintBigint16 x 100000 tree_deserialize | 4.6166 ms/op | 4.5861 ms/op | 1.01 | | UintBigint16 x 100000 tree_serialize | 1.1550 ms/op | 1.1533 ms/op | 1.00 | | UintBigint32 x 100000 tree_deserialize | 4.7186 ms/op | 4.6960 ms/op | 1.00 | | UintBigint32 x 100000 tree_serialize | 1.2313 ms/op | 1.2113 ms/op | 1.02 | | UintBigint64 x 100000 tree_deserialize | 5.8910 ms/op | 5.4589 ms/op | 1.08 | | UintBigint64 x 100000 tree_serialize | 1.5921 ms/op | 1.5880 ms/op | 1.00 | | UintBigint8 x 100000 value_deserialize | 434.90 us/op | 432.88 us/op | 1.00 | | UintBigint8 x 100000 value_serialize | 594.37 us/op | 596.22 us/op | 1.00 | | UintBigint16 x 100000 value_deserialize | 464.69 us/op | 464.02 us/op | 1.00 | | UintBigint16 x 100000 value_serialize | 632.64 us/op | 623.97 us/op | 1.01 | | UintBigint32 x 100000 value_deserialize | 433.20 us/op | 432.95 us/op | 1.00 | | UintBigint32 x 100000 value_serialize | 627.61 us/op | 634.17 us/op | 0.99 | | UintBigint64 x 100000 value_deserialize | 465.93 us/op | 465.43 us/op | 1.00 | | UintBigint64 x 100000 value_serialize | 818.40 us/op | 816.84 us/op | 1.00 | | UintBigint8 x 100000 deserialize | 4.6443 ms/op | 4.5242 ms/op | 1.03 | | UintBigint8 x 100000 serialize | 1.4418 ms/op | 1.4565 ms/op | 0.99 | | UintBigint16 x 100000 deserialize | 4.8478 ms/op | 4.6700 ms/op | 1.04 | | UintBigint16 x 100000 serialize | 1.5132 ms/op | 1.5142 ms/op | 1.00 | | UintBigint32 x 100000 deserialize | 5.3002 ms/op | 5.3763 ms/op | 0.99 | | UintBigint32 x 100000 serialize | 2.7568 ms/op | 2.7367 ms/op | 1.01 | | UintBigint64 x 100000 deserialize | 3.5840 ms/op | 3.8752 ms/op | 0.92 | | UintBigint64 x 100000 serialize | 1.4899 ms/op | 1.4656 ms/op | 1.02 | | UintBigint128 x 100000 deserialize | 5.8246 ms/op | 5.8200 ms/op | 1.00 | | UintBigint128 x 100000 serialize | 17.971 ms/op | 17.985 ms/op | 1.00 | | UintBigint256 x 100000 deserialize | 11.363 ms/op | 10.842 ms/op | 1.05 | | UintBigint256 x 100000 serialize | 53.286 ms/op | 51.641 ms/op | 1.03 | | Slice from Uint8Array x25000 | 988.40 us/op | 1.0127 ms/op | 0.98 | | Slice from ArrayBuffer x25000 | 17.076 ms/op | 16.460 ms/op | 1.04 | | Slice from ArrayBuffer x25000 + new Uint8Array | 18.333 ms/op | 18.414 ms/op | 1.00 | | Copy Uint8Array 100000 iterate | 798.14 us/op | 810.82 us/op | 0.98 | | Copy Uint8Array 100000 slice | 89.815 us/op | 85.124 us/op | 1.06 | | Copy Uint8Array 100000 Uint8Array.prototype.slice.call | 89.974 us/op | 84.760 us/op | 1.06 | | Copy Buffer 100000 Uint8Array.prototype.slice.call | 90.193 us/op | 84.994 us/op | 1.06 | | Copy Uint8Array 100000 slice + set | 147.60 us/op | 144.55 us/op | 1.02 | | Copy Uint8Array 100000 subarray + set | 90.086 us/op | 85.174 us/op | 1.06 | | Copy Uint8Array 100000 slice arrayBuffer | 90.313 us/op | 85.403 us/op | 1.06 | | Uint64 deserialize 100000 - iterate Uint8Array | 1.7713 ms/op | 1.7106 ms/op | 1.04 | | Uint64 deserialize 100000 - by Uint32A | 1.7362 ms/op | 1.7307 ms/op | 1.00 | | Uint64 deserialize 100000 - by DataView.getUint32 x2 | 1.7470 ms/op | 1.7345 ms/op | 1.01 | | Uint64 deserialize 100000 - by DataView.getBigUint64 | 4.8151 ms/op | 4.8010 ms/op | 1.00 | | Uint64 deserialize 100000 - by byte | 42.797 ms/op | 43.056 ms/op | 0.99 |

by benchmarkbot/action