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

feat: dual export some modules (params, utils, test-utils, spec-test-util) #6733

Draft
wants to merge 3 commits into
base: unstable
Choose a base branch
from

Conversation

matthewkeil
Copy link
Member

Motivation

I updated the spec tests in blst-ts and the util in lodestar is much better. Need a CJS module though to be able to import it there. Dual-module export of spec-test-util depends on utils so update that one as well. There are some good other test-utils that may be helpful in other repos and the script was already written so exported that as well. That depends on params so updated that also. Sets a pretty good precedent for how we can export packages as dual module should we want to.

Description

  • Adds scripts/fix_dual_modules_lib.mjs
  • Adds scripts/fix_dirname_and_filename.mjs
  • Rename tsconfig.build.json to tsconfig.esm.json for all dual module packages
  • Adds tsconfig.cjs.json to all dual module packages
  • Updates package.json in all dual module packages
    • Correct exports/types/files that are exported/bundled
    • Adds scripts for build process

Copy link
Contributor

github-actions bot commented May 4, 2024

Performance Report

✔️ no performance regression detected

🚀🚀 Significant benchmark improvement detected

Benchmark suite Current: b84ab16 Previous: 8c55820 Ratio
BLS verify - blst-native 1.3305 ms/op 4.6220 ms/op 0.29
BLS verifyMultipleSignatures - same message - 32 - blst-native 2.2868 ms/op 7.5494 ms/op 0.30
BLS verifyMultipleSignatures - same message - 64 - blst-native 3.4950 ms/op 10.497 ms/op 0.33
getSlashingsAndExits - 2k 456.70 us/op 2.2596 ms/op 0.20
forkChoice updateHead vc 600000 bc 64 eq 300000 15.894 ms/op 48.872 ms/op 0.33
altair processAttestation - 250000 vs - 7PWei worstcase 3.4939 ms/op 10.646 ms/op 0.33
altair processAttestation - setStatus - 4/5 committees join 777.11 us/op 2.9447 ms/op 0.26
altair processAttestation - setStatus - 100% committees join 903.80 us/op 3.0049 ms/op 0.30
altair processBlock - 250000 vs - 7PWei normalcase hashState 31.074 ms/op 94.917 ms/op 0.33
altair processBlock - 250000 vs - 7PWei worstcase 35.857 ms/op 120.51 ms/op 0.30
altair processBlock - 250000 vs - 7PWei worstcase hashState 89.544 ms/op 329.24 ms/op 0.27
phase0 processBlock - 250000 vs - 7PWei normalcase 2.5616 ms/op 8.8081 ms/op 0.29
phase0 processBlock - 250000 vs - 7PWei worstcase 30.578 ms/op 92.794 ms/op 0.33
altair processEth1Data - 250000 vs - 7PWei normalcase 481.03 us/op 1.9698 ms/op 0.24
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 12.073 us/op 45.205 us/op 0.27
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 5.3086 ms/op 16.270 ms/op 0.33
phase0 afterProcessEpoch - 250000 vs - 7PWei 111.16 ms/op 478.32 ms/op 0.23
migrate state 1000000 validators, 1700 modified, 1000 new 1.3736 s/op 4.6549 s/op 0.30
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 5.5800 ns/op 19.810 ns/op 0.28
computeEpochShuffling - vc 250000 142.10 ms/op 500.90 ms/op 0.28
hash AttestationData serialized data then Buffer.toString(base64) 2.4461 us/op 7.5467 us/op 0.32
toHexString serialized data 1.4267 us/op 4.3130 us/op 0.33
Full benchmark results
Benchmark suite Current: b84ab16 Previous: 8c55820 Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 975.18 us/op 2.3029 ms/op 0.42
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 109.17 us/op 242.33 us/op 0.45
BLS verify - blst-native 1.3305 ms/op 4.6220 ms/op 0.29
BLS verifyMultipleSignatures 3 - blst-native 2.5453 ms/op 7.2131 ms/op 0.35
BLS verifyMultipleSignatures 8 - blst-native 5.4287 ms/op 14.164 ms/op 0.38
BLS verifyMultipleSignatures 32 - blst-native 20.148 ms/op 41.266 ms/op 0.49
BLS verifyMultipleSignatures 64 - blst-native 39.066 ms/op 113.27 ms/op 0.34
BLS verifyMultipleSignatures 128 - blst-native 76.924 ms/op 177.83 ms/op 0.43
BLS deserializing 10000 signatures 895.09 ms/op 2.5177 s/op 0.36
BLS deserializing 100000 signatures 8.9474 s/op 24.749 s/op 0.36
BLS verifyMultipleSignatures - same message - 3 - blst-native 1.3186 ms/op 3.6470 ms/op 0.36
BLS verifyMultipleSignatures - same message - 8 - blst-native 1.5024 ms/op 4.2004 ms/op 0.36
BLS verifyMultipleSignatures - same message - 32 - blst-native 2.2868 ms/op 7.5494 ms/op 0.30
BLS verifyMultipleSignatures - same message - 64 - blst-native 3.4950 ms/op 10.497 ms/op 0.33
BLS verifyMultipleSignatures - same message - 128 - blst-native 5.7275 ms/op 16.639 ms/op 0.34
BLS aggregatePubkeys 32 - blst-native 29.179 us/op 71.598 us/op 0.41
BLS aggregatePubkeys 128 - blst-native 110.98 us/op 295.81 us/op 0.38
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 61.383 ms/op 132.90 ms/op 0.46
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 56.936 ms/op 127.17 ms/op 0.45
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 38.233 ms/op 98.591 ms/op 0.39
getSlashingsAndExits - default max 182.92 us/op 521.95 us/op 0.35
getSlashingsAndExits - 2k 456.70 us/op 2.2596 ms/op 0.20
proposeBlockBody type=full, size=empty 6.1686 ms/op 12.699 ms/op 0.49
isKnown best case - 1 super set check 543.00 ns/op 882.00 ns/op 0.62
isKnown normal case - 2 super set checks 462.00 ns/op 760.00 ns/op 0.61
isKnown worse case - 16 super set checks 401.00 ns/op 610.00 ns/op 0.66
InMemoryCheckpointStateCache - add get delete 6.7480 us/op 14.577 us/op 0.46
validate api signedAggregateAndProof - struct 2.4084 ms/op 3.3289 ms/op 0.72
validate gossip signedAggregateAndProof - struct 2.4345 ms/op 3.1935 ms/op 0.76
validate gossip attestation - vc 640000 1.3617 ms/op 1.7124 ms/op 0.80
batch validate gossip attestation - vc 640000 - chunk 32 167.30 us/op 198.34 us/op 0.84
batch validate gossip attestation - vc 640000 - chunk 64 154.32 us/op 192.42 us/op 0.80
batch validate gossip attestation - vc 640000 - chunk 128 151.10 us/op 178.30 us/op 0.85
batch validate gossip attestation - vc 640000 - chunk 256 147.17 us/op 171.99 us/op 0.86
pickEth1Vote - no votes 1.2925 ms/op 1.5660 ms/op 0.83
pickEth1Vote - max votes 11.480 ms/op 10.131 ms/op 1.13
pickEth1Vote - Eth1Data hashTreeRoot value x2048 18.287 ms/op 21.705 ms/op 0.84
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 20.885 ms/op 29.042 ms/op 0.72
pickEth1Vote - Eth1Data fastSerialize value x2048 625.27 us/op 888.39 us/op 0.70
pickEth1Vote - Eth1Data fastSerialize tree x2048 8.4061 ms/op 7.6711 ms/op 1.10
bytes32 toHexString 646.00 ns/op 708.00 ns/op 0.91
bytes32 Buffer.toString(hex) 299.00 ns/op 369.00 ns/op 0.81
bytes32 Buffer.toString(hex) from Uint8Array 493.00 ns/op 538.00 ns/op 0.92
bytes32 Buffer.toString(hex) + 0x 304.00 ns/op 388.00 ns/op 0.78
Object access 1 prop 0.16400 ns/op 0.24000 ns/op 0.68
Map access 1 prop 0.16000 ns/op 0.25000 ns/op 0.64
Object get x1000 7.8460 ns/op 8.8980 ns/op 0.88
Map get x1000 0.77600 ns/op 0.92900 ns/op 0.84
Object set x1000 49.876 ns/op 76.016 ns/op 0.66
Map set x1000 39.736 ns/op 53.552 ns/op 0.74
Return object 10000 times 0.24000 ns/op 0.27560 ns/op 0.87
Throw Error 10000 times 3.9986 us/op 5.3164 us/op 0.75
fastMsgIdFn sha256 / 200 bytes 3.4090 us/op 4.0820 us/op 0.84
fastMsgIdFn h32 xxhash / 200 bytes 331.00 ns/op 421.00 ns/op 0.79
fastMsgIdFn h64 xxhash / 200 bytes 391.00 ns/op 429.00 ns/op 0.91
fastMsgIdFn sha256 / 1000 bytes 11.557 us/op 14.245 us/op 0.81
fastMsgIdFn h32 xxhash / 1000 bytes 463.00 ns/op 726.00 ns/op 0.64
fastMsgIdFn h64 xxhash / 1000 bytes 456.00 ns/op 737.00 ns/op 0.62
fastMsgIdFn sha256 / 10000 bytes 104.13 us/op 187.20 us/op 0.56
fastMsgIdFn h32 xxhash / 10000 bytes 2.0600 us/op 2.8300 us/op 0.73
fastMsgIdFn h64 xxhash / 10000 bytes 1.4170 us/op 2.4660 us/op 0.57
send data - 1000 256B messages 19.018 ms/op 32.836 ms/op 0.58
send data - 1000 512B messages 25.832 ms/op 40.521 ms/op 0.64
send data - 1000 1024B messages 41.155 ms/op 84.961 ms/op 0.48
send data - 1000 1200B messages 29.040 ms/op 60.476 ms/op 0.48
send data - 1000 2048B messages 37.012 ms/op 64.310 ms/op 0.58
send data - 1000 4096B messages 37.670 ms/op 78.691 ms/op 0.48
send data - 1000 16384B messages 94.192 ms/op 146.65 ms/op 0.64
send data - 1000 65536B messages 324.96 ms/op 611.10 ms/op 0.53
enrSubnets - fastDeserialize 64 bits 1.2880 us/op 2.1060 us/op 0.61
enrSubnets - ssz BitVector 64 bits 456.00 ns/op 695.00 ns/op 0.66
enrSubnets - fastDeserialize 4 bits 179.00 ns/op 247.00 ns/op 0.72
enrSubnets - ssz BitVector 4 bits 474.00 ns/op 666.00 ns/op 0.71
prioritizePeers score -10:0 att 32-0.1 sync 2-0 218.53 us/op 431.17 us/op 0.51
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 296.49 us/op 607.33 us/op 0.49
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 384.81 us/op 643.22 us/op 0.60
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 601.29 us/op 865.74 us/op 0.69
prioritizePeers score 0:0 att 64-1 sync 4-1 738.73 us/op 1.5802 ms/op 0.47
array of 16000 items push then shift 1.6245 us/op 2.0285 us/op 0.80
LinkedList of 16000 items push then shift 9.1050 ns/op 11.112 ns/op 0.82
array of 16000 items push then pop 93.561 ns/op 186.22 ns/op 0.50
LinkedList of 16000 items push then pop 8.6990 ns/op 17.679 ns/op 0.49
array of 24000 items push then shift 2.6055 us/op 3.6848 us/op 0.71
LinkedList of 24000 items push then shift 9.2090 ns/op 12.309 ns/op 0.75
array of 24000 items push then pop 150.06 ns/op 167.87 ns/op 0.89
LinkedList of 24000 items push then pop 9.7380 ns/op 11.313 ns/op 0.86
intersect bitArray bitLen 8 5.8610 ns/op 7.5290 ns/op 0.78
intersect array and set length 8 64.654 ns/op 83.034 ns/op 0.78
intersect bitArray bitLen 128 36.947 ns/op 43.841 ns/op 0.84
intersect array and set length 128 900.23 ns/op 1.0799 us/op 0.83
bitArray.getTrueBitIndexes() bitLen 128 1.7110 us/op 2.0070 us/op 0.85
bitArray.getTrueBitIndexes() bitLen 248 2.6700 us/op 3.6230 us/op 0.74
bitArray.getTrueBitIndexes() bitLen 512 5.1580 us/op 8.8410 us/op 0.58
Buffer.concat 32 items 1.0160 us/op 1.4520 us/op 0.70
Uint8Array.set 32 items 2.2740 us/op 2.4790 us/op 0.92
Set add up to 64 items then delete first 4.7169 us/op 7.0549 us/op 0.67
OrderedSet add up to 64 items then delete first 5.7156 us/op 8.5126 us/op 0.67
Set add up to 64 items then delete last 4.7468 us/op 6.1580 us/op 0.77
OrderedSet add up to 64 items then delete last 6.6794 us/op 9.8331 us/op 0.68
Set add up to 64 items then delete middle 4.9400 us/op 6.1083 us/op 0.81
OrderedSet add up to 64 items then delete middle 8.2549 us/op 9.6719 us/op 0.85
Set add up to 128 items then delete first 10.305 us/op 12.588 us/op 0.82
OrderedSet add up to 128 items then delete first 12.603 us/op 16.187 us/op 0.78
Set add up to 128 items then delete last 9.5213 us/op 12.185 us/op 0.78
OrderedSet add up to 128 items then delete last 12.689 us/op 15.338 us/op 0.83
Set add up to 128 items then delete middle 9.2525 us/op 12.271 us/op 0.75
OrderedSet add up to 128 items then delete middle 18.339 us/op 22.606 us/op 0.81
Set add up to 256 items then delete first 19.134 us/op 25.144 us/op 0.76
OrderedSet add up to 256 items then delete first 24.043 us/op 34.591 us/op 0.70
Set add up to 256 items then delete last 18.371 us/op 24.789 us/op 0.74
OrderedSet add up to 256 items then delete last 24.784 us/op 32.742 us/op 0.76
Set add up to 256 items then delete middle 18.709 us/op 25.820 us/op 0.72
OrderedSet add up to 256 items then delete middle 46.363 us/op 61.515 us/op 0.75
transfer serialized Status (84 B) 1.6890 us/op 2.4020 us/op 0.70
copy serialized Status (84 B) 1.2380 us/op 1.7540 us/op 0.71
transfer serialized SignedVoluntaryExit (112 B) 1.7590 us/op 2.4020 us/op 0.73
copy serialized SignedVoluntaryExit (112 B) 1.2820 us/op 1.7840 us/op 0.72
transfer serialized ProposerSlashing (416 B) 2.3910 us/op 2.6750 us/op 0.89
copy serialized ProposerSlashing (416 B) 2.1260 us/op 2.3400 us/op 0.91
transfer serialized Attestation (485 B) 2.8440 us/op 2.7310 us/op 1.04
copy serialized Attestation (485 B) 2.6550 us/op 2.4700 us/op 1.07
transfer serialized AttesterSlashing (33232 B) 2.1770 us/op 2.3550 us/op 0.92
copy serialized AttesterSlashing (33232 B) 4.6990 us/op 7.5150 us/op 0.63
transfer serialized Small SignedBeaconBlock (128000 B) 2.4310 us/op 2.9510 us/op 0.82
copy serialized Small SignedBeaconBlock (128000 B) 13.239 us/op 25.524 us/op 0.52
transfer serialized Avg SignedBeaconBlock (200000 B) 3.3790 us/op 4.9100 us/op 0.69
copy serialized Avg SignedBeaconBlock (200000 B) 21.099 us/op 38.146 us/op 0.55
transfer serialized BlobsSidecar (524380 B) 3.0350 us/op 5.0500 us/op 0.60
copy serialized BlobsSidecar (524380 B) 82.513 us/op 111.45 us/op 0.74
transfer serialized Big SignedBeaconBlock (1000000 B) 3.1460 us/op 5.1350 us/op 0.61
copy serialized Big SignedBeaconBlock (1000000 B) 154.67 us/op 202.15 us/op 0.77
pass gossip attestations to forkchoice per slot 3.8130 ms/op 6.7785 ms/op 0.56
forkChoice updateHead vc 100000 bc 64 eq 0 715.32 us/op 1.2608 ms/op 0.57
forkChoice updateHead vc 600000 bc 64 eq 0 4.2154 ms/op 5.7986 ms/op 0.73
forkChoice updateHead vc 1000000 bc 64 eq 0 6.9910 ms/op 11.661 ms/op 0.60
forkChoice updateHead vc 600000 bc 320 eq 0 4.1813 ms/op 8.4573 ms/op 0.49
forkChoice updateHead vc 600000 bc 1200 eq 0 4.2849 ms/op 10.871 ms/op 0.39
forkChoice updateHead vc 600000 bc 7200 eq 0 5.8000 ms/op 12.849 ms/op 0.45
forkChoice updateHead vc 600000 bc 64 eq 1000 11.137 ms/op 24.805 ms/op 0.45
forkChoice updateHead vc 600000 bc 64 eq 10000 11.911 ms/op 15.513 ms/op 0.77
forkChoice updateHead vc 600000 bc 64 eq 300000 15.894 ms/op 48.872 ms/op 0.33
computeDeltas 500000 validators 300 proto nodes 6.6392 ms/op 14.398 ms/op 0.46
computeDeltas 500000 validators 1200 proto nodes 6.4626 ms/op 13.345 ms/op 0.48
computeDeltas 500000 validators 7200 proto nodes 6.4249 ms/op 10.291 ms/op 0.62
computeDeltas 750000 validators 300 proto nodes 9.6543 ms/op 14.484 ms/op 0.67
computeDeltas 750000 validators 1200 proto nodes 9.5955 ms/op 13.783 ms/op 0.70
computeDeltas 750000 validators 7200 proto nodes 9.6249 ms/op 13.164 ms/op 0.73
computeDeltas 1400000 validators 300 proto nodes 18.146 ms/op 25.279 ms/op 0.72
computeDeltas 1400000 validators 1200 proto nodes 18.657 ms/op 25.346 ms/op 0.74
computeDeltas 1400000 validators 7200 proto nodes 17.955 ms/op 19.808 ms/op 0.91
computeDeltas 2100000 validators 300 proto nodes 27.430 ms/op 37.939 ms/op 0.72
computeDeltas 2100000 validators 1200 proto nodes 27.295 ms/op 59.623 ms/op 0.46
computeDeltas 2100000 validators 7200 proto nodes 28.167 ms/op 55.428 ms/op 0.51
altair processAttestation - 250000 vs - 7PWei normalcase 2.2463 ms/op 5.2133 ms/op 0.43
altair processAttestation - 250000 vs - 7PWei worstcase 3.4939 ms/op 10.646 ms/op 0.33
altair processAttestation - setStatus - 1/6 committees join 170.59 us/op 470.01 us/op 0.36
altair processAttestation - setStatus - 1/3 committees join 358.50 us/op 814.17 us/op 0.44
altair processAttestation - setStatus - 1/2 committees join 451.40 us/op 1.2769 ms/op 0.35
altair processAttestation - setStatus - 2/3 committees join 586.66 us/op 1.7340 ms/op 0.34
altair processAttestation - setStatus - 4/5 committees join 777.11 us/op 2.9447 ms/op 0.26
altair processAttestation - setStatus - 100% committees join 903.80 us/op 3.0049 ms/op 0.30
altair processBlock - 250000 vs - 7PWei normalcase 8.9623 ms/op 24.380 ms/op 0.37
altair processBlock - 250000 vs - 7PWei normalcase hashState 31.074 ms/op 94.917 ms/op 0.33
altair processBlock - 250000 vs - 7PWei worstcase 35.857 ms/op 120.51 ms/op 0.30
altair processBlock - 250000 vs - 7PWei worstcase hashState 89.544 ms/op 329.24 ms/op 0.27
phase0 processBlock - 250000 vs - 7PWei normalcase 2.5616 ms/op 8.8081 ms/op 0.29
phase0 processBlock - 250000 vs - 7PWei worstcase 30.578 ms/op 92.794 ms/op 0.33
altair processEth1Data - 250000 vs - 7PWei normalcase 481.03 us/op 1.9698 ms/op 0.24
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 16.177 us/op 41.794 us/op 0.39
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 67.376 us/op 117.08 us/op 0.58
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 27.012 us/op 64.244 us/op 0.42
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 12.073 us/op 45.205 us/op 0.27
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 207.57 us/op 314.82 us/op 0.66
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 1.6715 ms/op 3.6116 ms/op 0.46
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 2.0527 ms/op 4.4367 ms/op 0.46
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 1.9621 ms/op 4.3347 ms/op 0.45
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 3.6717 ms/op 8.7883 ms/op 0.42
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 3.0704 ms/op 7.7213 ms/op 0.40
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 5.3086 ms/op 16.270 ms/op 0.33
Tree 40 250000 create 336.57 ms/op 1.0421 s/op 0.32
Tree 40 250000 get(125000) 205.44 ns/op 621.35 ns/op 0.33
Tree 40 250000 set(125000) 745.18 ns/op 3.0284 us/op 0.25
Tree 40 250000 toArray() 21.053 ms/op 44.971 ms/op 0.47
Tree 40 250000 iterate all - toArray() + loop 20.476 ms/op 44.999 ms/op 0.46
Tree 40 250000 iterate all - get(i) 72.184 ms/op 260.23 ms/op 0.28
MutableVector 250000 create 17.614 ms/op 46.855 ms/op 0.38
MutableVector 250000 get(125000) 6.9690 ns/op 19.321 ns/op 0.36
MutableVector 250000 set(125000) 305.10 ns/op 1.3137 us/op 0.23
MutableVector 250000 toArray() 3.8571 ms/op 9.1841 ms/op 0.42
MutableVector 250000 iterate all - toArray() + loop 3.6704 ms/op 12.201 ms/op 0.30
MutableVector 250000 iterate all - get(i) 1.5066 ms/op 5.8402 ms/op 0.26
Array 250000 create 3.4506 ms/op 7.9029 ms/op 0.44
Array 250000 clone - spread 1.2803 ms/op 3.9764 ms/op 0.32
Array 250000 get(125000) 1.0780 ns/op 5.0550 ns/op 0.21
Array 250000 set(125000) 4.2290 ns/op 15.946 ns/op 0.27
Array 250000 iterate all - loop 164.58 us/op 627.57 us/op 0.26
effectiveBalanceIncrements clone Uint8Array 300000 34.805 us/op 91.245 us/op 0.38
effectiveBalanceIncrements clone MutableVector 300000 418.00 ns/op 1.4380 us/op 0.29
effectiveBalanceIncrements rw all Uint8Array 300000 199.72 us/op 681.29 us/op 0.29
effectiveBalanceIncrements rw all MutableVector 300000 89.207 ms/op 434.77 ms/op 0.21
phase0 afterProcessEpoch - 250000 vs - 7PWei 111.16 ms/op 478.32 ms/op 0.23
phase0 beforeProcessEpoch - 250000 vs - 7PWei 50.965 ms/op 123.49 ms/op 0.41
altair processEpoch - mainnet_e81889 521.78 ms/op 959.39 ms/op 0.54
mainnet_e81889 - altair beforeProcessEpoch 73.021 ms/op 160.22 ms/op 0.46
mainnet_e81889 - altair processJustificationAndFinalization 22.249 us/op 53.413 us/op 0.42
mainnet_e81889 - altair processInactivityUpdates 5.2347 ms/op 9.1277 ms/op 0.57
mainnet_e81889 - altair processRewardsAndPenalties 69.975 ms/op 120.70 ms/op 0.58
mainnet_e81889 - altair processRegistryUpdates 2.3360 us/op 5.4250 us/op 0.43
mainnet_e81889 - altair processSlashings 586.00 ns/op 853.00 ns/op 0.69
mainnet_e81889 - altair processEth1DataReset 656.00 ns/op 1.2180 us/op 0.54
mainnet_e81889 - altair processEffectiveBalanceUpdates 2.5044 ms/op 6.2420 ms/op 0.40
mainnet_e81889 - altair processSlashingsReset 4.6020 us/op 9.1910 us/op 0.50
mainnet_e81889 - altair processRandaoMixesReset 6.6600 us/op 5.3550 us/op 1.24
mainnet_e81889 - altair processHistoricalRootsUpdate 959.00 ns/op 896.00 ns/op 1.07
mainnet_e81889 - altair processParticipationFlagUpdates 3.7420 us/op 7.5430 us/op 0.50
mainnet_e81889 - altair processSyncCommitteeUpdates 1000.0 ns/op 2.7760 us/op 0.36
mainnet_e81889 - altair afterProcessEpoch 121.94 ms/op 195.28 ms/op 0.62
capella processEpoch - mainnet_e217614 1.6949 s/op 2.3104 s/op 0.73
mainnet_e217614 - capella beforeProcessEpoch 288.03 ms/op 348.89 ms/op 0.83
mainnet_e217614 - capella processJustificationAndFinalization 17.648 us/op 19.271 us/op 0.92
mainnet_e217614 - capella processInactivityUpdates 19.764 ms/op 20.650 ms/op 0.96
mainnet_e217614 - capella processRewardsAndPenalties 290.14 ms/op 323.68 ms/op 0.90
mainnet_e217614 - capella processRegistryUpdates 24.217 us/op 25.347 us/op 0.96
mainnet_e217614 - capella processSlashings 455.00 ns/op 489.00 ns/op 0.93
mainnet_e217614 - capella processEth1DataReset 515.00 ns/op 445.00 ns/op 1.16
mainnet_e217614 - capella processEffectiveBalanceUpdates 14.472 ms/op 5.0352 ms/op 2.87
mainnet_e217614 - capella processSlashingsReset 2.9520 us/op 3.0600 us/op 0.96
mainnet_e217614 - capella processRandaoMixesReset 4.1920 us/op 4.4080 us/op 0.95
mainnet_e217614 - capella processHistoricalRootsUpdate 798.00 ns/op 604.00 ns/op 1.32
mainnet_e217614 - capella processParticipationFlagUpdates 1.9480 us/op 1.3410 us/op 1.45
mainnet_e217614 - capella afterProcessEpoch 352.19 ms/op 397.69 ms/op 0.89
phase0 processEpoch - mainnet_e58758 560.31 ms/op 553.38 ms/op 1.01
mainnet_e58758 - phase0 beforeProcessEpoch 136.04 ms/op 206.70 ms/op 0.66
mainnet_e58758 - phase0 processJustificationAndFinalization 17.902 us/op 21.247 us/op 0.84
mainnet_e58758 - phase0 processRewardsAndPenalties 34.101 ms/op 44.161 ms/op 0.77
mainnet_e58758 - phase0 processRegistryUpdates 12.947 us/op 11.768 us/op 1.10
mainnet_e58758 - phase0 processSlashings 648.00 ns/op 475.00 ns/op 1.36
mainnet_e58758 - phase0 processEth1DataReset 530.00 ns/op 504.00 ns/op 1.05
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.3307 ms/op 1.9309 ms/op 0.69
mainnet_e58758 - phase0 processSlashingsReset 5.2520 us/op 4.8400 us/op 1.09
mainnet_e58758 - phase0 processRandaoMixesReset 6.3210 us/op 7.2610 us/op 0.87
mainnet_e58758 - phase0 processHistoricalRootsUpdate 713.00 ns/op 720.00 ns/op 0.99
mainnet_e58758 - phase0 processParticipationRecordUpdates 5.6190 us/op 6.0190 us/op 0.93
mainnet_e58758 - phase0 afterProcessEpoch 103.25 ms/op 214.48 ms/op 0.48
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.3410 ms/op 1.8546 ms/op 0.72
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.8165 ms/op 1.7389 ms/op 1.04
altair processInactivityUpdates - 250000 normalcase 20.148 ms/op 25.693 ms/op 0.78
altair processInactivityUpdates - 250000 worstcase 18.936 ms/op 39.047 ms/op 0.48
phase0 processRegistryUpdates - 250000 normalcase 14.243 us/op 14.436 us/op 0.99
phase0 processRegistryUpdates - 250000 badcase_full_deposits 508.27 us/op 847.30 us/op 0.60
phase0 processRegistryUpdates - 250000 worstcase 0.5 169.71 ms/op 219.19 ms/op 0.77
altair processRewardsAndPenalties - 250000 normalcase 47.585 ms/op 70.435 ms/op 0.68
altair processRewardsAndPenalties - 250000 worstcase 50.334 ms/op 61.309 ms/op 0.82
phase0 getAttestationDeltas - 250000 normalcase 9.0161 ms/op 14.521 ms/op 0.62
phase0 getAttestationDeltas - 250000 worstcase 9.5730 ms/op 12.249 ms/op 0.78
phase0 processSlashings - 250000 worstcase 128.49 us/op 92.518 us/op 1.39
altair processSyncCommitteeUpdates - 250000 154.14 ms/op 213.08 ms/op 0.72
BeaconState.hashTreeRoot - No change 529.00 ns/op 960.00 ns/op 0.55
BeaconState.hashTreeRoot - 1 full validator 129.38 us/op 194.16 us/op 0.67
BeaconState.hashTreeRoot - 32 full validator 2.0305 ms/op 1.9199 ms/op 1.06
BeaconState.hashTreeRoot - 512 full validator 19.201 ms/op 27.923 ms/op 0.69
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 162.40 us/op 283.44 us/op 0.57
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 2.5640 ms/op 3.0884 ms/op 0.83
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 28.875 ms/op 30.902 ms/op 0.93
BeaconState.hashTreeRoot - 1 balances 125.23 us/op 191.49 us/op 0.65
BeaconState.hashTreeRoot - 32 balances 1.1911 ms/op 1.5638 ms/op 0.76
BeaconState.hashTreeRoot - 512 balances 10.228 ms/op 20.024 ms/op 0.51
BeaconState.hashTreeRoot - 250000 balances 252.47 ms/op 281.13 ms/op 0.90
aggregationBits - 2048 els - zipIndexesInBitList 35.513 us/op 37.695 us/op 0.94
byteArrayEquals 32 77.123 ns/op 164.66 ns/op 0.47
Buffer.compare 32 57.166 ns/op 128.39 ns/op 0.45
byteArrayEquals 1024 2.3441 us/op 6.0662 us/op 0.39
Buffer.compare 1024 75.842 ns/op 208.96 ns/op 0.36
byteArrayEquals 16384 36.497 us/op 52.783 us/op 0.69
Buffer.compare 16384 311.18 ns/op 336.36 ns/op 0.93
byteArrayEquals 123687377 253.11 ms/op 422.08 ms/op 0.60
Buffer.compare 123687377 10.094 ms/op 8.8872 ms/op 1.14
byteArrayEquals 32 - diff last byte 78.574 ns/op 102.57 ns/op 0.77
Buffer.compare 32 - diff last byte 60.329 ns/op 88.388 ns/op 0.68
byteArrayEquals 1024 - diff last byte 2.1396 us/op 4.2711 us/op 0.50
Buffer.compare 1024 - diff last byte 75.048 ns/op 126.94 ns/op 0.59
byteArrayEquals 16384 - diff last byte 33.019 us/op 49.907 us/op 0.66
Buffer.compare 16384 - diff last byte 277.14 ns/op 343.93 ns/op 0.81
byteArrayEquals 123687377 - diff last byte 249.18 ms/op 482.80 ms/op 0.52
Buffer.compare 123687377 - diff last byte 11.380 ms/op 9.1040 ms/op 1.25
byteArrayEquals 32 - random bytes 7.2840 ns/op 12.403 ns/op 0.59
Buffer.compare 32 - random bytes 70.270 ns/op 127.04 ns/op 0.55
byteArrayEquals 1024 - random bytes 6.8460 ns/op 14.640 ns/op 0.47
Buffer.compare 1024 - random bytes 65.300 ns/op 135.09 ns/op 0.48
byteArrayEquals 16384 - random bytes 6.8920 ns/op 16.974 ns/op 0.41
Buffer.compare 16384 - random bytes 67.710 ns/op 174.58 ns/op 0.39
byteArrayEquals 123687377 - random bytes 11.730 ns/op 25.280 ns/op 0.46
Buffer.compare 123687377 - random bytes 80.610 ns/op 190.83 ns/op 0.42
regular array get 100000 times 49.741 us/op 110.71 us/op 0.45
wrappedArray get 100000 times 50.407 us/op 100.81 us/op 0.50
arrayWithProxy get 100000 times 15.760 ms/op 37.669 ms/op 0.42
ssz.Root.equals 60.366 ns/op 168.49 ns/op 0.36
byteArrayEquals 59.316 ns/op 161.81 ns/op 0.37
Buffer.compare 17.677 ns/op 32.746 ns/op 0.54
shuffle list - 16384 els 12.018 ms/op 26.524 ms/op 0.45
shuffle list - 250000 els 170.91 ms/op 380.60 ms/op 0.45
processSlot - 1 slots 26.251 us/op 44.354 us/op 0.59
processSlot - 32 slots 5.3212 ms/op 8.1109 ms/op 0.66
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 82.417 ms/op 167.01 ms/op 0.49
getCommitteeAssignments - req 1 vs - 250000 vc 3.2414 ms/op 8.7768 ms/op 0.37
getCommitteeAssignments - req 100 vs - 250000 vc 4.5978 ms/op 11.986 ms/op 0.38
getCommitteeAssignments - req 1000 vs - 250000 vc 5.2939 ms/op 14.745 ms/op 0.36
findModifiedValidators - 10000 modified validators 660.16 ms/op 1.1368 s/op 0.58
findModifiedValidators - 1000 modified validators 469.96 ms/op 876.43 ms/op 0.54
findModifiedValidators - 100 modified validators 385.84 ms/op 785.94 ms/op 0.49
findModifiedValidators - 10 modified validators 298.78 ms/op 722.83 ms/op 0.41
findModifiedValidators - 1 modified validators 319.81 ms/op 773.27 ms/op 0.41
findModifiedValidators - no difference 251.45 ms/op 702.18 ms/op 0.36
compare ViewDUs 4.5875 s/op 9.7908 s/op 0.47
compare each validator Uint8Array 1.9742 s/op 3.6924 s/op 0.53
compare ViewDU to Uint8Array 1.6556 s/op 3.9297 s/op 0.42
migrate state 1000000 validators, 24 modified, 0 new 975.08 ms/op 2.5827 s/op 0.38
migrate state 1000000 validators, 1700 modified, 1000 new 1.3736 s/op 4.6549 s/op 0.30
migrate state 1000000 validators, 3400 modified, 2000 new 1.7499 s/op 4.8929 s/op 0.36
migrate state 1500000 validators, 24 modified, 0 new 1.0326 s/op 2.4157 s/op 0.43
migrate state 1500000 validators, 1700 modified, 1000 new 1.8976 s/op 3.9785 s/op 0.48
migrate state 1500000 validators, 3400 modified, 2000 new 2.0605 s/op 5.1021 s/op 0.40
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 5.5800 ns/op 19.810 ns/op 0.28
state getBlockRootAtSlot - 250000 vs - 7PWei 890.79 ns/op 1.8982 us/op 0.47
computeProposers - vc 250000 13.663 ms/op 31.089 ms/op 0.44
computeEpochShuffling - vc 250000 142.10 ms/op 500.90 ms/op 0.28
getNextSyncCommittee - vc 250000 196.26 ms/op 561.19 ms/op 0.35
computeSigningRoot for AttestationData 35.149 us/op 92.298 us/op 0.38
hash AttestationData serialized data then Buffer.toString(base64) 2.4461 us/op 7.5467 us/op 0.32
toHexString serialized data 1.4267 us/op 4.3130 us/op 0.33
Buffer.toString(base64) 273.33 ns/op 810.64 ns/op 0.34

by benchmarkbot/action

@matthewkeil matthewkeil force-pushed the mkeil/dual-export-spec-test-util branch from 0e36a08 to d765e83 Compare May 6, 2024 12:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant