Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: release master #443

Closed
wants to merge 1 commit into from
Closed

Conversation

wemeetagain
Copy link
Member

🤖 I have created a release beep boop

as-sha256: 1.0.0

1.0.0 (2025-01-17)

⚠ BREAKING CHANGES

  • implement hashInto() api for as-sha256 (#382)

Features

  • add swappable hasher, default to noble-hashes (#314) (4b44614)
  • implement hashInto() api for as-sha256 (#382) (ccadf43)
  • non simd sha256 for incompatible systems (#427) (9729005)
  • SIMD implementation for as-sha256 (#367) (ec123ec)
  • use allocUnsafe to allocate hash digests (#391) (8ea1bb4)

Bug Fixes

persistent-merkle-tree: 1.0.0

1.0.0 (2025-01-17)

⚠ BREAKING CHANGES

  • implement hashInto() api for as-sha256 (#382)

Features

Bug Fixes

Dependencies

  • The following workspace dependencies were updated
    • dependencies
      • @chainsafe/as-sha256 bumped from 0.6.1 to 1.0.0
ssz: 0.20.0

0.20.0 (2025-01-17)

Features

Bug Fixes

Dependencies

  • The following workspace dependencies were updated
    • dependencies
      • @chainsafe/as-sha256 bumped from 0.6.1 to 1.0.0
      • @chainsafe/persistent-merkle-tree bumped from 0.9.1 to 1.0.0

This PR was generated with Release Please. See documentation.

Copy link
Member

@matthewkeil matthewkeil left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! 🎸

Copy link

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: e698c78 Previous: 2fd9c04 Ratio
digestTwoHashObjects 50023 times 48.522 ms/op 48.385 ms/op 1.00
digest2Bytes32 50023 times 55.274 ms/op 54.739 ms/op 1.01
digest 50023 times 54.681 ms/op 55.134 ms/op 0.99
input length 32 1.1850 us/op 1.2220 us/op 0.97
input length 64 1.3140 us/op 1.3350 us/op 0.98
input length 128 2.2590 us/op 2.2710 us/op 0.99
input length 256 3.3610 us/op 3.3710 us/op 1.00
input length 512 5.6650 us/op 5.5760 us/op 1.02
input length 1024 10.756 us/op 10.768 us/op 1.00
digest 1000000 times 867.94 ms/op 884.65 ms/op 0.98
hashObjectToByteArray 50023 times 1.2288 ms/op 1.2315 ms/op 1.00
byteArrayToHashObject 50023 times 1.5254 ms/op 1.8030 ms/op 0.85
digest64 200092 times 214.14 ms/op 213.67 ms/op 1.00
hash 200092 times using batchHash4UintArray64s 239.85 ms/op 240.28 ms/op 1.00
digest64HashObjects 200092 times 193.09 ms/op 194.67 ms/op 0.99
hash 200092 times using batchHash4HashObjectInputs 197.01 ms/op 207.74 ms/op 0.95
getGindicesAtDepth 3.4390 us/op 4.1450 us/op 0.83
iterateAtDepth 6.1940 us/op 7.4670 us/op 0.83
getGindexBits 380.00 ns/op 454.00 ns/op 0.84
gindexIterator 843.00 ns/op 1.0330 us/op 0.82
HashComputationLevel.push then loop 25.364 ms/op 27.802 ms/op 0.91
HashComputation[] push then loop 48.977 ms/op 49.368 ms/op 0.99
hash 2 Uint8Array 500000 times - hashtree 212.53 ms/op 216.43 ms/op 0.98
hashTwoObjects 500000 times - hashtree 214.47 ms/op 214.97 ms/op 1.00
executeHashComputations - hashtree 10.176 ms/op 9.8174 ms/op 1.04
hash 2 Uint8Array 500000 times - as-sha256 559.29 ms/op 566.39 ms/op 0.99
hashTwoObjects 500000 times - as-sha256 513.70 ms/op 512.46 ms/op 1.00
executeHashComputations - as-sha256 45.725 ms/op 49.092 ms/op 0.93
hash 2 Uint8Array 500000 times - noble 1.3027 s/op 1.2320 s/op 1.06
hashTwoObjects 500000 times - noble 1.6661 s/op 1.6458 s/op 1.01
executeHashComputations - noble 36.375 ms/op 40.524 ms/op 0.90
getHashComputations 2.2172 ms/op 3.2876 ms/op 0.67
executeHashComputations 10.109 ms/op 11.015 ms/op 0.92
get root 15.927 ms/op 17.228 ms/op 0.92
getNodeH() x7812.5 avg hindex 12.185 us/op 12.973 us/op 0.94
getNodeH() x7812.5 index 0 7.4860 us/op 7.4830 us/op 1.00
getNodeH() x7812.5 index 7 7.5200 us/op 7.4880 us/op 1.00
getNodeH() x7812.5 index 7 with key array 6.2740 us/op 6.2660 us/op 1.00
new LeafNode() x7812.5 292.05 us/op 288.84 us/op 1.01
getHashComputations 250000 nodes 16.377 ms/op 17.077 ms/op 0.96
batchHash 250000 nodes 83.021 ms/op 83.672 ms/op 0.99
get root 250000 nodes 115.60 ms/op 118.39 ms/op 0.98
getHashComputations 500000 nodes 28.074 ms/op 32.790 ms/op 0.86
batchHash 500000 nodes 152.55 ms/op 170.81 ms/op 0.89
get root 500000 nodes 238.58 ms/op 237.45 ms/op 1.00
getHashComputations 1000000 nodes 77.632 ms/op 68.401 ms/op 1.13
batchHash 1000000 nodes 363.93 ms/op 314.97 ms/op 1.16
get root 1000000 nodes 465.13 ms/op 474.60 ms/op 0.98
multiproof - depth 15, 1 requested leaves 7.8730 us/op 8.0360 us/op 0.98
tree offset multiproof - depth 15, 1 requested leaves 16.978 us/op 17.505 us/op 0.97
compact multiproof - depth 15, 1 requested leaves 2.9750 us/op 2.9850 us/op 1.00
multiproof - depth 15, 2 requested leaves 11.499 us/op 11.659 us/op 0.99
tree offset multiproof - depth 15, 2 requested leaves 20.399 us/op 21.064 us/op 0.97
compact multiproof - depth 15, 2 requested leaves 2.9630 us/op 3.0240 us/op 0.98
multiproof - depth 15, 3 requested leaves 15.945 us/op 16.464 us/op 0.97
tree offset multiproof - depth 15, 3 requested leaves 26.503 us/op 27.416 us/op 0.97
compact multiproof - depth 15, 3 requested leaves 3.6060 us/op 3.6760 us/op 0.98
multiproof - depth 15, 4 requested leaves 20.859 us/op 21.480 us/op 0.97
tree offset multiproof - depth 15, 4 requested leaves 33.345 us/op 33.923 us/op 0.98
compact multiproof - depth 15, 4 requested leaves 4.1230 us/op 4.2500 us/op 0.97
packedRootsBytesToLeafNodes bytes 4000 offset 0 5.5260 us/op 5.5760 us/op 0.99
packedRootsBytesToLeafNodes bytes 4000 offset 1 5.5150 us/op 5.5020 us/op 1.00
packedRootsBytesToLeafNodes bytes 4000 offset 2 5.5070 us/op 5.5960 us/op 0.98
packedRootsBytesToLeafNodes bytes 4000 offset 3 5.4690 us/op 5.5090 us/op 0.99
subtreeFillToContents depth 40 count 250000 51.221 ms/op 49.667 ms/op 1.03
setRoot - gindexBitstring 19.482 ms/op 20.717 ms/op 0.94
setRoot - gindex 19.996 ms/op 21.769 ms/op 0.92
getRoot - gindexBitstring 2.4282 ms/op 2.6428 ms/op 0.92
getRoot - gindex 3.0472 ms/op 3.4452 ms/op 0.88
getHashObject then setHashObject 20.658 ms/op 22.668 ms/op 0.91
setNodeWithFn 18.290 ms/op 19.949 ms/op 0.92
getNodeAtDepth depth 0 x100000 280.05 us/op 284.47 us/op 0.98
setNodeAtDepth depth 0 x100000 2.2770 ms/op 2.5826 ms/op 0.88
getNodesAtDepth depth 0 x100000 312.51 us/op 312.60 us/op 1.00
setNodesAtDepth depth 0 x100000 760.10 us/op 770.25 us/op 0.99
getNodeAtDepth depth 1 x100000 343.25 us/op 345.54 us/op 0.99
setNodeAtDepth depth 1 x100000 7.4559 ms/op 8.3900 ms/op 0.89
getNodesAtDepth depth 1 x100000 435.91 us/op 436.17 us/op 1.00
setNodesAtDepth depth 1 x100000 7.0487 ms/op 8.0911 ms/op 0.87
getNodeAtDepth depth 2 x100000 859.66 us/op 742.41 us/op 1.16
setNodeAtDepth depth 2 x100000 14.174 ms/op 15.448 ms/op 0.92
getNodesAtDepth depth 2 x100000 17.039 ms/op 19.301 ms/op 0.88
setNodesAtDepth depth 2 x100000 21.001 ms/op 22.443 ms/op 0.94
tree.getNodesAtDepth - gindexes 7.8692 ms/op 9.0838 ms/op 0.87
tree.getNodesAtDepth - push all nodes 1.9633 ms/op 2.2499 ms/op 0.87
tree.getNodesAtDepth - navigation 311.94 us/op 312.00 us/op 1.00
tree.setNodesAtDepth - indexes 650.59 us/op 702.50 us/op 0.93
set at depth 8 668.00 ns/op 673.00 ns/op 0.99
set at depth 16 1.1350 us/op 1.2090 us/op 0.94
set at depth 32 1.9290 us/op 1.9830 us/op 0.97
iterateNodesAtDepth 8 256 13.507 us/op 14.029 us/op 0.96
getNodesAtDepth 8 256 3.6220 us/op 3.9860 us/op 0.91
iterateNodesAtDepth 16 65536 4.2887 ms/op 4.9523 ms/op 0.87
getNodesAtDepth 16 65536 1.6730 ms/op 2.1318 ms/op 0.78
iterateNodesAtDepth 32 250000 15.724 ms/op 17.971 ms/op 0.87
getNodesAtDepth 32 250000 4.5021 ms/op 5.0235 ms/op 0.90
iterateNodesAtDepth 40 250000 15.853 ms/op 16.973 ms/op 0.93
getNodesAtDepth 40 250000 4.5238 ms/op 5.2017 ms/op 0.87
250000 validators root getter 116.60 ms/op 119.60 ms/op 0.97
250000 validators batchHash() 87.269 ms/op 96.226 ms/op 0.91
250000 validators hashComputations 19.255 ms/op 13.681 ms/op 1.41
bitlist bytes to struct (120,90) 792.00 ns/op 1.0320 us/op 0.77
bitlist bytes to tree (120,90) 3.0980 us/op 2.9040 us/op 1.07
bitlist bytes to struct (2048,2048) 1.1900 us/op 1.1460 us/op 1.04
bitlist bytes to tree (2048,2048) 4.1480 us/op 4.6090 us/op 0.90
ByteListType - deserialize 7.5327 ms/op 8.2940 ms/op 0.91
BasicListType - deserialize 14.793 ms/op 17.814 ms/op 0.83
ByteListType - serialize 7.7362 ms/op 8.2229 ms/op 0.94
BasicListType - serialize 10.378 ms/op 10.528 ms/op 0.99
BasicListType - tree_convertToStruct 24.487 ms/op 30.733 ms/op 0.80
List[uint8, 68719476736] len 300000 ViewDU.getAll() + iterate 4.5912 ms/op 5.0479 ms/op 0.91
List[uint8, 68719476736] len 300000 ViewDU.get(i) 4.4125 ms/op 4.4003 ms/op 1.00
Array.push len 300000 empty Array - number 6.2506 ms/op 7.7576 ms/op 0.81
Array.set len 300000 from new Array - number 1.9128 ms/op 2.3929 ms/op 0.80
Array.set len 300000 - number 6.3035 ms/op 6.8603 ms/op 0.92
Uint8Array.set len 300000 488.50 us/op 490.48 us/op 1.00
Uint32Array.set len 300000 568.24 us/op 554.60 us/op 1.02
Container({a: uint8, b: uint8}) getViewDU x300000 24.917 ms/op 25.535 ms/op 0.98
ContainerNodeStruct({a: uint8, b: uint8}) getViewDU x300000 10.515 ms/op 10.557 ms/op 1.00
List(Container) len 300000 ViewDU.getAllReadonly() + iterate 204.76 ms/op 222.67 ms/op 0.92
List(Container) len 300000 ViewDU.getAllReadonlyValues() + iterate 237.96 ms/op 288.04 ms/op 0.83
List(Container) len 300000 ViewDU.get(i) 6.4483 ms/op 8.4440 ms/op 0.76
List(Container) len 300000 ViewDU.getReadonly(i) 6.3005 ms/op 7.2905 ms/op 0.86
List(ContainerNodeStruct) len 300000 ViewDU.getAllReadonly() + iterate 38.021 ms/op 34.764 ms/op 1.09
List(ContainerNodeStruct) len 300000 ViewDU.getAllReadonlyValues() + iterate 5.0810 ms/op 6.9714 ms/op 0.73
List(ContainerNodeStruct) len 300000 ViewDU.get(i) 6.0645 ms/op 6.7554 ms/op 0.90
List(ContainerNodeStruct) len 300000 ViewDU.getReadonly(i) 5.9347 ms/op 6.6821 ms/op 0.89
Array.push len 300000 empty Array - object 6.5361 ms/op 8.2629 ms/op 0.79
Array.set len 300000 from new Array - object 1.9753 ms/op 2.0682 ms/op 0.96
Array.set len 300000 - object 6.0841 ms/op 6.8760 ms/op 0.88
cachePermanentRootStruct no cache 5.0720 us/op 5.9280 us/op 0.86
cachePermanentRootStruct with cache 207.00 ns/op 245.00 ns/op 0.84
epochParticipation len 250000 rws 7813 2.3315 ms/op 2.3026 ms/op 1.01
BeaconState ViewDU hashTreeRoot() vc=200000 116.87 ms/op 119.71 ms/op 0.98
BeaconState ViewDU recursive hash - commit step vc=200000 4.8997 ms/op 5.0692 ms/op 0.97
BeaconState ViewDU validator tree creation vc=10000 41.089 ms/op 42.276 ms/op 0.97
BeaconState ViewDU batchHashTreeRoot vc=200000 106.11 ms/op 109.21 ms/op 0.97
BeaconState ViewDU hashTreeRoot - commit step vc=200000 94.735 ms/op 96.290 ms/op 0.98
BeaconState ViewDU hashTreeRoot - hash step vc=200000 18.473 ms/op 18.397 ms/op 1.00
deserialize Attestation - tree 3.6180 us/op 3.9770 us/op 0.91
deserialize Attestation - struct 1.9050 us/op 2.1880 us/op 0.87
deserialize SignedAggregateAndProof - tree 4.9060 us/op 5.3310 us/op 0.92
deserialize SignedAggregateAndProof - struct 2.9620 us/op 3.4600 us/op 0.86
deserialize SyncCommitteeMessage - tree 1.4100 us/op 1.5160 us/op 0.93
deserialize SyncCommitteeMessage - struct 1.2200 us/op 1.2600 us/op 0.97
deserialize SignedContributionAndProof - tree 2.9510 us/op 3.3480 us/op 0.88
deserialize SignedContributionAndProof - struct 2.2490 us/op 2.7630 us/op 0.81
deserialize SignedBeaconBlock - tree 288.04 us/op 320.10 us/op 0.90
deserialize SignedBeaconBlock - struct 121.66 us/op 146.11 us/op 0.83
BeaconState vc 300000 - deserialize tree 626.42 ms/op 676.70 ms/op 0.93
BeaconState vc 300000 - serialize tree 126.80 ms/op 176.66 ms/op 0.72
BeaconState.historicalRoots vc 300000 - deserialize tree 977.00 ns/op 963.00 ns/op 1.01
BeaconState.historicalRoots vc 300000 - serialize tree 746.00 ns/op 797.00 ns/op 0.94
BeaconState.validators vc 300000 - deserialize tree 621.89 ms/op 645.65 ms/op 0.96
BeaconState.validators vc 300000 - serialize tree 115.32 ms/op 108.09 ms/op 1.07
BeaconState.balances vc 300000 - deserialize tree 27.528 ms/op 31.118 ms/op 0.88
BeaconState.balances vc 300000 - serialize tree 4.7536 ms/op 5.4166 ms/op 0.88
BeaconState.previousEpochParticipation vc 300000 - deserialize tree 1.1377 ms/op 1.1177 ms/op 1.02
BeaconState.previousEpochParticipation vc 300000 - serialize tree 329.43 us/op 329.73 us/op 1.00
BeaconState.currentEpochParticipation vc 300000 - deserialize tree 1.0907 ms/op 1.1398 ms/op 0.96
BeaconState.currentEpochParticipation vc 300000 - serialize tree 328.58 us/op 329.92 us/op 1.00
BeaconState.inactivityScores vc 300000 - deserialize tree 29.618 ms/op 28.841 ms/op 1.03
BeaconState.inactivityScores vc 300000 - serialize tree 3.8411 ms/op 6.4320 ms/op 0.60
hashTreeRoot Attestation - struct 19.234 us/op 22.568 us/op 0.85
hashTreeRoot Attestation - tree 9.4160 us/op 9.7040 us/op 0.97
hashTreeRoot SignedAggregateAndProof - struct 23.466 us/op 34.438 us/op 0.68
hashTreeRoot SignedAggregateAndProof - tree 14.149 us/op 14.744 us/op 0.96
hashTreeRoot SyncCommitteeMessage - struct 6.0360 us/op 9.1540 us/op 0.66
hashTreeRoot SyncCommitteeMessage - tree 3.8190 us/op 3.6090 us/op 1.06
hashTreeRoot SignedContributionAndProof - struct 16.115 us/op 24.373 us/op 0.66
hashTreeRoot SignedContributionAndProof - tree 9.6450 us/op 10.036 us/op 0.96
hashTreeRoot SignedBeaconBlock - struct 1.2330 ms/op 1.7085 ms/op 0.72
hashTreeRoot SignedBeaconBlock - tree 848.13 us/op 874.80 us/op 0.97
hashTreeRoot Validator - struct 7.9620 us/op 10.415 us/op 0.76
hashTreeRoot Validator - tree 7.0750 us/op 8.8040 us/op 0.80
BeaconState vc 300000 - hashTreeRoot tree 2.3052 s/op 2.5106 s/op 0.92
BeaconState vc 300000 - batchHashTreeRoot tree 4.2799 s/op 4.5668 s/op 0.94
BeaconState.historicalRoots vc 300000 - hashTreeRoot tree 1.1340 us/op 1.1800 us/op 0.96
BeaconState.validators vc 300000 - hashTreeRoot tree 2.6811 s/op 2.6840 s/op 1.00
BeaconState.balances vc 300000 - hashTreeRoot tree 36.127 ms/op 37.232 ms/op 0.97
BeaconState.previousEpochParticipation vc 300000 - hashTreeRoot tree 4.4712 ms/op 4.6431 ms/op 0.96
BeaconState.currentEpochParticipation vc 300000 - hashTreeRoot tree 4.4955 ms/op 4.5680 ms/op 0.98
BeaconState.inactivityScores vc 300000 - hashTreeRoot tree 39.464 ms/op 39.894 ms/op 0.99
hash64 x18 9.6220 us/op 9.8100 us/op 0.98
hashTwoObjects x18 8.3240 us/op 8.9900 us/op 0.93
hash64 x1740 889.48 us/op 889.16 us/op 1.00
hashTwoObjects x1740 789.30 us/op 817.95 us/op 0.96
hash64 x2700000 1.3735 s/op 1.3707 s/op 1.00
hashTwoObjects x2700000 1.2107 s/op 1.2561 s/op 0.96
get_exitEpoch - ContainerType 278.00 ns/op 470.00 ns/op 0.59
get_exitEpoch - ContainerNodeStructType 322.00 ns/op 531.00 ns/op 0.61
set_exitEpoch - ContainerType 345.00 ns/op 743.00 ns/op 0.46
set_exitEpoch - ContainerNodeStructType 326.00 ns/op 867.00 ns/op 0.38
get_pubkey - ContainerType 1.2330 us/op 2.1440 us/op 0.58
get_pubkey - ContainerNodeStructType 255.00 ns/op 628.00 ns/op 0.41
hashTreeRoot - ContainerType 452.00 ns/op 911.00 ns/op 0.50
hashTreeRoot - ContainerNodeStructType 445.00 ns/op 822.00 ns/op 0.54
createProof - ContainerType 4.2090 us/op 7.2270 us/op 0.58
createProof - ContainerNodeStructType 23.180 us/op 38.455 us/op 0.60
serialize - ContainerType 1.7860 us/op 3.0960 us/op 0.58
serialize - ContainerNodeStructType 1.4140 us/op 2.3860 us/op 0.59
set_exitEpoch_and_hashTreeRoot - ContainerType 3.0590 us/op 5.1660 us/op 0.59
set_exitEpoch_and_hashTreeRoot - ContainerNodeStructType 7.5260 us/op 11.845 us/op 0.64
Array - for of 5.5500 us/op 6.0820 us/op 0.91
Array - for(;;) 5.5480 us/op 6.0990 us/op 0.91
basicListValue.readonlyValuesArray() 4.2577 ms/op 8.5034 ms/op 0.50
basicListValue.readonlyValuesArray() + loop all 4.2586 ms/op 9.2078 ms/op 0.46
compositeListValue.readonlyValuesArray() 30.297 ms/op 31.312 ms/op 0.97
compositeListValue.readonlyValuesArray() + loop all 31.264 ms/op 32.164 ms/op 0.97
Number64UintType - get balances list 4.2545 ms/op 4.9334 ms/op 0.86
Number64UintType - set balances list 10.080 ms/op 10.233 ms/op 0.99
Number64UintType - get and increase 10 then set 40.946 ms/op 45.730 ms/op 0.90
Number64UintType - increase 10 using applyDelta 16.433 ms/op 19.214 ms/op 0.86
Number64UintType - increase 10 using applyDeltaInBatch 16.233 ms/op 18.532 ms/op 0.88
tree_newTreeFromUint64Deltas 22.755 ms/op 23.803 ms/op 0.96
unsafeUint8ArrayToTree 39.501 ms/op 43.554 ms/op 0.91
bitLength(50) 220.00 ns/op 283.00 ns/op 0.78
bitLengthStr(50) 224.00 ns/op 260.00 ns/op 0.86
bitLength(8000) 226.00 ns/op 280.00 ns/op 0.81
bitLengthStr(8000) 256.00 ns/op 301.00 ns/op 0.85
bitLength(250000) 214.00 ns/op 276.00 ns/op 0.78
bitLengthStr(250000) 303.00 ns/op 340.00 ns/op 0.89
floor - Math.floor (53) 1.2586 ns/op 1.2463 ns/op 1.01
floor - << 0 (53) 1.2430 ns/op 1.2449 ns/op 1.00
floor - Math.floor (512) 1.2587 ns/op 1.2485 ns/op 1.01
floor - << 0 (512) 1.2436 ns/op 1.2445 ns/op 1.00
fnIf(0) 1.5543 ns/op 1.5550 ns/op 1.00
fnSwitch(0) 2.1760 ns/op 2.2084 ns/op 0.99
fnObj(0) 1.5588 ns/op 1.5592 ns/op 1.00
fnArr(0) 1.5855 ns/op 1.5564 ns/op 1.02
fnIf(4) 2.2213 ns/op 2.2012 ns/op 1.01
fnSwitch(4) 2.1855 ns/op 2.1851 ns/op 1.00
fnObj(4) 1.5608 ns/op 1.5553 ns/op 1.00
fnArr(4) 1.5635 ns/op 1.5566 ns/op 1.00
fnIf(9) 3.1119 ns/op 3.1105 ns/op 1.00
fnSwitch(9) 2.1775 ns/op 2.1789 ns/op 1.00
fnObj(9) 1.5607 ns/op 1.5566 ns/op 1.00
fnArr(9) 1.5723 ns/op 1.5585 ns/op 1.01
Container {a,b,vec} - as struct x100000 126.90 us/op 124.70 us/op 1.02
Container {a,b,vec} - as tree x100000 870.53 us/op 528.88 us/op 1.65
Container {a,vec,b} - as struct x100000 155.54 us/op 156.29 us/op 1.00
Container {a,vec,b} - as tree x100000 497.32 us/op 497.88 us/op 1.00
get 2 props x1000000 - rawObject 318.66 us/op 311.55 us/op 1.02
get 2 props x1000000 - proxy 73.224 ms/op 73.231 ms/op 1.00
get 2 props x1000000 - customObj 311.09 us/op 311.63 us/op 1.00
Simple object binary -> struct 620.00 ns/op 666.00 ns/op 0.93
Simple object binary -> tree_backed 1.6210 us/op 1.8000 us/op 0.90
Simple object struct -> tree_backed 2.4160 us/op 2.5550 us/op 0.95
Simple object tree_backed -> struct 1.7710 us/op 1.8870 us/op 0.94
Simple object struct -> binary 887.00 ns/op 1.1100 us/op 0.80
Simple object tree_backed -> binary 1.4540 us/op 1.5810 us/op 0.92
aggregationBits binary -> struct 548.00 ns/op 556.00 ns/op 0.99
aggregationBits binary -> tree_backed 2.3780 us/op 2.3520 us/op 1.01
aggregationBits struct -> tree_backed 2.6150 us/op 2.8250 us/op 0.93
aggregationBits tree_backed -> struct 1.0930 us/op 1.1760 us/op 0.93
aggregationBits struct -> binary 773.00 ns/op 895.00 ns/op 0.86
aggregationBits tree_backed -> binary 827.00 ns/op 1.0710 us/op 0.77
List(uint8) 100000 binary -> struct 1.7165 ms/op 1.7193 ms/op 1.00
List(uint8) 100000 binary -> tree_backed 292.77 us/op 378.88 us/op 0.77
List(uint8) 100000 struct -> tree_backed 1.4858 ms/op 1.4716 ms/op 1.01
List(uint8) 100000 tree_backed -> struct 1.2879 ms/op 1.1255 ms/op 1.14
List(uint8) 100000 struct -> binary 1.1426 ms/op 1.1255 ms/op 1.02
List(uint8) 100000 tree_backed -> binary 115.23 us/op 133.70 us/op 0.86
List(uint64Number) 100000 binary -> struct 1.6342 ms/op 1.4898 ms/op 1.10
List(uint64Number) 100000 binary -> tree_backed 4.3325 ms/op 5.0622 ms/op 0.86
List(uint64Number) 100000 struct -> tree_backed 6.3644 ms/op 7.2356 ms/op 0.88
List(uint64Number) 100000 tree_backed -> struct 2.4844 ms/op 2.9213 ms/op 0.85
List(uint64Number) 100000 struct -> binary 1.7133 ms/op 1.8754 ms/op 0.91
List(uint64Number) 100000 tree_backed -> binary 1.0236 ms/op 1.9946 ms/op 0.51
List(Uint64Bigint) 100000 binary -> struct 3.7816 ms/op 4.3077 ms/op 0.88
List(Uint64Bigint) 100000 binary -> tree_backed 5.7327 ms/op 5.2529 ms/op 1.09
List(Uint64Bigint) 100000 struct -> tree_backed 7.4971 ms/op 8.0646 ms/op 0.93
List(Uint64Bigint) 100000 tree_backed -> struct 6.0524 ms/op 5.6323 ms/op 1.07
List(Uint64Bigint) 100000 struct -> binary 2.0648 ms/op 2.0885 ms/op 0.99
List(Uint64Bigint) 100000 tree_backed -> binary 1.0447 ms/op 1.8135 ms/op 0.58
Vector(Root) 100000 binary -> struct 36.891 ms/op 41.100 ms/op 0.90
Vector(Root) 100000 binary -> tree_backed 43.079 ms/op 44.078 ms/op 0.98
Vector(Root) 100000 struct -> tree_backed 56.110 ms/op 55.892 ms/op 1.00
Vector(Root) 100000 tree_backed -> struct 58.987 ms/op 56.983 ms/op 1.04
Vector(Root) 100000 struct -> binary 2.7734 ms/op 2.7534 ms/op 1.01
Vector(Root) 100000 tree_backed -> binary 6.3496 ms/op 8.0801 ms/op 0.79
List(Validator) 100000 binary -> struct 121.25 ms/op 113.34 ms/op 1.07
List(Validator) 100000 binary -> tree_backed 370.81 ms/op 390.64 ms/op 0.95
List(Validator) 100000 struct -> tree_backed 396.56 ms/op 417.76 ms/op 0.95
List(Validator) 100000 tree_backed -> struct 229.29 ms/op 226.69 ms/op 1.01
List(Validator) 100000 struct -> binary 29.274 ms/op 29.274 ms/op 1.00
List(Validator) 100000 tree_backed -> binary 110.49 ms/op 108.34 ms/op 1.02
List(Validator-NS) 100000 binary -> struct 118.43 ms/op 135.28 ms/op 0.88
List(Validator-NS) 100000 binary -> tree_backed 166.85 ms/op 184.51 ms/op 0.90
List(Validator-NS) 100000 struct -> tree_backed 212.07 ms/op 235.91 ms/op 0.90
List(Validator-NS) 100000 tree_backed -> struct 170.79 ms/op 192.62 ms/op 0.89
List(Validator-NS) 100000 struct -> binary 29.060 ms/op 29.747 ms/op 0.98
List(Validator-NS) 100000 tree_backed -> binary 36.111 ms/op 35.712 ms/op 1.01
get epochStatuses - MutableVector 105.75 us/op 101.62 us/op 1.04
get epochStatuses - ViewDU 205.98 us/op 203.65 us/op 1.01
set epochStatuses - ListTreeView 2.3055 ms/op 2.2079 ms/op 1.04
set epochStatuses - ListTreeView - set() 470.48 us/op 431.41 us/op 1.09
set epochStatuses - ListTreeView - commit() 799.87 us/op 804.31 us/op 0.99
bitstring 516.97 ns/op 520.44 ns/op 0.99
bit mask 13.613 ns/op 13.407 ns/op 1.02
struct - increase slot to 1000000 934.40 us/op 936.53 us/op 1.00
UintNumberType - increase slot to 1000000 27.421 ms/op 26.798 ms/op 1.02
UintBigintType - increase slot to 1000000 188.72 ms/op 214.36 ms/op 0.88
UintBigint8 x 100000 tree_deserialize 6.9926 ms/op 5.8918 ms/op 1.19
UintBigint8 x 100000 tree_serialize 1.1022 ms/op 1.1095 ms/op 0.99
UintBigint16 x 100000 tree_deserialize 6.4403 ms/op 6.7823 ms/op 0.95
UintBigint16 x 100000 tree_serialize 1.3997 ms/op 1.7868 ms/op 0.78
UintBigint32 x 100000 tree_deserialize 6.0543 ms/op 7.0351 ms/op 0.86
UintBigint32 x 100000 tree_serialize 1.8806 ms/op 2.3450 ms/op 0.80
UintBigint64 x 100000 tree_deserialize 6.0109 ms/op 8.0089 ms/op 0.75
UintBigint64 x 100000 tree_serialize 2.5903 ms/op 3.3089 ms/op 0.78
UintBigint8 x 100000 value_deserialize 435.68 us/op 436.55 us/op 1.00
UintBigint8 x 100000 value_serialize 1.0246 ms/op 944.72 us/op 1.08
UintBigint16 x 100000 value_deserialize 473.72 us/op 466.98 us/op 1.01
UintBigint16 x 100000 value_serialize 898.46 us/op 949.22 us/op 0.95
UintBigint32 x 100000 value_deserialize 500.05 us/op 497.75 us/op 1.00
UintBigint32 x 100000 value_serialize 990.14 us/op 1.0340 ms/op 0.96
UintBigint64 x 100000 value_deserialize 562.33 us/op 561.86 us/op 1.00
UintBigint64 x 100000 value_serialize 1.1518 ms/op 1.4075 ms/op 0.82
UintBigint8 x 100000 deserialize 3.7886 ms/op 4.0786 ms/op 0.93
UintBigint8 x 100000 serialize 1.5427 ms/op 1.6495 ms/op 0.94
UintBigint16 x 100000 deserialize 3.5736 ms/op 4.2306 ms/op 0.84
UintBigint16 x 100000 serialize 1.5805 ms/op 1.5280 ms/op 1.03
UintBigint32 x 100000 deserialize 3.6911 ms/op 4.1933 ms/op 0.88
UintBigint32 x 100000 serialize 2.9883 ms/op 3.1683 ms/op 0.94
UintBigint64 x 100000 deserialize 4.3376 ms/op 4.8024 ms/op 0.90
UintBigint64 x 100000 serialize 1.6450 ms/op 1.6952 ms/op 0.97
UintBigint128 x 100000 deserialize 5.8846 ms/op 6.8769 ms/op 0.86
UintBigint128 x 100000 serialize 15.395 ms/op 15.576 ms/op 0.99
UintBigint256 x 100000 deserialize 9.5643 ms/op 9.2019 ms/op 1.04
UintBigint256 x 100000 serialize 44.746 ms/op 45.317 ms/op 0.99
Slice from Uint8Array x25000 1.4457 ms/op 1.3730 ms/op 1.05
Slice from ArrayBuffer x25000 16.940 ms/op 16.661 ms/op 1.02
Slice from ArrayBuffer x25000 + new Uint8Array 18.654 ms/op 18.610 ms/op 1.00
Copy Uint8Array 100000 iterate 2.6687 ms/op 2.6541 ms/op 1.01
Copy Uint8Array 100000 slice 138.34 us/op 120.03 us/op 1.15
Copy Uint8Array 100000 Uint8Array.prototype.slice.call 143.68 us/op 119.67 us/op 1.20
Copy Buffer 100000 Uint8Array.prototype.slice.call 141.03 us/op 124.86 us/op 1.13
Copy Uint8Array 100000 slice + set 275.77 us/op 251.50 us/op 1.10
Copy Uint8Array 100000 subarray + set 141.56 us/op 122.68 us/op 1.15
Copy Uint8Array 100000 slice arrayBuffer 138.34 us/op 124.22 us/op 1.11
Uint64 deserialize 100000 - iterate Uint8Array 2.2484 ms/op 2.2252 ms/op 1.01
Uint64 deserialize 100000 - by Uint32A 2.1403 ms/op 2.1293 ms/op 1.01
Uint64 deserialize 100000 - by DataView.getUint32 x2 2.2515 ms/op 2.1917 ms/op 1.03
Uint64 deserialize 100000 - by DataView.getBigUint64 5.9824 ms/op 5.4629 ms/op 1.10
Uint64 deserialize 100000 - by byte 40.987 ms/op 41.007 ms/op 1.00

by benchmarkbot/action

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants