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(master): release 1.0.0 #432

Conversation

matthewkeil
Copy link
Member

🤖 I have created a release beep boop

1.0.0 (2025-01-15)

⚠ 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


This PR was generated with Release Please. See documentation.

Copy link

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: f323f58 Previous: 9729005 Ratio
digestTwoHashObjects 50023 times 48.288 ms/op 48.723 ms/op 0.99
digest2Bytes32 50023 times 55.201 ms/op 55.394 ms/op 1.00
digest 50023 times 56.417 ms/op 56.560 ms/op 1.00
input length 32 1.2190 us/op 1.2260 us/op 0.99
input length 64 1.3610 us/op 1.3510 us/op 1.01
input length 128 2.3600 us/op 2.2710 us/op 1.04
input length 256 3.4900 us/op 3.3900 us/op 1.03
input length 512 5.8120 us/op 5.6380 us/op 1.03
input length 1024 11.006 us/op 11.023 us/op 1.00
digest 1000000 times 922.68 ms/op 862.38 ms/op 1.07
hashObjectToByteArray 50023 times 1.2421 ms/op 1.2407 ms/op 1.00
byteArrayToHashObject 50023 times 1.7843 ms/op 1.7831 ms/op 1.00
digest64 200092 times 222.35 ms/op 216.88 ms/op 1.03
hash 200092 times using batchHash4UintArray64s 251.90 ms/op 239.05 ms/op 1.05
digest64HashObjects 200092 times 197.70 ms/op 194.75 ms/op 1.02
hash 200092 times using batchHash4HashObjectInputs 208.65 ms/op 204.61 ms/op 1.02
getGindicesAtDepth 4.2100 us/op 4.2100 us/op 1.00
iterateAtDepth 7.4740 us/op 7.6110 us/op 0.98
getGindexBits 447.00 ns/op 433.00 ns/op 1.03
gindexIterator 1.0250 us/op 1.0200 us/op 1.00
HashComputationLevel.push then loop 27.815 ms/op 27.644 ms/op 1.01
HashComputation[] push then loop 49.563 ms/op 48.288 ms/op 1.03
hash 2 Uint8Array 500000 times - hashtree 221.46 ms/op 216.16 ms/op 1.02
hashTwoObjects 500000 times - hashtree 219.19 ms/op 213.96 ms/op 1.02
executeHashComputations - hashtree 9.6940 ms/op 9.4486 ms/op 1.03
hash 2 Uint8Array 500000 times - as-sha256 564.71 ms/op 566.64 ms/op 1.00
hashTwoObjects 500000 times - as-sha256 509.98 ms/op 508.63 ms/op 1.00
executeHashComputations - as-sha256 45.946 ms/op 46.578 ms/op 0.99
hash 2 Uint8Array 500000 times - noble 1.2687 s/op 1.2332 s/op 1.03
hashTwoObjects 500000 times - noble 1.6920 s/op 1.6503 s/op 1.03
executeHashComputations - noble 39.006 ms/op 36.437 ms/op 1.07
getHashComputations 2.3365 ms/op 2.1577 ms/op 1.08
executeHashComputations 9.5630 ms/op 9.3634 ms/op 1.02
get root 15.549 ms/op 15.278 ms/op 1.02
getNodeH() x7812.5 avg hindex 12.043 us/op 12.451 us/op 0.97
getNodeH() x7812.5 index 0 7.4530 us/op 7.5590 us/op 0.99
getNodeH() x7812.5 index 7 7.4510 us/op 7.6090 us/op 0.98
getNodeH() x7812.5 index 7 with key array 6.2970 us/op 6.4250 us/op 0.98
new LeafNode() x7812.5 325.19 us/op 313.76 us/op 1.04
getHashComputations 250000 nodes 16.881 ms/op 14.571 ms/op 1.16
batchHash 250000 nodes 90.246 ms/op 94.878 ms/op 0.95
get root 250000 nodes 117.06 ms/op 115.60 ms/op 1.01
getHashComputations 500000 nodes 29.703 ms/op 28.957 ms/op 1.03
batchHash 500000 nodes 157.12 ms/op 170.01 ms/op 0.92
get root 500000 nodes 242.17 ms/op 241.38 ms/op 1.00
getHashComputations 1000000 nodes 62.873 ms/op 60.808 ms/op 1.03
batchHash 1000000 nodes 325.40 ms/op 335.20 ms/op 0.97
get root 1000000 nodes 474.29 ms/op 461.65 ms/op 1.03
multiproof - depth 15, 1 requested leaves 8.6980 us/op 9.6620 us/op 0.90
tree offset multiproof - depth 15, 1 requested leaves 18.445 us/op 21.144 us/op 0.87
compact multiproof - depth 15, 1 requested leaves 3.2310 us/op 3.8480 us/op 0.84
multiproof - depth 15, 2 requested leaves 12.197 us/op 13.805 us/op 0.88
tree offset multiproof - depth 15, 2 requested leaves 21.903 us/op 24.103 us/op 0.91
compact multiproof - depth 15, 2 requested leaves 3.1480 us/op 3.3080 us/op 0.95
multiproof - depth 15, 3 requested leaves 18.385 us/op 18.412 us/op 1.00
tree offset multiproof - depth 15, 3 requested leaves 30.240 us/op 31.255 us/op 0.97
compact multiproof - depth 15, 3 requested leaves 4.3540 us/op 5.5770 us/op 0.78
multiproof - depth 15, 4 requested leaves 24.099 us/op 26.241 us/op 0.92
tree offset multiproof - depth 15, 4 requested leaves 37.206 us/op 39.953 us/op 0.93
compact multiproof - depth 15, 4 requested leaves 4.9070 us/op 6.8160 us/op 0.72
packedRootsBytesToLeafNodes bytes 4000 offset 0 7.2890 us/op 7.4460 us/op 0.98
packedRootsBytesToLeafNodes bytes 4000 offset 1 6.6340 us/op 6.7430 us/op 0.98
packedRootsBytesToLeafNodes bytes 4000 offset 2 7.0310 us/op 7.1000 us/op 0.99
packedRootsBytesToLeafNodes bytes 4000 offset 3 6.9140 us/op 7.4620 us/op 0.93
subtreeFillToContents depth 40 count 250000 51.522 ms/op 53.556 ms/op 0.96
setRoot - gindexBitstring 22.840 ms/op 22.368 ms/op 1.02
setRoot - gindex 24.150 ms/op 23.427 ms/op 1.03
getRoot - gindexBitstring 2.5949 ms/op 2.7928 ms/op 0.93
getRoot - gindex 3.3085 ms/op 3.7569 ms/op 0.88
getHashObject then setHashObject 28.353 ms/op 25.188 ms/op 1.13
setNodeWithFn 20.983 ms/op 21.170 ms/op 0.99
getNodeAtDepth depth 0 x100000 279.96 us/op 280.05 us/op 1.00
setNodeAtDepth depth 0 x100000 2.8061 ms/op 2.7835 ms/op 1.01
getNodesAtDepth depth 0 x100000 312.02 us/op 315.40 us/op 0.99
setNodesAtDepth depth 0 x100000 763.48 us/op 803.12 us/op 0.95
getNodeAtDepth depth 1 x100000 342.01 us/op 342.31 us/op 1.00
setNodeAtDepth depth 1 x100000 8.1599 ms/op 11.392 ms/op 0.72
getNodesAtDepth depth 1 x100000 435.81 us/op 436.81 us/op 1.00
setNodesAtDepth depth 1 x100000 7.4100 ms/op 8.5412 ms/op 0.87
getNodeAtDepth depth 2 x100000 980.60 us/op 748.19 us/op 1.31
setNodeAtDepth depth 2 x100000 16.218 ms/op 21.655 ms/op 0.75
getNodesAtDepth depth 2 x100000 19.077 ms/op 21.755 ms/op 0.88
setNodesAtDepth depth 2 x100000 26.990 ms/op 29.813 ms/op 0.91
tree.getNodesAtDepth - gindexes 10.893 ms/op 9.4571 ms/op 1.15
tree.getNodesAtDepth - push all nodes 2.4985 ms/op 3.6860 ms/op 0.68
tree.getNodesAtDepth - navigation 311.31 us/op 311.66 us/op 1.00
tree.setNodesAtDepth - indexes 795.52 us/op 870.84 us/op 0.91
set at depth 8 806.00 ns/op 990.00 ns/op 0.81
set at depth 16 1.1790 us/op 1.4980 us/op 0.79
set at depth 32 1.9650 us/op 2.6160 us/op 0.75
iterateNodesAtDepth 8 256 18.762 us/op 16.140 us/op 1.16
getNodesAtDepth 8 256 3.7530 us/op 4.0760 us/op 0.92
iterateNodesAtDepth 16 65536 5.6994 ms/op 4.6957 ms/op 1.21
getNodesAtDepth 16 65536 2.1247 ms/op 1.9329 ms/op 1.10
iterateNodesAtDepth 32 250000 22.462 ms/op 17.065 ms/op 1.32
getNodesAtDepth 32 250000 5.0742 ms/op 5.5690 ms/op 0.91
iterateNodesAtDepth 40 250000 23.692 ms/op 17.518 ms/op 1.35
getNodesAtDepth 40 250000 4.5807 ms/op 6.3452 ms/op 0.72
250000 validators root getter 117.70 ms/op 116.82 ms/op 1.01
250000 validators batchHash() 90.479 ms/op 146.04 ms/op 0.62
250000 validators hashComputations 19.416 ms/op 17.985 ms/op 1.08
bitlist bytes to struct (120,90) 835.00 ns/op 1.4790 us/op 0.56
bitlist bytes to tree (120,90) 3.3650 us/op 5.0730 us/op 0.66
bitlist bytes to struct (2048,2048) 1.2930 us/op 1.8910 us/op 0.68
bitlist bytes to tree (2048,2048) 4.2560 us/op 7.9650 us/op 0.53
ByteListType - deserialize 8.0321 ms/op 12.550 ms/op 0.64
BasicListType - deserialize 15.443 ms/op 18.072 ms/op 0.85
ByteListType - serialize 8.9650 ms/op 12.530 ms/op 0.72
BasicListType - serialize 10.352 ms/op 16.236 ms/op 0.64
BasicListType - tree_convertToStruct 27.334 ms/op 57.248 ms/op 0.48
List[uint8, 68719476736] len 300000 ViewDU.getAll() + iterate 5.3096 ms/op 5.5862 ms/op 0.95
List[uint8, 68719476736] len 300000 ViewDU.get(i) 4.2473 ms/op 4.3393 ms/op 0.98
Array.push len 300000 empty Array - number 7.2198 ms/op 7.2888 ms/op 0.99
Array.set len 300000 from new Array - number 2.0172 ms/op 2.2772 ms/op 0.89
Array.set len 300000 - number 6.6648 ms/op 7.2350 ms/op 0.92
Uint8Array.set len 300000 489.87 us/op 507.46 us/op 0.97
Uint32Array.set len 300000 567.50 us/op 633.01 us/op 0.90
Container({a: uint8, b: uint8}) getViewDU x300000 25.172 ms/op 30.436 ms/op 0.83
ContainerNodeStruct({a: uint8, b: uint8}) getViewDU x300000 10.543 ms/op 11.494 ms/op 0.92
List(Container) len 300000 ViewDU.getAllReadonly() + iterate 218.28 ms/op 217.11 ms/op 1.01
List(Container) len 300000 ViewDU.getAllReadonlyValues() + iterate 237.74 ms/op 265.71 ms/op 0.89
List(Container) len 300000 ViewDU.get(i) 6.8560 ms/op 7.1066 ms/op 0.96
List(Container) len 300000 ViewDU.getReadonly(i) 7.1797 ms/op 8.9971 ms/op 0.80
List(ContainerNodeStruct) len 300000 ViewDU.getAllReadonly() + iterate 40.688 ms/op 38.920 ms/op 1.05
List(ContainerNodeStruct) len 300000 ViewDU.getAllReadonlyValues() + iterate 5.3201 ms/op 6.0683 ms/op 0.88
List(ContainerNodeStruct) len 300000 ViewDU.get(i) 6.6527 ms/op 6.5574 ms/op 1.01
List(ContainerNodeStruct) len 300000 ViewDU.getReadonly(i) 6.3460 ms/op 7.1471 ms/op 0.89
Array.push len 300000 empty Array - object 7.0175 ms/op 7.0016 ms/op 1.00
Array.set len 300000 from new Array - object 2.3512 ms/op 2.1312 ms/op 1.10
Array.set len 300000 - object 6.7229 ms/op 6.8305 ms/op 0.98
cachePermanentRootStruct no cache 21.159 us/op 22.908 us/op 0.92
cachePermanentRootStruct with cache 226.00 ns/op 272.00 ns/op 0.83
epochParticipation len 250000 rws 7813 2.3001 ms/op 2.5209 ms/op 0.91
BeaconState ViewDU hashTreeRoot() vc=200000 534.37 ms/op 607.13 ms/op 0.88
BeaconState ViewDU recursive hash - commit step vc=200000 4.5685 ms/op 4.9146 ms/op 0.93
BeaconState ViewDU validator tree creation vc=10000 41.900 ms/op 40.470 ms/op 1.04
BeaconState ViewDU batchHashTreeRoot vc=200000 427.44 ms/op 452.39 ms/op 0.94
BeaconState ViewDU hashTreeRoot - commit step vc=200000 365.25 ms/op 385.07 ms/op 0.95
BeaconState ViewDU hashTreeRoot - hash step vc=200000 71.708 ms/op 75.611 ms/op 0.95
deserialize Attestation - tree 3.7930 us/op 4.4960 us/op 0.84
deserialize Attestation - struct 1.9830 us/op 2.3260 us/op 0.85
deserialize SignedAggregateAndProof - tree 4.8670 us/op 6.2550 us/op 0.78
deserialize SignedAggregateAndProof - struct 3.0700 us/op 4.1660 us/op 0.74
deserialize SyncCommitteeMessage - tree 1.3890 us/op 1.5990 us/op 0.87
deserialize SyncCommitteeMessage - struct 1.0420 us/op 1.4270 us/op 0.73
deserialize SignedContributionAndProof - tree 3.0830 us/op 3.4450 us/op 0.89
deserialize SignedContributionAndProof - struct 2.5260 us/op 3.0600 us/op 0.83
deserialize SignedBeaconBlock - tree 311.05 us/op 360.53 us/op 0.86
deserialize SignedBeaconBlock - struct 137.35 us/op 154.04 us/op 0.89
BeaconState vc 300000 - deserialize tree 685.91 ms/op 673.94 ms/op 1.02
BeaconState vc 300000 - serialize tree 131.47 ms/op 138.13 ms/op 0.95
BeaconState.historicalRoots vc 300000 - deserialize tree 938.00 ns/op 891.00 ns/op 1.05
BeaconState.historicalRoots vc 300000 - serialize tree 748.00 ns/op 751.00 ns/op 1.00
BeaconState.validators vc 300000 - deserialize tree 639.36 ms/op 626.86 ms/op 1.02
BeaconState.validators vc 300000 - serialize tree 101.53 ms/op 116.44 ms/op 0.87
BeaconState.balances vc 300000 - deserialize tree 29.410 ms/op 28.058 ms/op 1.05
BeaconState.balances vc 300000 - serialize tree 6.0203 ms/op 5.1586 ms/op 1.17
BeaconState.previousEpochParticipation vc 300000 - deserialize tree 1.2730 ms/op 1.2471 ms/op 1.02
BeaconState.previousEpochParticipation vc 300000 - serialize tree 346.37 us/op 348.21 us/op 0.99
BeaconState.currentEpochParticipation vc 300000 - deserialize tree 1.2352 ms/op 1.2675 ms/op 0.97
BeaconState.currentEpochParticipation vc 300000 - serialize tree 337.16 us/op 343.11 us/op 0.98
BeaconState.inactivityScores vc 300000 - deserialize tree 28.601 ms/op 29.254 ms/op 0.98
BeaconState.inactivityScores vc 300000 - serialize tree 5.0220 ms/op 7.9771 ms/op 0.63
hashTreeRoot Attestation - struct 66.073 us/op 104.67 us/op 0.63
hashTreeRoot Attestation - tree 66.646 us/op 102.55 us/op 0.65
hashTreeRoot SignedAggregateAndProof - struct 95.206 us/op 129.70 us/op 0.73
hashTreeRoot SignedAggregateAndProof - tree 100.52 us/op 128.79 us/op 0.78
hashTreeRoot SyncCommitteeMessage - struct 20.289 us/op 28.707 us/op 0.71
hashTreeRoot SyncCommitteeMessage - tree 21.445 us/op 29.674 us/op 0.72
hashTreeRoot SignedContributionAndProof - struct 67.133 us/op 71.347 us/op 0.94
hashTreeRoot SignedContributionAndProof - tree 74.825 us/op 72.691 us/op 1.03
hashTreeRoot SignedBeaconBlock - struct 5.8971 ms/op 5.9763 ms/op 0.99
hashTreeRoot SignedBeaconBlock - tree 6.0717 ms/op 6.5414 ms/op 0.93
hashTreeRoot Validator - struct 27.196 us/op 28.452 us/op 0.96
hashTreeRoot Validator - tree 31.201 us/op 33.009 us/op 0.95
BeaconState vc 300000 - hashTreeRoot tree 12.133 s/op 12.242 s/op 0.99
BeaconState vc 300000 - batchHashTreeRoot tree 6.8174 s/op 6.6136 s/op 1.03
BeaconState.historicalRoots vc 300000 - hashTreeRoot tree 4.2290 us/op 5.0680 us/op 0.83
BeaconState.validators vc 300000 - hashTreeRoot tree 12.553 s/op 11.852 s/op 1.06
BeaconState.balances vc 300000 - hashTreeRoot tree 341.21 ms/op 327.10 ms/op 1.04
BeaconState.previousEpochParticipation vc 300000 - hashTreeRoot tree 39.895 ms/op 39.560 ms/op 1.01
BeaconState.currentEpochParticipation vc 300000 - hashTreeRoot tree 40.492 ms/op 37.782 ms/op 1.07
BeaconState.inactivityScores vc 300000 - hashTreeRoot tree 337.01 ms/op 320.59 ms/op 1.05
hash64 x18 54.859 us/op 47.150 us/op 1.16
hashTwoObjects x18 80.470 us/op 67.919 us/op 1.18
hash64 x1740 5.2481 ms/op 5.2261 ms/op 1.00
hashTwoObjects x1740 7.6794 ms/op 6.8619 ms/op 1.12
hash64 x2700000 8.4827 s/op 7.4652 s/op 1.14
hashTwoObjects x2700000 10.651 s/op 10.620 s/op 1.00
get_exitEpoch - ContainerType 316.00 ns/op 302.00 ns/op 1.05
get_exitEpoch - ContainerNodeStructType 276.00 ns/op 268.00 ns/op 1.03
set_exitEpoch - ContainerType 292.00 ns/op 287.00 ns/op 1.02
set_exitEpoch - ContainerNodeStructType 282.00 ns/op 276.00 ns/op 1.02
get_pubkey - ContainerType 1.0300 us/op 1.0040 us/op 1.03
get_pubkey - ContainerNodeStructType 273.00 ns/op 260.00 ns/op 1.05
hashTreeRoot - ContainerType 487.00 ns/op 472.00 ns/op 1.03
hashTreeRoot - ContainerNodeStructType 475.00 ns/op 459.00 ns/op 1.03
createProof - ContainerType 5.1300 us/op 4.2970 us/op 1.19
createProof - ContainerNodeStructType 23.396 us/op 21.579 us/op 1.08
serialize - ContainerType 1.6020 us/op 1.5720 us/op 1.02
serialize - ContainerNodeStructType 1.3340 us/op 1.3410 us/op 0.99
set_exitEpoch_and_hashTreeRoot - ContainerType 12.319 us/op 11.978 us/op 1.03
set_exitEpoch_and_hashTreeRoot - ContainerNodeStructType 31.652 us/op 30.528 us/op 1.04
Array - for of 5.9620 us/op 5.6250 us/op 1.06
Array - for(;;) 5.7100 us/op 5.5830 us/op 1.02
basicListValue.readonlyValuesArray() 4.1403 ms/op 3.8673 ms/op 1.07
basicListValue.readonlyValuesArray() + loop all 4.5858 ms/op 4.2037 ms/op 1.09
compositeListValue.readonlyValuesArray() 35.430 ms/op 37.810 ms/op 0.94
compositeListValue.readonlyValuesArray() + loop all 35.783 ms/op 37.015 ms/op 0.97
Number64UintType - get balances list 4.4529 ms/op 4.2271 ms/op 1.05
Number64UintType - set balances list 10.020 ms/op 9.8431 ms/op 1.02
Number64UintType - get and increase 10 then set 40.606 ms/op 39.999 ms/op 1.02
Number64UintType - increase 10 using applyDelta 16.020 ms/op 14.608 ms/op 1.10
Number64UintType - increase 10 using applyDeltaInBatch 17.272 ms/op 14.305 ms/op 1.21
tree_newTreeFromUint64Deltas 24.717 ms/op 25.776 ms/op 0.96
unsafeUint8ArrayToTree 46.403 ms/op 47.853 ms/op 0.97
bitLength(50) 232.00 ns/op 219.00 ns/op 1.06
bitLengthStr(50) 226.00 ns/op 215.00 ns/op 1.05
bitLength(8000) 219.00 ns/op 211.00 ns/op 1.04
bitLengthStr(8000) 263.00 ns/op 268.00 ns/op 0.98
bitLength(250000) 236.00 ns/op 235.00 ns/op 1.00
bitLengthStr(250000) 305.00 ns/op 299.00 ns/op 1.02
floor - Math.floor (53) 1.2437 ns/op 1.2457 ns/op 1.00
floor - << 0 (53) 1.2458 ns/op 1.2429 ns/op 1.00
floor - Math.floor (512) 1.2435 ns/op 1.2434 ns/op 1.00
floor - << 0 (512) 1.2430 ns/op 1.2447 ns/op 1.00
fnIf(0) 1.5567 ns/op 1.5761 ns/op 0.99
fnSwitch(0) 2.1800 ns/op 2.1782 ns/op 1.00
fnObj(0) 1.5574 ns/op 1.5579 ns/op 1.00
fnArr(0) 1.5551 ns/op 1.5560 ns/op 1.00
fnIf(4) 2.1879 ns/op 2.1771 ns/op 1.00
fnSwitch(4) 2.1804 ns/op 2.1989 ns/op 0.99
fnObj(4) 1.5610 ns/op 1.5690 ns/op 0.99
fnArr(4) 1.5556 ns/op 1.5552 ns/op 1.00
fnIf(9) 3.1185 ns/op 3.1073 ns/op 1.00
fnSwitch(9) 2.1788 ns/op 2.2121 ns/op 0.98
fnObj(9) 1.5614 ns/op 1.5765 ns/op 0.99
fnArr(9) 1.5701 ns/op 1.5541 ns/op 1.01
Container {a,b,vec} - as struct x100000 124.55 us/op 124.55 us/op 1.00
Container {a,b,vec} - as tree x100000 528.78 us/op 528.92 us/op 1.00
Container {a,vec,b} - as struct x100000 155.85 us/op 156.44 us/op 1.00
Container {a,vec,b} - as tree x100000 497.52 us/op 505.99 us/op 0.98
get 2 props x1000000 - rawObject 311.26 us/op 316.13 us/op 0.98
get 2 props x1000000 - proxy 73.066 ms/op 73.091 ms/op 1.00
get 2 props x1000000 - customObj 311.17 us/op 313.76 us/op 0.99
Simple object binary -> struct 571.00 ns/op 759.00 ns/op 0.75
Simple object binary -> tree_backed 1.5770 us/op 1.9970 us/op 0.79
Simple object struct -> tree_backed 2.1220 us/op 2.4020 us/op 0.88
Simple object tree_backed -> struct 1.4950 us/op 1.9420 us/op 0.77
Simple object struct -> binary 834.00 ns/op 1.0490 us/op 0.80
Simple object tree_backed -> binary 1.2480 us/op 1.6550 us/op 0.75
aggregationBits binary -> struct 450.00 ns/op 560.00 ns/op 0.80
aggregationBits binary -> tree_backed 1.9510 us/op 2.2930 us/op 0.85
aggregationBits struct -> tree_backed 2.3360 us/op 2.6710 us/op 0.87
aggregationBits tree_backed -> struct 860.00 ns/op 1.0470 us/op 0.82
aggregationBits struct -> binary 698.00 ns/op 741.00 ns/op 0.94
aggregationBits tree_backed -> binary 790.00 ns/op 914.00 ns/op 0.86
List(uint8) 100000 binary -> struct 1.4253 ms/op 1.3779 ms/op 1.03
List(uint8) 100000 binary -> tree_backed 264.72 us/op 256.83 us/op 1.03
List(uint8) 100000 struct -> tree_backed 1.3709 ms/op 1.3839 ms/op 0.99
List(uint8) 100000 tree_backed -> struct 1.1118 ms/op 1.0863 ms/op 1.02
List(uint8) 100000 struct -> binary 1.1005 ms/op 1.1218 ms/op 0.98
List(uint8) 100000 tree_backed -> binary 104.36 us/op 105.70 us/op 0.99
List(uint64Number) 100000 binary -> struct 1.3418 ms/op 1.3448 ms/op 1.00
List(uint64Number) 100000 binary -> tree_backed 5.8546 ms/op 5.8729 ms/op 1.00
List(uint64Number) 100000 struct -> tree_backed 7.1769 ms/op 7.2042 ms/op 1.00
List(uint64Number) 100000 tree_backed -> struct 2.2531 ms/op 2.2653 ms/op 0.99
List(uint64Number) 100000 struct -> binary 1.4446 ms/op 1.4722 ms/op 0.98
List(uint64Number) 100000 tree_backed -> binary 939.03 us/op 932.94 us/op 1.01
List(Uint64Bigint) 100000 binary -> struct 3.4188 ms/op 3.4927 ms/op 0.98
List(Uint64Bigint) 100000 binary -> tree_backed 5.7489 ms/op 5.8235 ms/op 0.99
List(Uint64Bigint) 100000 struct -> tree_backed 6.4412 ms/op 7.7612 ms/op 0.83
List(Uint64Bigint) 100000 tree_backed -> struct 4.9375 ms/op 4.6106 ms/op 1.07
List(Uint64Bigint) 100000 struct -> binary 2.0779 ms/op 2.0197 ms/op 1.03
List(Uint64Bigint) 100000 tree_backed -> binary 1.1416 ms/op 1.0360 ms/op 1.10
Vector(Root) 100000 binary -> struct 42.177 ms/op 41.299 ms/op 1.02
Vector(Root) 100000 binary -> tree_backed 45.984 ms/op 47.512 ms/op 0.97
Vector(Root) 100000 struct -> tree_backed 50.821 ms/op 51.427 ms/op 0.99
Vector(Root) 100000 tree_backed -> struct 52.073 ms/op 53.558 ms/op 0.97
Vector(Root) 100000 struct -> binary 2.6812 ms/op 2.6961 ms/op 0.99
Vector(Root) 100000 tree_backed -> binary 6.4495 ms/op 7.2609 ms/op 0.89
List(Validator) 100000 binary -> struct 138.37 ms/op 136.12 ms/op 1.02
List(Validator) 100000 binary -> tree_backed 408.00 ms/op 425.62 ms/op 0.96
List(Validator) 100000 struct -> tree_backed 443.54 ms/op 450.92 ms/op 0.98
List(Validator) 100000 tree_backed -> struct 213.05 ms/op 211.98 ms/op 1.01
List(Validator) 100000 struct -> binary 29.242 ms/op 30.363 ms/op 0.96
List(Validator) 100000 tree_backed -> binary 97.003 ms/op 100.07 ms/op 0.97
List(Validator-NS) 100000 binary -> struct 144.57 ms/op 147.59 ms/op 0.98
List(Validator-NS) 100000 binary -> tree_backed 198.80 ms/op 200.66 ms/op 0.99
List(Validator-NS) 100000 struct -> tree_backed 229.21 ms/op 234.93 ms/op 0.98
List(Validator-NS) 100000 tree_backed -> struct 181.31 ms/op 182.55 ms/op 0.99
List(Validator-NS) 100000 struct -> binary 29.397 ms/op 29.408 ms/op 1.00
List(Validator-NS) 100000 tree_backed -> binary 35.077 ms/op 34.470 ms/op 1.02
get epochStatuses - MutableVector 97.576 us/op 90.560 us/op 1.08
get epochStatuses - ViewDU 205.98 us/op 176.41 us/op 1.17
set epochStatuses - ListTreeView 2.3362 ms/op 2.1192 ms/op 1.10
set epochStatuses - ListTreeView - set() 429.84 us/op 600.25 us/op 0.72
set epochStatuses - ListTreeView - commit() 735.45 us/op 737.69 us/op 1.00
bitstring 512.76 ns/op 516.25 ns/op 0.99
bit mask 13.269 ns/op 13.696 ns/op 0.97
struct - increase slot to 1000000 935.40 us/op 936.93 us/op 1.00
UintNumberType - increase slot to 1000000 26.791 ms/op 26.797 ms/op 1.00
UintBigintType - increase slot to 1000000 158.93 ms/op 170.00 ms/op 0.93
UintBigint8 x 100000 tree_deserialize 4.7905 ms/op 6.0449 ms/op 0.79
UintBigint8 x 100000 tree_serialize 1.1194 ms/op 621.58 us/op 1.80
UintBigint16 x 100000 tree_deserialize 4.6238 ms/op 6.1507 ms/op 0.75
UintBigint16 x 100000 tree_serialize 1.2288 ms/op 1.3845 ms/op 0.89
UintBigint32 x 100000 tree_deserialize 5.2409 ms/op 6.2660 ms/op 0.84
UintBigint32 x 100000 tree_serialize 1.7651 ms/op 1.7748 ms/op 0.99
UintBigint64 x 100000 tree_deserialize 6.0240 ms/op 7.2982 ms/op 0.83
UintBigint64 x 100000 tree_serialize 2.3889 ms/op 1.9973 ms/op 1.20
UintBigint8 x 100000 value_deserialize 437.71 us/op 435.89 us/op 1.00
UintBigint8 x 100000 value_serialize 697.26 us/op 793.84 us/op 0.88
UintBigint16 x 100000 value_deserialize 478.58 us/op 473.52 us/op 1.01
UintBigint16 x 100000 value_serialize 739.30 us/op 990.50 us/op 0.75
UintBigint32 x 100000 value_deserialize 497.63 us/op 499.28 us/op 1.00
UintBigint32 x 100000 value_serialize 784.63 us/op 1.0057 ms/op 0.78
UintBigint64 x 100000 value_deserialize 561.77 us/op 562.37 us/op 1.00
UintBigint64 x 100000 value_serialize 974.95 us/op 1.1979 ms/op 0.81
UintBigint8 x 100000 deserialize 3.5125 ms/op 3.7272 ms/op 0.94
UintBigint8 x 100000 serialize 1.5277 ms/op 1.6159 ms/op 0.95
UintBigint16 x 100000 deserialize 3.7006 ms/op 3.8259 ms/op 0.97
UintBigint16 x 100000 serialize 1.5451 ms/op 1.6560 ms/op 0.93
UintBigint32 x 100000 deserialize 3.4870 ms/op 3.6586 ms/op 0.95
UintBigint32 x 100000 serialize 2.8746 ms/op 2.8436 ms/op 1.01
UintBigint64 x 100000 deserialize 4.5030 ms/op 4.4573 ms/op 1.01
UintBigint64 x 100000 serialize 1.6380 ms/op 1.6010 ms/op 1.02
UintBigint128 x 100000 deserialize 5.2438 ms/op 5.1677 ms/op 1.01
UintBigint128 x 100000 serialize 14.909 ms/op 14.722 ms/op 1.01
UintBigint256 x 100000 deserialize 8.7714 ms/op 8.2073 ms/op 1.07
UintBigint256 x 100000 serialize 43.304 ms/op 43.597 ms/op 0.99
Slice from Uint8Array x25000 1.2198 ms/op 1.2243 ms/op 1.00
Slice from ArrayBuffer x25000 16.508 ms/op 15.745 ms/op 1.05
Slice from ArrayBuffer x25000 + new Uint8Array 18.139 ms/op 16.770 ms/op 1.08
Copy Uint8Array 100000 iterate 2.6356 ms/op 2.6402 ms/op 1.00
Copy Uint8Array 100000 slice 103.36 us/op 81.572 us/op 1.27
Copy Uint8Array 100000 Uint8Array.prototype.slice.call 100.55 us/op 81.066 us/op 1.24
Copy Buffer 100000 Uint8Array.prototype.slice.call 100.24 us/op 84.348 us/op 1.19
Copy Uint8Array 100000 slice + set 184.23 us/op 166.03 us/op 1.11
Copy Uint8Array 100000 subarray + set 94.775 us/op 80.875 us/op 1.17
Copy Uint8Array 100000 slice arrayBuffer 102.18 us/op 80.575 us/op 1.27
Uint64 deserialize 100000 - iterate Uint8Array 2.0949 ms/op 1.8646 ms/op 1.12
Uint64 deserialize 100000 - by Uint32A 1.9211 ms/op 1.9865 ms/op 0.97
Uint64 deserialize 100000 - by DataView.getUint32 x2 1.9078 ms/op 1.8521 ms/op 1.03
Uint64 deserialize 100000 - by DataView.getBigUint64 4.9544 ms/op 4.8557 ms/op 1.02
Uint64 deserialize 100000 - by byte 40.814 ms/op 40.845 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.

1 participant