ChainSafe / ssz

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

chore: release master #354

Closed wemeetagain closed 4 months ago

wemeetagain commented 4 months ago

:robot: I have created a release beep boop

persistent-merkle-tree: 0.7.1 ## [0.7.1](https://github.com/ChainSafe/ssz/compare/persistent-merkle-tree-v0.7.0...persistent-merkle-tree-v0.7.1) (2024-03-15) ### Bug Fixes * export ListUintNum64Type ([#353](https://github.com/ChainSafe/ssz/issues/353)) ([30e3deb](https://github.com/ChainSafe/ssz/commit/30e3debbaf7346711eb201740c072aab645d3b14))
ssz: 0.15.1 ## [0.15.1](https://github.com/ChainSafe/ssz/compare/ssz-v0.15.0...ssz-v0.15.1) (2024-03-15) ### Bug Fixes * export ListUintNum64Type ([#353](https://github.com/ChainSafe/ssz/issues/353)) ([30e3deb](https://github.com/ChainSafe/ssz/commit/30e3debbaf7346711eb201740c072aab645d3b14)) ### Dependencies * The following workspace dependencies were updated * dependencies * @chainsafe/persistent-merkle-tree bumped to 0.7.1

This PR was generated with Release Please. See documentation.

github-actions[bot] commented 4 months ago

Performance Report

✔️ no performance regression detected

Full benchmark results | Benchmark suite | Current: fd5e202759213f1b1cd66b132b142b4afa0e5690 | Previous: 39b39b4e9702f5428a2a8388076fce6c78af6897 | Ratio | |-|-|-|-| | digestTwoHashObjects 50023 times | 47.723 ms/op | 47.667 ms/op | 1.00 | | digest64 50023 times | 49.732 ms/op | 49.772 ms/op | 1.00 | | digest 50023 times | 49.781 ms/op | 49.617 ms/op | 1.00 | | input length 32 | 1.2190 us/op | 1.2260 us/op | 0.99 | | input length 64 | 1.3100 us/op | 1.3330 us/op | 0.98 | | input length 128 | 2.2630 us/op | 2.2910 us/op | 0.99 | | input length 256 | 3.3700 us/op | 3.3920 us/op | 0.99 | | input length 512 | 5.5300 us/op | 5.5440 us/op | 1.00 | | input length 1024 | 10.833 us/op | 10.849 us/op | 1.00 | | digest 1000000 times | 826.06 ms/op | 828.77 ms/op | 1.00 | | hashObjectToByteArray 50023 times | 1.4247 ms/op | 1.4285 ms/op | 1.00 | | byteArrayToHashObject 50023 times | 1.8980 ms/op | 1.8256 ms/op | 1.04 | | getGindicesAtDepth | 4.4990 us/op | 4.4430 us/op | 1.01 | | iterateAtDepth | 10.075 us/op | 9.4740 us/op | 1.06 | | getGindexBits | 480.00 ns/op | 495.00 ns/op | 0.97 | | gindexIterator | 1.0990 us/op | 1.0870 us/op | 1.01 | | hash 2 Uint8Array 2250026 times - as-sha256 | 2.2576 s/op | 2.2649 s/op | 1.00 | | hashTwoObjects 2250026 times - as-sha256 | 2.1558 s/op | 2.1590 s/op | 1.00 | | hash 2 Uint8Array 2250026 times - noble | 5.4846 s/op | 5.1457 s/op | 1.07 | | hashTwoObjects 2250026 times - noble | 8.2834 s/op | 7.6650 s/op | 1.08 | | getNodeH() x7812.5 avg hindex | 14.701 us/op | 14.567 us/op | 1.01 | | getNodeH() x7812.5 index 0 | 5.1760 us/op | 5.1780 us/op | 1.00 | | getNodeH() x7812.5 index 7 | 5.1340 us/op | 5.1770 us/op | 0.99 | | getNodeH() x7812.5 index 7 with key array | 5.1770 us/op | 5.1060 us/op | 1.01 | | new LeafNode() x7812.5 | 113.22 us/op | 118.43 us/op | 0.96 | | multiproof - depth 15, 1 requested leaves | 10.299 us/op | 9.7350 us/op | 1.06 | | tree offset multiproof - depth 15, 1 requested leaves | 22.817 us/op | 23.450 us/op | 0.97 | | compact multiproof - depth 15, 1 requested leaves | 5.3520 us/op | 4.9540 us/op | 1.08 | | multiproof - depth 15, 2 requested leaves | 15.032 us/op | 14.292 us/op | 1.05 | | tree offset multiproof - depth 15, 2 requested leaves | 26.549 us/op | 24.751 us/op | 1.07 | | compact multiproof - depth 15, 2 requested leaves | 3.4630 us/op | 3.3900 us/op | 1.02 | | multiproof - depth 15, 3 requested leaves | 20.740 us/op | 19.582 us/op | 1.06 | | tree offset multiproof - depth 15, 3 requested leaves | 33.745 us/op | 34.104 us/op | 0.99 | | compact multiproof - depth 15, 3 requested leaves | 5.9480 us/op | 6.2810 us/op | 0.95 | | multiproof - depth 15, 4 requested leaves | 27.899 us/op | 27.940 us/op | 1.00 | | tree offset multiproof - depth 15, 4 requested leaves | 42.854 us/op | 42.180 us/op | 1.02 | | compact multiproof - depth 15, 4 requested leaves | 6.4450 us/op | 6.6270 us/op | 0.97 | | packedRootsBytesToLeafNodes bytes 4000 offset 0 | 2.0990 us/op | 2.1820 us/op | 0.96 | | packedRootsBytesToLeafNodes bytes 4000 offset 1 | 2.0740 us/op | 1.9220 us/op | 1.08 | | packedRootsBytesToLeafNodes bytes 4000 offset 2 | 2.0760 us/op | 1.8130 us/op | 1.15 | | packedRootsBytesToLeafNodes bytes 4000 offset 3 | 1.8140 us/op | 1.7830 us/op | 1.02 | | subtreeFillToContents depth 40 count 250000 | 39.965 ms/op | 40.884 ms/op | 0.98 | | setRoot - gindexBitstring | 9.7963 ms/op | 10.284 ms/op | 0.95 | | setRoot - gindex | 12.051 ms/op | 12.624 ms/op | 0.95 | | getRoot - gindexBitstring | 2.9423 ms/op | 2.7033 ms/op | 1.09 | | getRoot - gindex | 3.6763 ms/op | 3.5120 ms/op | 1.05 | | getHashObject then setHashObject | 12.068 ms/op | 12.202 ms/op | 0.99 | | setNodeWithFn | 10.676 ms/op | 10.029 ms/op | 1.06 | | getNodeAtDepth depth 0 x100000 | 1.1430 ms/op | 1.1439 ms/op | 1.00 | | setNodeAtDepth depth 0 x100000 | 3.2616 ms/op | 3.0671 ms/op | 1.06 | | getNodesAtDepth depth 0 x100000 | 1.0832 ms/op | 1.0841 ms/op | 1.00 | | setNodesAtDepth depth 0 x100000 | 1.4854 ms/op | 1.4917 ms/op | 1.00 | | getNodeAtDepth depth 1 x100000 | 1.2087 ms/op | 1.2077 ms/op | 1.00 | | setNodeAtDepth depth 1 x100000 | 6.6208 ms/op | 6.6206 ms/op | 1.00 | | getNodesAtDepth depth 1 x100000 | 1.2080 ms/op | 1.2104 ms/op | 1.00 | | setNodesAtDepth depth 1 x100000 | 5.5764 ms/op | 5.7682 ms/op | 0.97 | | getNodeAtDepth depth 2 x100000 | 1.4839 ms/op | 1.4859 ms/op | 1.00 | | setNodeAtDepth depth 2 x100000 | 10.973 ms/op | 11.365 ms/op | 0.97 | | getNodesAtDepth depth 2 x100000 | 21.091 ms/op | 22.235 ms/op | 0.95 | | setNodesAtDepth depth 2 x100000 | 21.793 ms/op | 16.632 ms/op | 1.31 | | tree.getNodesAtDepth - gindexes | 8.4302 ms/op | 8.3880 ms/op | 1.01 | | tree.getNodesAtDepth - push all nodes | 2.2829 ms/op | 2.4368 ms/op | 0.94 | | tree.getNodesAtDepth - navigation | 155.38 us/op | 157.65 us/op | 0.99 | | tree.setNodesAtDepth - indexes | 488.96 us/op | 434.88 us/op | 1.12 | | set at depth 8 | 773.00 ns/op | 759.00 ns/op | 1.02 | | set at depth 16 | 954.00 ns/op | 911.00 ns/op | 1.05 | | set at depth 32 | 1.5640 us/op | 1.3090 us/op | 1.19 | | iterateNodesAtDepth 8 256 | 18.495 us/op | 17.262 us/op | 1.07 | | getNodesAtDepth 8 256 | 3.8770 us/op | 3.8630 us/op | 1.00 | | iterateNodesAtDepth 16 65536 | 5.1772 ms/op | 4.9030 ms/op | 1.06 | | getNodesAtDepth 16 65536 | 2.2292 ms/op | 2.1411 ms/op | 1.04 | | iterateNodesAtDepth 32 250000 | 19.376 ms/op | 17.860 ms/op | 1.08 | | getNodesAtDepth 32 250000 | 6.9741 ms/op | 5.8007 ms/op | 1.20 | | iterateNodesAtDepth 40 250000 | 19.873 ms/op | 17.559 ms/op | 1.13 | | getNodesAtDepth 40 250000 | 4.7021 ms/op | 5.2690 ms/op | 0.89 | | 250k validators | 8.1459 s/op | 9.4509 s/op | 0.86 | | bitlist bytes to struct (120,90) | 639.00 ns/op | 813.00 ns/op | 0.79 | | bitlist bytes to tree (120,90) | 2.6750 us/op | 2.7960 us/op | 0.96 | | bitlist bytes to struct (2048,2048) | 1.2590 us/op | 1.3840 us/op | 0.91 | | bitlist bytes to tree (2048,2048) | 3.9370 us/op | 4.1220 us/op | 0.96 | | ByteListType - deserialize | 10.259 ms/op | 8.7896 ms/op | 1.17 | | BasicListType - deserialize | 27.479 ms/op | 9.6807 ms/op | 2.84 | | ByteListType - serialize | 10.398 ms/op | 9.4080 ms/op | 1.11 | | BasicListType - serialize | 11.317 ms/op | 12.170 ms/op | 0.93 | | BasicListType - tree_convertToStruct | 20.605 ms/op | 24.261 ms/op | 0.85 | | List[uint8, 68719476736] len 300000 ViewDU.getAll() + iterate | 4.7388 ms/op | 4.5458 ms/op | 1.04 | | List[uint8, 68719476736] len 300000 ViewDU.get(i) | 4.1626 ms/op | 4.1414 ms/op | 1.01 | | Array.push len 300000 empty Array - number | 7.1910 ms/op | 6.8793 ms/op | 1.05 | | Array.set len 300000 from new Array - number | 1.6982 ms/op | 1.6469 ms/op | 1.03 | | Array.set len 300000 - number | 6.0181 ms/op | 6.0207 ms/op | 1.00 | | Uint8Array.set len 300000 | 224.75 us/op | 225.99 us/op | 0.99 | | Uint32Array.set len 300000 | 301.34 us/op | 313.42 us/op | 0.96 | | Container({a: uint8, b: uint8}) getViewDU x300000 | 20.323 ms/op | 21.160 ms/op | 0.96 | | ContainerNodeStruct({a: uint8, b: uint8}) getViewDU x300000 | 10.118 ms/op | 10.082 ms/op | 1.00 | | List(Container) len 300000 ViewDU.getAllReadonly() + iterate | 218.55 ms/op | 223.39 ms/op | 0.98 | | List(Container) len 300000 ViewDU.getAllReadonlyValues() + iterate | 328.92 ms/op | 331.20 ms/op | 0.99 | | List(Container) len 300000 ViewDU.get(i) | 7.3989 ms/op | 7.8577 ms/op | 0.94 | | List(Container) len 300000 ViewDU.getReadonly(i) | 7.0921 ms/op | 7.5450 ms/op | 0.94 | | List(ContainerNodeStruct) len 300000 ViewDU.getAllReadonly() + iterate | 38.058 ms/op | 39.828 ms/op | 0.96 | | List(ContainerNodeStruct) len 300000 ViewDU.getAllReadonlyValues() + iterate | 5.7890 ms/op | 5.7757 ms/op | 1.00 | | List(ContainerNodeStruct) len 300000 ViewDU.get(i) | 6.9186 ms/op | 6.8262 ms/op | 1.01 | | List(ContainerNodeStruct) len 300000 ViewDU.getReadonly(i) | 6.8403 ms/op | 6.6419 ms/op | 1.03 | | Array.push len 300000 empty Array - object | 7.0357 ms/op | 6.8811 ms/op | 1.02 | | Array.set len 300000 from new Array - object | 1.9468 ms/op | 1.9328 ms/op | 1.01 | | Array.set len 300000 - object | 6.6308 ms/op | 6.6441 ms/op | 1.00 | | cachePermanentRootStruct no cache | 9.7460 us/op | 9.8510 us/op | 0.99 | | cachePermanentRootStruct with cache | 261.00 ns/op | 251.00 ns/op | 1.04 | | epochParticipation len 250000 rws 7813 | 2.4009 ms/op | 2.3643 ms/op | 1.02 | | deserialize Attestation - tree | 3.4140 us/op | 3.2780 us/op | 1.04 | | deserialize Attestation - struct | 2.3260 us/op | 2.2260 us/op | 1.04 | | deserialize SignedAggregateAndProof - tree | 4.4100 us/op | 4.1320 us/op | 1.07 | | deserialize SignedAggregateAndProof - struct | 3.2590 us/op | 3.3220 us/op | 0.98 | | deserialize SyncCommitteeMessage - tree | 1.2430 us/op | 1.1670 us/op | 1.07 | | deserialize SyncCommitteeMessage - struct | 1.3890 us/op | 1.3420 us/op | 1.04 | | deserialize SignedContributionAndProof - tree | 2.0390 us/op | 2.0740 us/op | 0.98 | | deserialize SignedContributionAndProof - struct | 2.7680 us/op | 2.7420 us/op | 1.01 | | deserialize SignedBeaconBlock - tree | 266.16 us/op | 240.91 us/op | 1.10 | | deserialize SignedBeaconBlock - struct | 156.16 us/op | 148.12 us/op | 1.05 | | BeaconState vc 300000 - deserialize tree | 602.70 ms/op | 590.30 ms/op | 1.02 | | BeaconState vc 300000 - serialize tree | 115.18 ms/op | 120.44 ms/op | 0.96 | | BeaconState.historicalRoots vc 300000 - deserialize tree | 953.00 ns/op | 945.00 ns/op | 1.01 | | BeaconState.historicalRoots vc 300000 - serialize tree | 872.00 ns/op | 837.00 ns/op | 1.04 | | BeaconState.validators vc 300000 - deserialize tree | 540.30 ms/op | 568.10 ms/op | 0.95 | | BeaconState.validators vc 300000 - serialize tree | 110.15 ms/op | 111.70 ms/op | 0.99 | | BeaconState.balances vc 300000 - deserialize tree | 20.425 ms/op | 18.918 ms/op | 1.08 | | BeaconState.balances vc 300000 - serialize tree | 5.3915 ms/op | 3.4981 ms/op | 1.54 | | BeaconState.previousEpochParticipation vc 300000 - deserialize tree | 671.59 us/op | 461.60 us/op | 1.45 | | BeaconState.previousEpochParticipation vc 300000 - serialize tree | 280.97 us/op | 269.01 us/op | 1.04 | | BeaconState.currentEpochParticipation vc 300000 - deserialize tree | 698.44 us/op | 485.22 us/op | 1.44 | | BeaconState.currentEpochParticipation vc 300000 - serialize tree | 285.77 us/op | 268.69 us/op | 1.06 | | BeaconState.inactivityScores vc 300000 - deserialize tree | 20.558 ms/op | 16.847 ms/op | 1.22 | | BeaconState.inactivityScores vc 300000 - serialize tree | 6.2079 ms/op | 5.4842 ms/op | 1.13 | | hashTreeRoot Attestation - struct | 33.359 us/op | 35.242 us/op | 0.95 | | hashTreeRoot Attestation - tree | 19.557 us/op | 18.606 us/op | 1.05 | | hashTreeRoot SignedAggregateAndProof - struct | 54.255 us/op | 46.009 us/op | 1.18 | | hashTreeRoot SignedAggregateAndProof - tree | 29.644 us/op | 29.594 us/op | 1.00 | | hashTreeRoot SyncCommitteeMessage - struct | 12.400 us/op | 15.157 us/op | 0.82 | | hashTreeRoot SyncCommitteeMessage - tree | 6.2110 us/op | 6.2990 us/op | 0.99 | | hashTreeRoot SignedContributionAndProof - struct | 35.881 us/op | 32.872 us/op | 1.09 | | hashTreeRoot SignedContributionAndProof - tree | 24.250 us/op | 23.120 us/op | 1.05 | | hashTreeRoot SignedBeaconBlock - struct | 2.4931 ms/op | 2.7187 ms/op | 0.92 | | hashTreeRoot SignedBeaconBlock - tree | 1.7069 ms/op | 1.6918 ms/op | 1.01 | | hashTreeRoot Validator - struct | 12.986 us/op | 14.488 us/op | 0.90 | | hashTreeRoot Validator - tree | 11.025 us/op | 12.519 us/op | 0.88 | | BeaconState vc 300000 - hashTreeRoot tree | 3.7678 s/op | 3.7754 s/op | 1.00 | | BeaconState.historicalRoots vc 300000 - hashTreeRoot tree | 1.5290 us/op | 1.5300 us/op | 1.00 | | BeaconState.validators vc 300000 - hashTreeRoot tree | 3.6046 s/op | 3.6146 s/op | 1.00 | | BeaconState.balances vc 300000 - hashTreeRoot tree | 88.468 ms/op | 89.419 ms/op | 0.99 | | BeaconState.previousEpochParticipation vc 300000 - hashTreeRoot tree | 9.0448 ms/op | 8.9598 ms/op | 1.01 | | BeaconState.currentEpochParticipation vc 300000 - hashTreeRoot tree | 9.0417 ms/op | 8.9620 ms/op | 1.01 | | BeaconState.inactivityScores vc 300000 - hashTreeRoot tree | 84.502 ms/op | 84.145 ms/op | 1.00 | | hash64 x18 | 19.382 us/op | 19.842 us/op | 0.98 | | hashTwoObjects x18 | 18.494 us/op | 18.016 us/op | 1.03 | | hash64 x1740 | 1.8924 ms/op | 1.8712 ms/op | 1.01 | | hashTwoObjects x1740 | 1.7039 ms/op | 1.7062 ms/op | 1.00 | | hash64 x2700000 | 2.8927 s/op | 2.8955 s/op | 1.00 | | hashTwoObjects x2700000 | 2.6628 s/op | 2.6504 s/op | 1.00 | | get_exitEpoch - ContainerType | 236.00 ns/op | 244.00 ns/op | 0.97 | | get_exitEpoch - ContainerNodeStructType | 232.00 ns/op | 246.00 ns/op | 0.94 | | set_exitEpoch - ContainerType | 276.00 ns/op | 269.00 ns/op | 1.03 | | set_exitEpoch - ContainerNodeStructType | 245.00 ns/op | 249.00 ns/op | 0.98 | | get_pubkey - ContainerType | 1.3220 us/op | 1.2600 us/op | 1.05 | | get_pubkey - ContainerNodeStructType | 243.00 ns/op | 248.00 ns/op | 0.98 | | hashTreeRoot - ContainerType | 479.00 ns/op | 470.00 ns/op | 1.02 | | hashTreeRoot - ContainerNodeStructType | 511.00 ns/op | 496.00 ns/op | 1.03 | | createProof - ContainerType | 4.7880 us/op | 4.3070 us/op | 1.11 | | createProof - ContainerNodeStructType | 25.279 us/op | 24.445 us/op | 1.03 | | serialize - ContainerType | 1.9500 us/op | 1.9570 us/op | 1.00 | | serialize - ContainerNodeStructType | 1.7670 us/op | 1.7840 us/op | 0.99 | | set_exitEpoch_and_hashTreeRoot - ContainerType | 4.3920 us/op | 4.3290 us/op | 1.01 | | set_exitEpoch_and_hashTreeRoot - ContainerNodeStructType | 12.016 us/op | 11.805 us/op | 1.02 | | Array - for of | 5.1990 us/op | 5.1830 us/op | 1.00 | | Array - for(;;) | 4.5910 us/op | 4.5070 us/op | 1.02 | | basicListValue.readonlyValuesArray() | 5.3872 ms/op | 5.2504 ms/op | 1.03 | | basicListValue.readonlyValuesArray() + loop all | 5.8477 ms/op | 4.9297 ms/op | 1.19 | | compositeListValue.readonlyValuesArray() | 29.803 ms/op | 35.036 ms/op | 0.85 | | compositeListValue.readonlyValuesArray() + loop all | 25.653 ms/op | 30.195 ms/op | 0.85 | | Number64UintType - get balances list | 4.7835 ms/op | 4.3181 ms/op | 1.11 | | Number64UintType - set balances list | 11.218 ms/op | 11.342 ms/op | 0.99 | | Number64UintType - get and increase 10 then set | 41.380 ms/op | 43.135 ms/op | 0.96 | | Number64UintType - increase 10 using applyDelta | 17.893 ms/op | 17.126 ms/op | 1.04 | | Number64UintType - increase 10 using applyDeltaInBatch | 17.895 ms/op | 17.035 ms/op | 1.05 | | tree_newTreeFromUint64Deltas | 15.929 ms/op | 18.649 ms/op | 0.85 | | unsafeUint8ArrayToTree | 30.982 ms/op | 36.647 ms/op | 0.85 | | bitLength(50) | 251.00 ns/op | 225.00 ns/op | 1.12 | | bitLengthStr(50) | 287.00 ns/op | 242.00 ns/op | 1.19 | | bitLength(8000) | 247.00 ns/op | 223.00 ns/op | 1.11 | | bitLengthStr(8000) | 334.00 ns/op | 289.00 ns/op | 1.16 | | bitLength(250000) | 242.00 ns/op | 224.00 ns/op | 1.08 | | bitLengthStr(250000) | 369.00 ns/op | 322.00 ns/op | 1.15 | | floor - Math.floor (53) | 0.46424 ns/op | 0.46458 ns/op | 1.00 | | floor - << 0 (53) | 0.46475 ns/op | 0.46703 ns/op | 1.00 | | floor - Math.floor (512) | 0.46602 ns/op | 0.46401 ns/op | 1.00 | | floor - << 0 (512) | 0.46399 ns/op | 0.46510 ns/op | 1.00 | | fnIf(0) | 1.5458 ns/op | 1.5462 ns/op | 1.00 | | fnSwitch(0) | 2.4756 ns/op | 2.4766 ns/op | 1.00 | | fnObj(0) | 0.46412 ns/op | 0.46556 ns/op | 1.00 | | fnArr(0) | 0.46478 ns/op | 0.46682 ns/op | 1.00 | | fnIf(4) | 2.1667 ns/op | 2.1637 ns/op | 1.00 | | fnSwitch(4) | 2.5154 ns/op | 2.4723 ns/op | 1.02 | | fnObj(4) | 0.46544 ns/op | 0.46430 ns/op | 1.00 | | fnArr(4) | 0.46922 ns/op | 0.46571 ns/op | 1.01 | | fnIf(9) | 3.0925 ns/op | 3.1031 ns/op | 1.00 | | fnSwitch(9) | 2.5158 ns/op | 2.4730 ns/op | 1.02 | | fnObj(9) | 0.46442 ns/op | 0.46466 ns/op | 1.00 | | fnArr(9) | 0.47305 ns/op | 0.46787 ns/op | 1.01 | | Container {a,b,vec} - as struct x100000 | 47.710 us/op | 47.104 us/op | 1.01 | | Container {a,b,vec} - as tree x100000 | 371.31 us/op | 371.14 us/op | 1.00 | | Container {a,vec,b} - as struct x100000 | 77.514 us/op | 78.237 us/op | 0.99 | | Container {a,vec,b} - as tree x100000 | 403.00 us/op | 403.55 us/op | 1.00 | | get 2 props x1000000 - rawObject | 309.58 us/op | 309.80 us/op | 1.00 | | get 2 props x1000000 - proxy | 72.315 ms/op | 71.793 ms/op | 1.01 | | get 2 props x1000000 - customObj | 310.38 us/op | 309.30 us/op | 1.00 | | Simple object binary -> struct | 676.00 ns/op | 619.00 ns/op | 1.09 | | Simple object binary -> tree_backed | 1.8650 us/op | 1.6640 us/op | 1.12 | | Simple object struct -> tree_backed | 2.4550 us/op | 2.2100 us/op | 1.11 | | Simple object tree_backed -> struct | 2.0910 us/op | 1.8580 us/op | 1.13 | | Simple object struct -> binary | 1.0360 us/op | 959.00 ns/op | 1.08 | | Simple object tree_backed -> binary | 1.7660 us/op | 1.6200 us/op | 1.09 | | aggregationBits binary -> struct | 620.00 ns/op | 565.00 ns/op | 1.10 | | aggregationBits binary -> tree_backed | 2.2690 us/op | 2.2530 us/op | 1.01 | | aggregationBits struct -> tree_backed | 2.8150 us/op | 2.7040 us/op | 1.04 | | aggregationBits tree_backed -> struct | 1.2450 us/op | 1.1400 us/op | 1.09 | | aggregationBits struct -> binary | 908.00 ns/op | 844.00 ns/op | 1.08 | | aggregationBits tree_backed -> binary | 1.0570 us/op | 998.00 ns/op | 1.06 | | List(uint8) 100000 binary -> struct | 1.3832 ms/op | 1.1267 ms/op | 1.23 | | List(uint8) 100000 binary -> tree_backed | 104.73 us/op | 79.659 us/op | 1.31 | | List(uint8) 100000 struct -> tree_backed | 1.5708 ms/op | 1.3478 ms/op | 1.17 | | List(uint8) 100000 tree_backed -> struct | 1.0070 ms/op | 949.99 us/op | 1.06 | | List(uint8) 100000 struct -> binary | 1.4075 ms/op | 1.2828 ms/op | 1.10 | | List(uint8) 100000 tree_backed -> binary | 85.937 us/op | 85.539 us/op | 1.00 | | List(uint64Number) 100000 binary -> struct | 1.2635 ms/op | 1.2415 ms/op | 1.02 | | List(uint64Number) 100000 binary -> tree_backed | 3.2099 ms/op | 3.9778 ms/op | 0.81 | | List(uint64Number) 100000 struct -> tree_backed | 4.9537 ms/op | 5.1952 ms/op | 0.95 | | List(uint64Number) 100000 tree_backed -> struct | 2.1718 ms/op | 2.1170 ms/op | 1.03 | | List(uint64Number) 100000 struct -> binary | 1.6108 ms/op | 1.4710 ms/op | 1.10 | | List(uint64Number) 100000 tree_backed -> binary | 838.30 us/op | 826.94 us/op | 1.01 | | List(Uint64Bigint) 100000 binary -> struct | 3.5164 ms/op | 3.7317 ms/op | 0.94 | | List(Uint64Bigint) 100000 binary -> tree_backed | 3.3698 ms/op | 3.9422 ms/op | 0.85 | | List(Uint64Bigint) 100000 struct -> tree_backed | 4.6976 ms/op | 6.0311 ms/op | 0.78 | | List(Uint64Bigint) 100000 tree_backed -> struct | 4.4089 ms/op | 4.7228 ms/op | 0.93 | | List(Uint64Bigint) 100000 struct -> binary | 2.0689 ms/op | 2.0434 ms/op | 1.01 | | List(Uint64Bigint) 100000 tree_backed -> binary | 942.12 us/op | 831.51 us/op | 1.13 | | Vector(Root) 100000 binary -> struct | 30.909 ms/op | 38.421 ms/op | 0.80 | | Vector(Root) 100000 binary -> tree_backed | 31.183 ms/op | 37.493 ms/op | 0.83 | | Vector(Root) 100000 struct -> tree_backed | 33.711 ms/op | 39.877 ms/op | 0.85 | | Vector(Root) 100000 tree_backed -> struct | 44.855 ms/op | 49.295 ms/op | 0.91 | | Vector(Root) 100000 struct -> binary | 1.9058 ms/op | 1.9264 ms/op | 0.99 | | Vector(Root) 100000 tree_backed -> binary | 10.600 ms/op | 10.306 ms/op | 1.03 | | List(Validator) 100000 binary -> struct | 107.92 ms/op | 136.95 ms/op | 0.79 | | List(Validator) 100000 binary -> tree_backed | 285.88 ms/op | 342.33 ms/op | 0.84 | | List(Validator) 100000 struct -> tree_backed | 302.22 ms/op | 379.47 ms/op | 0.80 | | List(Validator) 100000 tree_backed -> struct | 197.01 ms/op | 232.64 ms/op | 0.85 | | List(Validator) 100000 struct -> binary | 31.227 ms/op | 31.297 ms/op | 1.00 | | List(Validator) 100000 tree_backed -> binary | 97.491 ms/op | 100.03 ms/op | 0.97 | | List(Validator-NS) 100000 binary -> struct | 95.633 ms/op | 137.06 ms/op | 0.70 | | List(Validator-NS) 100000 binary -> tree_backed | 157.49 ms/op | 192.38 ms/op | 0.82 | | List(Validator-NS) 100000 struct -> tree_backed | 191.24 ms/op | 227.69 ms/op | 0.84 | | List(Validator-NS) 100000 tree_backed -> struct | 150.96 ms/op | 178.53 ms/op | 0.85 | | List(Validator-NS) 100000 struct -> binary | 31.041 ms/op | 31.634 ms/op | 0.98 | | List(Validator-NS) 100000 tree_backed -> binary | 35.829 ms/op | 36.209 ms/op | 0.99 | | get epochStatuses - MutableVector | 94.353 us/op | 94.256 us/op | 1.00 | | get epochStatuses - ViewDU | 204.39 us/op | 206.46 us/op | 0.99 | | set epochStatuses - ListTreeView | 1.4246 ms/op | 1.7382 ms/op | 0.82 | | set epochStatuses - ListTreeView - set() | 435.59 us/op | 442.01 us/op | 0.99 | | set epochStatuses - ListTreeView - commit() | 420.41 us/op | 425.97 us/op | 0.99 | | bitstring | 643.00 ns/op | 639.22 ns/op | 1.01 | | bit mask | 14.342 ns/op | 13.693 ns/op | 1.05 | | struct - increase slot to 1000000 | 928.46 us/op | 927.37 us/op | 1.00 | | UintNumberType - increase slot to 1000000 | 28.813 ms/op | 28.874 ms/op | 1.00 | | UintBigintType - increase slot to 1000000 | 418.88 ms/op | 411.05 ms/op | 1.02 | | UintBigint8 x 100000 tree_deserialize | 5.0027 ms/op | 4.5436 ms/op | 1.10 | | UintBigint8 x 100000 tree_serialize | 1.1900 ms/op | 1.1860 ms/op | 1.00 | | UintBigint16 x 100000 tree_deserialize | 4.8038 ms/op | 4.1935 ms/op | 1.15 | | UintBigint16 x 100000 tree_serialize | 1.2007 ms/op | 1.1447 ms/op | 1.05 | | UintBigint32 x 100000 tree_deserialize | 4.8856 ms/op | 4.6370 ms/op | 1.05 | | UintBigint32 x 100000 tree_serialize | 1.2683 ms/op | 1.2128 ms/op | 1.05 | | UintBigint64 x 100000 tree_deserialize | 5.6798 ms/op | 5.4607 ms/op | 1.04 | | UintBigint64 x 100000 tree_serialize | 1.5788 ms/op | 1.6501 ms/op | 0.96 | | UintBigint8 x 100000 value_deserialize | 433.46 us/op | 436.74 us/op | 0.99 | | UintBigint8 x 100000 value_serialize | 601.40 us/op | 630.07 us/op | 0.95 | | UintBigint16 x 100000 value_deserialize | 463.95 us/op | 464.02 us/op | 1.00 | | UintBigint16 x 100000 value_serialize | 630.95 us/op | 649.19 us/op | 0.97 | | UintBigint32 x 100000 value_deserialize | 437.56 us/op | 436.23 us/op | 1.00 | | UintBigint32 x 100000 value_serialize | 643.13 us/op | 643.64 us/op | 1.00 | | UintBigint64 x 100000 value_deserialize | 469.88 us/op | 465.13 us/op | 1.01 | | UintBigint64 x 100000 value_serialize | 818.60 us/op | 797.24 us/op | 1.03 | | UintBigint8 x 100000 deserialize | 4.7084 ms/op | 5.2747 ms/op | 0.89 | | UintBigint8 x 100000 serialize | 1.4584 ms/op | 1.4062 ms/op | 1.04 | | UintBigint16 x 100000 deserialize | 4.7442 ms/op | 5.2890 ms/op | 0.90 | | UintBigint16 x 100000 serialize | 1.5556 ms/op | 1.4486 ms/op | 1.07 | | UintBigint32 x 100000 deserialize | 5.2564 ms/op | 5.4833 ms/op | 0.96 | | UintBigint32 x 100000 serialize | 2.8166 ms/op | 2.8139 ms/op | 1.00 | | UintBigint64 x 100000 deserialize | 3.6229 ms/op | 4.4435 ms/op | 0.82 | | UintBigint64 x 100000 serialize | 1.4865 ms/op | 1.5126 ms/op | 0.98 | | UintBigint128 x 100000 deserialize | 5.9001 ms/op | 6.4324 ms/op | 0.92 | | UintBigint128 x 100000 serialize | 17.391 ms/op | 17.236 ms/op | 1.01 | | UintBigint256 x 100000 deserialize | 10.998 ms/op | 11.598 ms/op | 0.95 | | UintBigint256 x 100000 serialize | 50.826 ms/op | 51.060 ms/op | 1.00 | | Slice from Uint8Array x25000 | 1.0238 ms/op | 988.47 us/op | 1.04 | | Slice from ArrayBuffer x25000 | 17.319 ms/op | 17.571 ms/op | 0.99 | | Slice from ArrayBuffer x25000 + new Uint8Array | 19.957 ms/op | 20.102 ms/op | 0.99 | | Copy Uint8Array 100000 iterate | 817.93 us/op | 925.74 us/op | 0.88 | | Copy Uint8Array 100000 slice | 86.736 us/op | 138.34 us/op | 0.63 | | Copy Uint8Array 100000 Uint8Array.prototype.slice.call | 88.266 us/op | 137.74 us/op | 0.64 | | Copy Buffer 100000 Uint8Array.prototype.slice.call | 88.705 us/op | 147.00 us/op | 0.60 | | Copy Uint8Array 100000 slice + set | 175.59 us/op | 261.50 us/op | 0.67 | | Copy Uint8Array 100000 subarray + set | 88.772 us/op | 134.45 us/op | 0.66 | | Copy Uint8Array 100000 slice arrayBuffer | 88.990 us/op | 128.65 us/op | 0.69 | | Uint64 deserialize 100000 - iterate Uint8Array | 1.8904 ms/op | 1.8804 ms/op | 1.01 | | Uint64 deserialize 100000 - by Uint32A | 1.8217 ms/op | 1.9150 ms/op | 0.95 | | Uint64 deserialize 100000 - by DataView.getUint32 x2 | 1.8701 ms/op | 1.9270 ms/op | 0.97 | | Uint64 deserialize 100000 - by DataView.getBigUint64 | 5.0388 ms/op | 4.9707 ms/op | 1.01 | | Uint64 deserialize 100000 - by byte | 65.192 ms/op | 65.055 ms/op | 1.00 |

by benchmarkbot/action

wemeetagain commented 4 months ago

:robot: Release is at https://github.com/ChainSafe/ssz/releases/tag/persistent-merkle-tree-v0.7.1 :sunflower:

wemeetagain commented 4 months ago

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