-
-
Notifications
You must be signed in to change notification settings - Fork 291
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: write heap snapshot to network/discv5 thread #6130
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
|
Benchmark suite | Current: 64fc7a2 | Previous: 8afbc98 | Ratio |
---|---|---|---|
Object set x1000 | 80.781 ns/op | 24.380 ns/op | 3.31 |
Map set x1000 | 59.828 ns/op | 16.346 ns/op | 3.66 |
Set add up to 64 items then delete first | 5.6384 us/op | 1.7325 us/op | 3.25 |
Set add up to 64 items then delete last | 6.0345 us/op | 1.9640 us/op | 3.07 |
Set add up to 64 items then delete middle | 6.1314 us/op | 1.9913 us/op | 3.08 |
Set add up to 128 items then delete first | 12.189 us/op | 3.8847 us/op | 3.14 |
Set add up to 128 items then delete last | 11.355 us/op | 3.7351 us/op | 3.04 |
Set add up to 128 items then delete middle | 11.917 us/op | 3.7307 us/op | 3.19 |
Set add up to 256 items then delete first | 23.523 us/op | 7.6264 us/op | 3.08 |
Set add up to 256 items then delete last | 24.163 us/op | 7.4531 us/op | 3.24 |
Set add up to 256 items then delete middle | 23.964 us/op | 7.2883 us/op | 3.29 |
forkChoice updateHead vc 600000 bc 64 eq 300000 | 92.319 ms/op | 11.297 ms/op | 8.17 |
computeDeltas 1400000 validators 7200 proto nodes | 25.495 ms/op | 8.3350 ms/op | 3.06 |
Full benchmark results
Benchmark suite | Current: 64fc7a2 | Previous: 8afbc98 | Ratio |
---|---|---|---|
getPubkeys - index2pubkey - req 1000 vs - 250000 vc | 652.46 us/op | 665.09 us/op | 0.98 |
getPubkeys - validatorsArr - req 1000 vs - 250000 vc | 114.45 us/op | 53.691 us/op | 2.13 |
BLS verify - blst-native | 1.3651 ms/op | 1.0988 ms/op | 1.24 |
BLS verifyMultipleSignatures 3 - blst-native | 3.0144 ms/op | 2.3464 ms/op | 1.28 |
BLS verifyMultipleSignatures 8 - blst-native | 6.4702 ms/op | 5.0602 ms/op | 1.28 |
BLS verifyMultipleSignatures 32 - blst-native | 23.737 ms/op | 18.187 ms/op | 1.31 |
BLS verifyMultipleSignatures 64 - blst-native | 45.976 ms/op | 35.775 ms/op | 1.29 |
BLS verifyMultipleSignatures 128 - blst-native | 92.759 ms/op | 71.179 ms/op | 1.30 |
BLS deserializing 10000 signatures | 967.87 ms/op | 769.27 ms/op | 1.26 |
BLS deserializing 100000 signatures | 9.4661 s/op | 7.8165 s/op | 1.21 |
BLS verifyMultipleSignatures - same message - 3 - blst-native | 1.4412 ms/op | 1.0378 ms/op | 1.39 |
BLS verifyMultipleSignatures - same message - 8 - blst-native | 1.6192 ms/op | 1.1974 ms/op | 1.35 |
BLS verifyMultipleSignatures - same message - 32 - blst-native | 2.5404 ms/op | 1.8353 ms/op | 1.38 |
BLS verifyMultipleSignatures - same message - 64 - blst-native | 3.7492 ms/op | 2.8077 ms/op | 1.34 |
BLS verifyMultipleSignatures - same message - 128 - blst-native | 6.1638 ms/op | 6.1567 ms/op | 1.00 |
BLS aggregatePubkeys 32 - blst-native | 28.512 us/op | 21.136 us/op | 1.35 |
BLS aggregatePubkeys 128 - blst-native | 110.71 us/op | 82.219 us/op | 1.35 |
getAttestationsForBlock | 52.240 ms/op | 25.662 ms/op | 2.04 |
isKnown best case - 1 super set check | 680.00 ns/op | 337.00 ns/op | 2.02 |
isKnown normal case - 2 super set checks | 684.00 ns/op | 325.00 ns/op | 2.10 |
isKnown worse case - 16 super set checks | 554.00 ns/op | 328.00 ns/op | 1.69 |
CheckpointStateCache - add get delete | 6.5720 us/op | 3.7880 us/op | 1.73 |
validate api signedAggregateAndProof - struct | 3.1150 ms/op | 2.2659 ms/op | 1.37 |
validate gossip signedAggregateAndProof - struct | 2.9273 ms/op | 2.3535 ms/op | 1.24 |
validate gossip attestation - vc 640000 | 1.4619 ms/op | 1.1269 ms/op | 1.30 |
batch validate gossip attestation - vc 640000 - chunk 32 | 186.84 us/op | 133.19 us/op | 1.40 |
batch validate gossip attestation - vc 640000 - chunk 64 | 174.41 us/op | 117.94 us/op | 1.48 |
batch validate gossip attestation - vc 640000 - chunk 128 | 177.83 us/op | 113.31 us/op | 1.57 |
batch validate gossip attestation - vc 640000 - chunk 256 | 156.15 us/op | 105.30 us/op | 1.48 |
pickEth1Vote - no votes | 1.5835 ms/op | 760.81 us/op | 2.08 |
pickEth1Vote - max votes | 13.652 ms/op | 8.1926 ms/op | 1.67 |
pickEth1Vote - Eth1Data hashTreeRoot value x2048 | 26.420 ms/op | 17.542 ms/op | 1.51 |
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 | 39.004 ms/op | 24.954 ms/op | 1.56 |
pickEth1Vote - Eth1Data fastSerialize value x2048 | 810.03 us/op | 408.58 us/op | 1.98 |
pickEth1Vote - Eth1Data fastSerialize tree x2048 | 6.5096 ms/op | 6.7670 ms/op | 0.96 |
bytes32 toHexString | 900.00 ns/op | 440.00 ns/op | 2.05 |
bytes32 Buffer.toString(hex) | 310.00 ns/op | 298.00 ns/op | 1.04 |
bytes32 Buffer.toString(hex) from Uint8Array | 583.00 ns/op | 419.00 ns/op | 1.39 |
bytes32 Buffer.toString(hex) + 0x | 313.00 ns/op | 299.00 ns/op | 1.05 |
Object access 1 prop | 0.24500 ns/op | 0.19300 ns/op | 1.27 |
Map access 1 prop | 0.16100 ns/op | 0.18400 ns/op | 0.88 |
Object get x1000 | 7.8870 ns/op | 5.3170 ns/op | 1.48 |
Map get x1000 | 0.95100 ns/op | 0.69900 ns/op | 1.36 |
Object set x1000 | 80.781 ns/op | 24.380 ns/op | 3.31 |
Map set x1000 | 59.828 ns/op | 16.346 ns/op | 3.66 |
Return object 10000 times | 0.27380 ns/op | 0.22020 ns/op | 1.24 |
Throw Error 10000 times | 4.3283 us/op | 2.6793 us/op | 1.62 |
fastMsgIdFn sha256 / 200 bytes | 3.5660 us/op | 1.9040 us/op | 1.87 |
fastMsgIdFn h32 xxhash / 200 bytes | 395.00 ns/op | 293.00 ns/op | 1.35 |
fastMsgIdFn h64 xxhash / 200 bytes | 435.00 ns/op | 329.00 ns/op | 1.32 |
fastMsgIdFn sha256 / 1000 bytes | 12.923 us/op | 6.1860 us/op | 2.09 |
fastMsgIdFn h32 xxhash / 1000 bytes | 541.00 ns/op | 401.00 ns/op | 1.35 |
fastMsgIdFn h64 xxhash / 1000 bytes | 521.00 ns/op | 389.00 ns/op | 1.34 |
fastMsgIdFn sha256 / 10000 bytes | 116.41 us/op | 52.632 us/op | 2.21 |
fastMsgIdFn h32 xxhash / 10000 bytes | 2.2250 us/op | 1.7500 us/op | 1.27 |
fastMsgIdFn h64 xxhash / 10000 bytes | 1.5460 us/op | 1.1900 us/op | 1.30 |
send data - 1000 256B messages | 24.135 ms/op | 11.042 ms/op | 2.19 |
send data - 1000 512B messages | 31.333 ms/op | 14.452 ms/op | 2.17 |
send data - 1000 1024B messages | 50.972 ms/op | 21.770 ms/op | 2.34 |
send data - 1000 1200B messages | 46.849 ms/op | 26.780 ms/op | 1.75 |
send data - 1000 2048B messages | 49.820 ms/op | 31.016 ms/op | 1.61 |
send data - 1000 4096B messages | 38.753 ms/op | 30.532 ms/op | 1.27 |
send data - 1000 16384B messages | 126.99 ms/op | 74.874 ms/op | 1.70 |
send data - 1000 65536B messages | 509.57 ms/op | 342.03 ms/op | 1.49 |
enrSubnets - fastDeserialize 64 bits | 1.9790 us/op | 957.00 ns/op | 2.07 |
enrSubnets - ssz BitVector 64 bits | 575.00 ns/op | 401.00 ns/op | 1.43 |
enrSubnets - fastDeserialize 4 bits | 251.00 ns/op | 191.00 ns/op | 1.31 |
enrSubnets - ssz BitVector 4 bits | 615.00 ns/op | 406.00 ns/op | 1.51 |
prioritizePeers score -10:0 att 32-0.1 sync 2-0 | 116.89 us/op | 65.318 us/op | 1.79 |
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 | 164.40 us/op | 78.496 us/op | 2.09 |
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 | 228.26 us/op | 107.62 us/op | 2.12 |
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 | 392.16 us/op | 175.89 us/op | 2.23 |
prioritizePeers score 0:0 att 64-1 sync 4-1 | 427.67 us/op | 195.88 us/op | 2.18 |
array of 16000 items push then shift | 1.8254 us/op | 1.2592 us/op | 1.45 |
LinkedList of 16000 items push then shift | 10.277 ns/op | 5.7600 ns/op | 1.78 |
array of 16000 items push then pop | 127.49 ns/op | 56.398 ns/op | 2.26 |
LinkedList of 16000 items push then pop | 9.7020 ns/op | 5.5260 ns/op | 1.76 |
array of 24000 items push then shift | 2.8461 us/op | 1.7293 us/op | 1.65 |
LinkedList of 24000 items push then shift | 11.459 ns/op | 6.0380 ns/op | 1.90 |
array of 24000 items push then pop | 174.63 ns/op | 88.871 ns/op | 1.96 |
LinkedList of 24000 items push then pop | 9.8630 ns/op | 5.6120 ns/op | 1.76 |
intersect bitArray bitLen 8 | 7.2760 ns/op | 6.0990 ns/op | 1.19 |
intersect array and set length 8 | 90.159 ns/op | 47.987 ns/op | 1.88 |
intersect bitArray bitLen 128 | 37.140 ns/op | 27.661 ns/op | 1.34 |
intersect array and set length 128 | 1.2012 us/op | 682.40 ns/op | 1.76 |
bitArray.getTrueBitIndexes() bitLen 128 | 2.3250 us/op | 1.2560 us/op | 1.85 |
bitArray.getTrueBitIndexes() bitLen 248 | 3.8680 us/op | 1.8680 us/op | 2.07 |
bitArray.getTrueBitIndexes() bitLen 512 | 7.6950 us/op | 3.4990 us/op | 2.20 |
Buffer.concat 32 items | 1.2890 us/op | 865.00 ns/op | 1.49 |
Uint8Array.set 32 items | 2.3610 us/op | 2.5070 us/op | 0.94 |
Set add up to 64 items then delete first | 5.6384 us/op | 1.7325 us/op | 3.25 |
OrderedSet add up to 64 items then delete first | 7.7293 us/op | 2.6676 us/op | 2.90 |
Set add up to 64 items then delete last | 6.0345 us/op | 1.9640 us/op | 3.07 |
OrderedSet add up to 64 items then delete last | 8.0137 us/op | 2.9393 us/op | 2.73 |
Set add up to 64 items then delete middle | 6.1314 us/op | 1.9913 us/op | 3.08 |
OrderedSet add up to 64 items then delete middle | 9.3326 us/op | 4.1359 us/op | 2.26 |
Set add up to 128 items then delete first | 12.189 us/op | 3.8847 us/op | 3.14 |
OrderedSet add up to 128 items then delete first | 17.154 us/op | 6.3944 us/op | 2.68 |
Set add up to 128 items then delete last | 11.355 us/op | 3.7351 us/op | 3.04 |
OrderedSet add up to 128 items then delete last | 15.894 us/op | 5.6584 us/op | 2.81 |
Set add up to 128 items then delete middle | 11.917 us/op | 3.7307 us/op | 3.19 |
OrderedSet add up to 128 items then delete middle | 22.519 us/op | 10.654 us/op | 2.11 |
Set add up to 256 items then delete first | 23.523 us/op | 7.6264 us/op | 3.08 |
OrderedSet add up to 256 items then delete first | 35.049 us/op | 12.114 us/op | 2.89 |
Set add up to 256 items then delete last | 24.163 us/op | 7.4531 us/op | 3.24 |
OrderedSet add up to 256 items then delete last | 32.930 us/op | 11.205 us/op | 2.94 |
Set add up to 256 items then delete middle | 23.964 us/op | 7.2883 us/op | 3.29 |
OrderedSet add up to 256 items then delete middle | 58.797 us/op | 30.490 us/op | 1.93 |
transfer serialized Status (84 B) | 2.1570 us/op | 1.5630 us/op | 1.38 |
copy serialized Status (84 B) | 1.8020 us/op | 1.4110 us/op | 1.28 |
transfer serialized SignedVoluntaryExit (112 B) | 2.2160 us/op | 1.8310 us/op | 1.21 |
copy serialized SignedVoluntaryExit (112 B) | 1.8880 us/op | 1.5870 us/op | 1.19 |
transfer serialized ProposerSlashing (416 B) | 2.7690 us/op | 2.7820 us/op | 1.00 |
copy serialized ProposerSlashing (416 B) | 2.8450 us/op | 2.8770 us/op | 0.99 |
transfer serialized Attestation (485 B) | 2.4680 us/op | 2.8340 us/op | 0.87 |
copy serialized Attestation (485 B) | 2.6990 us/op | 2.8780 us/op | 0.94 |
transfer serialized AttesterSlashing (33232 B) | 4.0170 us/op | 2.7680 us/op | 1.45 |
copy serialized AttesterSlashing (33232 B) | 9.3540 us/op | 5.3720 us/op | 1.74 |
transfer serialized Small SignedBeaconBlock (128000 B) | 2.9900 us/op | 3.1820 us/op | 0.94 |
copy serialized Small SignedBeaconBlock (128000 B) | 21.173 us/op | 10.108 us/op | 2.09 |
transfer serialized Avg SignedBeaconBlock (200000 B) | 3.2250 us/op | 2.7530 us/op | 1.17 |
copy serialized Avg SignedBeaconBlock (200000 B) | 29.727 us/op | 13.069 us/op | 2.27 |
transfer serialized BlobsSidecar (524380 B) | 3.7030 us/op | 2.7070 us/op | 1.37 |
copy serialized BlobsSidecar (524380 B) | 135.57 us/op | 108.06 us/op | 1.25 |
transfer serialized Big SignedBeaconBlock (1000000 B) | 4.1870 us/op | 3.0000 us/op | 1.40 |
copy serialized Big SignedBeaconBlock (1000000 B) | 289.67 us/op | 196.37 us/op | 1.48 |
pass gossip attestations to forkchoice per slot | 4.7254 ms/op | 2.7156 ms/op | 1.74 |
forkChoice updateHead vc 100000 bc 64 eq 0 | 773.26 us/op | 447.87 us/op | 1.73 |
forkChoice updateHead vc 600000 bc 64 eq 0 | 6.4706 ms/op | 2.8429 ms/op | 2.28 |
forkChoice updateHead vc 1000000 bc 64 eq 0 | 11.207 ms/op | 4.2752 ms/op | 2.62 |
forkChoice updateHead vc 600000 bc 320 eq 0 | 5.7290 ms/op | 2.5577 ms/op | 2.24 |
forkChoice updateHead vc 600000 bc 1200 eq 0 | 6.8270 ms/op | 2.6334 ms/op | 2.59 |
forkChoice updateHead vc 600000 bc 7200 eq 0 | 7.7388 ms/op | 3.1831 ms/op | 2.43 |
forkChoice updateHead vc 600000 bc 64 eq 1000 | 14.138 ms/op | 9.6866 ms/op | 1.46 |
forkChoice updateHead vc 600000 bc 64 eq 10000 | 15.550 ms/op | 9.1028 ms/op | 1.71 |
forkChoice updateHead vc 600000 bc 64 eq 300000 | 92.319 ms/op | 11.297 ms/op | 8.17 |
computeDeltas 500000 validators 300 proto nodes | 7.7569 ms/op | 3.0339 ms/op | 2.56 |
computeDeltas 500000 validators 1200 proto nodes | 8.0194 ms/op | 2.9947 ms/op | 2.68 |
computeDeltas 500000 validators 7200 proto nodes | 7.0242 ms/op | 2.9075 ms/op | 2.42 |
computeDeltas 750000 validators 300 proto nodes | 10.827 ms/op | 4.4391 ms/op | 2.44 |
computeDeltas 750000 validators 1200 proto nodes | 10.430 ms/op | 4.5137 ms/op | 2.31 |
computeDeltas 750000 validators 7200 proto nodes | 11.176 ms/op | 4.4437 ms/op | 2.52 |
computeDeltas 1400000 validators 300 proto nodes | 21.340 ms/op | 8.3989 ms/op | 2.54 |
computeDeltas 1400000 validators 1200 proto nodes | 22.092 ms/op | 8.4565 ms/op | 2.61 |
computeDeltas 1400000 validators 7200 proto nodes | 25.495 ms/op | 8.3350 ms/op | 3.06 |
computeDeltas 2100000 validators 300 proto nodes | 38.316 ms/op | 13.213 ms/op | 2.90 |
computeDeltas 2100000 validators 1200 proto nodes | 37.928 ms/op | 13.382 ms/op | 2.83 |
computeDeltas 2100000 validators 7200 proto nodes | 38.831 ms/op | 13.463 ms/op | 2.88 |
computeProposerBoostScoreFromBalances 500000 validators | 4.2155 ms/op | 3.2634 ms/op | 1.29 |
computeProposerBoostScoreFromBalances 750000 validators | 4.1567 ms/op | 3.2525 ms/op | 1.28 |
computeProposerBoostScoreFromBalances 1400000 validators | 4.0748 ms/op | 3.2462 ms/op | 1.26 |
computeProposerBoostScoreFromBalances 2100000 validators | 4.2516 ms/op | 3.0259 ms/op | 1.41 |
altair processAttestation - 250000 vs - 7PWei normalcase | 3.6394 ms/op | 1.4879 ms/op | 2.45 |
altair processAttestation - 250000 vs - 7PWei worstcase | 4.0962 ms/op | 2.1576 ms/op | 1.90 |
altair processAttestation - setStatus - 1/6 committees join | 245.27 us/op | 96.238 us/op | 2.55 |
altair processAttestation - setStatus - 1/3 committees join | 407.93 us/op | 189.99 us/op | 2.15 |
altair processAttestation - setStatus - 1/2 committees join | 600.75 us/op | 265.94 us/op | 2.26 |
altair processAttestation - setStatus - 2/3 committees join | 642.58 us/op | 377.26 us/op | 1.70 |
altair processAttestation - setStatus - 4/5 committees join | 1.0310 ms/op | 461.48 us/op | 2.23 |
altair processAttestation - setStatus - 100% committees join | 1.2853 ms/op | 579.94 us/op | 2.22 |
altair processBlock - 250000 vs - 7PWei normalcase | 18.123 ms/op | 7.7043 ms/op | 2.35 |
altair processBlock - 250000 vs - 7PWei normalcase hashState | 41.735 ms/op | 37.841 ms/op | 1.10 |
altair processBlock - 250000 vs - 7PWei worstcase | 50.528 ms/op | 31.808 ms/op | 1.59 |
altair processBlock - 250000 vs - 7PWei worstcase hashState | 120.66 ms/op | 85.293 ms/op | 1.41 |
phase0 processBlock - 250000 vs - 7PWei normalcase | 4.6584 ms/op | 2.6929 ms/op | 1.73 |
phase0 processBlock - 250000 vs - 7PWei worstcase | 38.174 ms/op | 26.069 ms/op | 1.46 |
altair processEth1Data - 250000 vs - 7PWei normalcase | 724.95 us/op | 372.22 us/op | 1.95 |
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 | 18.212 us/op | 8.0540 us/op | 2.26 |
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 | 60.240 us/op | 39.907 us/op | 1.51 |
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 | 20.519 us/op | 17.818 us/op | 1.15 |
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 | 22.402 us/op | 8.4080 us/op | 2.66 |
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 | 227.18 us/op | 154.24 us/op | 1.47 |
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 | 1.7203 ms/op | 1.2277 ms/op | 1.40 |
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 | 1.7752 ms/op | 1.5196 ms/op | 1.17 |
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 | 1.8523 ms/op | 1.2827 ms/op | 1.44 |
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 | 4.1159 ms/op | 1.9756 ms/op | 2.08 |
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 | 3.0646 ms/op | 1.3957 ms/op | 2.20 |
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 | 7.0651 ms/op | 3.2415 ms/op | 2.18 |
Tree 40 250000 create | 503.09 ms/op | 267.42 ms/op | 1.88 |
Tree 40 250000 get(125000) | 223.34 ns/op | 100.32 ns/op | 2.23 |
Tree 40 250000 set(125000) | 1.5197 us/op | 700.32 ns/op | 2.17 |
Tree 40 250000 toArray() | 25.549 ms/op | 14.676 ms/op | 1.74 |
Tree 40 250000 iterate all - toArray() + loop | 25.992 ms/op | 14.470 ms/op | 1.80 |
Tree 40 250000 iterate all - get(i) | 82.570 ms/op | 39.159 ms/op | 2.11 |
MutableVector 250000 create | 18.170 ms/op | 11.343 ms/op | 1.60 |
MutableVector 250000 get(125000) | 7.3130 ns/op | 5.2280 ns/op | 1.40 |
MutableVector 250000 set(125000) | 398.57 ns/op | 195.07 ns/op | 2.04 |
MutableVector 250000 toArray() | 4.4805 ms/op | 2.5943 ms/op | 1.73 |
MutableVector 250000 iterate all - toArray() + loop | 5.3308 ms/op | 3.1052 ms/op | 1.72 |
MutableVector 250000 iterate all - get(i) | 1.6499 ms/op | 1.3184 ms/op | 1.25 |
Array 250000 create | 4.6964 ms/op | 2.3281 ms/op | 2.02 |
Array 250000 clone - spread | 1.7411 ms/op | 1.0218 ms/op | 1.70 |
Array 250000 get(125000) | 1.9780 ns/op | 0.97200 ns/op | 2.03 |
Array 250000 set(125000) | 6.0970 ns/op | 1.1790 ns/op | 5.17 |
Array 250000 iterate all - loop | 185.17 us/op | 152.86 us/op | 1.21 |
effectiveBalanceIncrements clone Uint8Array 300000 | 70.633 us/op | 12.691 us/op | 5.57 |
effectiveBalanceIncrements clone MutableVector 300000 | 1.0060 us/op | 361.00 ns/op | 2.79 |
effectiveBalanceIncrements rw all Uint8Array 300000 | 220.69 us/op | 183.21 us/op | 1.20 |
effectiveBalanceIncrements rw all MutableVector 300000 | 183.52 ms/op | 60.432 ms/op | 3.04 |
phase0 afterProcessEpoch - 250000 vs - 7PWei | 124.16 ms/op | 75.065 ms/op | 1.65 |
phase0 beforeProcessEpoch - 250000 vs - 7PWei | 54.300 ms/op | 39.237 ms/op | 1.38 |
altair processEpoch - mainnet_e81889 | 547.03 ms/op | 402.71 ms/op | 1.36 |
mainnet_e81889 - altair beforeProcessEpoch | 88.313 ms/op | 62.956 ms/op | 1.40 |
mainnet_e81889 - altair processJustificationAndFinalization | 18.267 us/op | 10.239 us/op | 1.78 |
mainnet_e81889 - altair processInactivityUpdates | 7.1249 ms/op | 4.6698 ms/op | 1.53 |
mainnet_e81889 - altair processRewardsAndPenalties | 56.228 ms/op | 71.883 ms/op | 0.78 |
mainnet_e81889 - altair processRegistryUpdates | 2.6350 us/op | 1.5220 us/op | 1.73 |
mainnet_e81889 - altair processSlashings | 568.00 ns/op | 420.00 ns/op | 1.35 |
mainnet_e81889 - altair processEth1DataReset | 811.00 ns/op | 677.00 ns/op | 1.20 |
mainnet_e81889 - altair processEffectiveBalanceUpdates | 1.4490 ms/op | 1.7690 ms/op | 0.82 |
mainnet_e81889 - altair processSlashingsReset | 4.0130 us/op | 2.1230 us/op | 1.89 |
mainnet_e81889 - altair processRandaoMixesReset | 8.5400 us/op | 3.6060 us/op | 2.37 |
mainnet_e81889 - altair processHistoricalRootsUpdate | 1.6820 us/op | 731.00 ns/op | 2.30 |
mainnet_e81889 - altair processParticipationFlagUpdates | 3.2390 us/op | 1.7460 us/op | 1.86 |
mainnet_e81889 - altair processSyncCommitteeUpdates | 896.00 ns/op | 636.00 ns/op | 1.41 |
mainnet_e81889 - altair afterProcessEpoch | 129.89 ms/op | 75.183 ms/op | 1.73 |
capella processEpoch - mainnet_e217614 | 2.7347 s/op | 1.7245 s/op | 1.59 |
mainnet_e217614 - capella beforeProcessEpoch | 590.82 ms/op | 374.11 ms/op | 1.58 |
mainnet_e217614 - capella processJustificationAndFinalization | 17.351 us/op | 6.2450 us/op | 2.78 |
mainnet_e217614 - capella processInactivityUpdates | 23.724 ms/op | 17.182 ms/op | 1.38 |
mainnet_e217614 - capella processRewardsAndPenalties | 591.35 ms/op | 461.09 ms/op | 1.28 |
mainnet_e217614 - capella processRegistryUpdates | 41.176 us/op | 15.311 us/op | 2.69 |
mainnet_e217614 - capella processSlashings | 637.00 ns/op | 525.00 ns/op | 1.21 |
mainnet_e217614 - capella processEth1DataReset | 410.00 ns/op | 492.00 ns/op | 0.83 |
mainnet_e217614 - capella processEffectiveBalanceUpdates | 4.6585 ms/op | 3.4689 ms/op | 1.34 |
mainnet_e217614 - capella processSlashingsReset | 2.4570 us/op | 1.8130 us/op | 1.36 |
mainnet_e217614 - capella processRandaoMixesReset | 5.0940 us/op | 3.1150 us/op | 1.64 |
mainnet_e217614 - capella processHistoricalRootsUpdate | 737.00 ns/op | 606.00 ns/op | 1.22 |
mainnet_e217614 - capella processParticipationFlagUpdates | 2.9440 us/op | 1.2620 us/op | 2.33 |
mainnet_e217614 - capella afterProcessEpoch | 341.41 ms/op | 193.11 ms/op | 1.77 |
phase0 processEpoch - mainnet_e58758 | 487.83 ms/op | 375.83 ms/op | 1.30 |
mainnet_e58758 - phase0 beforeProcessEpoch | 152.11 ms/op | 111.20 ms/op | 1.37 |
mainnet_e58758 - phase0 processJustificationAndFinalization | 15.285 us/op | 13.020 us/op | 1.17 |
mainnet_e58758 - phase0 processRewardsAndPenalties | 48.565 ms/op | 61.210 ms/op | 0.79 |
mainnet_e58758 - phase0 processRegistryUpdates | 9.4790 us/op | 7.3250 us/op | 1.29 |
mainnet_e58758 - phase0 processSlashings | 498.00 ns/op | 585.00 ns/op | 0.85 |
mainnet_e58758 - phase0 processEth1DataReset | 681.00 ns/op | 541.00 ns/op | 1.26 |
mainnet_e58758 - phase0 processEffectiveBalanceUpdates | 1.3884 ms/op | 1.3532 ms/op | 1.03 |
mainnet_e58758 - phase0 processSlashingsReset | 2.2980 us/op | 2.3930 us/op | 0.96 |
mainnet_e58758 - phase0 processRandaoMixesReset | 4.0380 us/op | 3.1630 us/op | 1.28 |
mainnet_e58758 - phase0 processHistoricalRootsUpdate | 392.00 ns/op | 648.00 ns/op | 0.60 |
mainnet_e58758 - phase0 processParticipationRecordUpdates | 3.2780 us/op | 2.7440 us/op | 1.19 |
mainnet_e58758 - phase0 afterProcessEpoch | 103.57 ms/op | 62.437 ms/op | 1.66 |
phase0 processEffectiveBalanceUpdates - 250000 normalcase | 1.3655 ms/op | 978.77 us/op | 1.40 |
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 | 1.4388 ms/op | 1.1075 ms/op | 1.30 |
altair processInactivityUpdates - 250000 normalcase | 20.026 ms/op | 20.395 ms/op | 0.98 |
altair processInactivityUpdates - 250000 worstcase | 21.709 ms/op | 20.681 ms/op | 1.05 |
phase0 processRegistryUpdates - 250000 normalcase | 10.585 us/op | 3.4970 us/op | 3.03 |
phase0 processRegistryUpdates - 250000 badcase_full_deposits | 402.29 us/op | 356.54 us/op | 1.13 |
phase0 processRegistryUpdates - 250000 worstcase 0.5 | 125.23 ms/op | 119.08 ms/op | 1.05 |
altair processRewardsAndPenalties - 250000 normalcase | 61.610 ms/op | 61.931 ms/op | 0.99 |
altair processRewardsAndPenalties - 250000 worstcase | 63.396 ms/op | 64.175 ms/op | 0.99 |
phase0 getAttestationDeltas - 250000 normalcase | 10.156 ms/op | 5.0631 ms/op | 2.01 |
phase0 getAttestationDeltas - 250000 worstcase | 10.529 ms/op | 5.5319 ms/op | 1.90 |
phase0 processSlashings - 250000 worstcase | 2.4647 ms/op | 1.3655 ms/op | 1.80 |
altair processSyncCommitteeUpdates - 250000 | 169.71 ms/op | 106.34 ms/op | 1.60 |
BeaconState.hashTreeRoot - No change | 256.00 ns/op | 294.00 ns/op | 0.87 |
BeaconState.hashTreeRoot - 1 full validator | 167.31 us/op | 120.15 us/op | 1.39 |
BeaconState.hashTreeRoot - 32 full validator | 1.5352 ms/op | 1.4845 ms/op | 1.03 |
BeaconState.hashTreeRoot - 512 full validator | 16.153 ms/op | 15.481 ms/op | 1.04 |
BeaconState.hashTreeRoot - 1 validator.effectiveBalance | 195.57 us/op | 159.82 us/op | 1.22 |
BeaconState.hashTreeRoot - 32 validator.effectiveBalance | 2.9437 ms/op | 2.2157 ms/op | 1.33 |
BeaconState.hashTreeRoot - 512 validator.effectiveBalance | 32.188 ms/op | 28.359 ms/op | 1.14 |
BeaconState.hashTreeRoot - 1 balances | 181.77 us/op | 133.41 us/op | 1.36 |
BeaconState.hashTreeRoot - 32 balances | 1.6270 ms/op | 1.1036 ms/op | 1.47 |
BeaconState.hashTreeRoot - 512 balances | 14.544 ms/op | 11.618 ms/op | 1.25 |
BeaconState.hashTreeRoot - 250000 balances | 238.64 ms/op | 195.72 ms/op | 1.22 |
aggregationBits - 2048 els - zipIndexesInBitList | 22.622 us/op | 12.521 us/op | 1.81 |
byteArrayEquals 32 | 81.783 ns/op | 59.654 ns/op | 1.37 |
Buffer.compare 32 | 59.993 ns/op | 34.546 ns/op | 1.74 |
byteArrayEquals 1024 | 3.0170 us/op | 1.5879 us/op | 1.90 |
Buffer.compare 1024 | 80.024 ns/op | 39.375 ns/op | 2.03 |
byteArrayEquals 16384 | 37.678 us/op | 25.302 us/op | 1.49 |
Buffer.compare 16384 | 303.76 ns/op | 185.73 ns/op | 1.64 |
byteArrayEquals 123687377 | 276.55 ms/op | 194.94 ms/op | 1.42 |
Buffer.compare 123687377 | 9.4773 ms/op | 5.3088 ms/op | 1.79 |
byteArrayEquals 32 - diff last byte | 91.961 ns/op | 59.482 ns/op | 1.55 |
Buffer.compare 32 - diff last byte | 67.863 ns/op | 35.246 ns/op | 1.93 |
byteArrayEquals 1024 - diff last byte | 2.4326 us/op | 1.6533 us/op | 1.47 |
Buffer.compare 1024 - diff last byte | 85.211 ns/op | 41.529 ns/op | 2.05 |
byteArrayEquals 16384 - diff last byte | 38.267 us/op | 26.273 us/op | 1.46 |
Buffer.compare 16384 - diff last byte | 335.16 ns/op | 183.17 ns/op | 1.83 |
byteArrayEquals 123687377 - diff last byte | 302.01 ms/op | 196.54 ms/op | 1.54 |
Buffer.compare 123687377 - diff last byte | 12.963 ms/op | 5.3104 ms/op | 2.44 |
byteArrayEquals 32 - random bytes | 9.0410 ns/op | 4.3310 ns/op | 2.09 |
Buffer.compare 32 - random bytes | 73.474 ns/op | 36.978 ns/op | 1.99 |
byteArrayEquals 1024 - random bytes | 7.5370 ns/op | 4.2600 ns/op | 1.77 |
Buffer.compare 1024 - random bytes | 68.917 ns/op | 34.952 ns/op | 1.97 |
byteArrayEquals 16384 - random bytes | 7.1940 ns/op | 4.2620 ns/op | 1.69 |
Buffer.compare 16384 - random bytes | 72.515 ns/op | 34.466 ns/op | 2.10 |
byteArrayEquals 123687377 - random bytes | 18.360 ns/op | 7.4100 ns/op | 2.48 |
Buffer.compare 123687377 - random bytes | 97.070 ns/op | 37.150 ns/op | 2.61 |
regular array get 100000 times | 62.554 us/op | 39.331 us/op | 1.59 |
wrappedArray get 100000 times | 58.309 us/op | 39.317 us/op | 1.48 |
arrayWithProxy get 100000 times | 16.177 ms/op | 9.6725 ms/op | 1.67 |
ssz.Root.equals | 63.219 ns/op | 52.222 ns/op | 1.21 |
byteArrayEquals | 65.184 ns/op | 51.450 ns/op | 1.27 |
Buffer.compare | 14.280 ns/op | 8.6640 ns/op | 1.65 |
shuffle list - 16384 els | 7.9205 ms/op | 4.3340 ms/op | 1.83 |
shuffle list - 250000 els | 117.92 ms/op | 63.461 ms/op | 1.86 |
processSlot - 1 slots | 26.423 us/op | 14.262 us/op | 1.85 |
processSlot - 32 slots | 4.5455 ms/op | 2.9526 ms/op | 1.54 |
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei | 73.749 ms/op | 52.476 ms/op | 1.41 |
getCommitteeAssignments - req 1 vs - 250000 vc | 2.8035 ms/op | 2.1275 ms/op | 1.32 |
getCommitteeAssignments - req 100 vs - 250000 vc | 4.3384 ms/op | 3.1986 ms/op | 1.36 |
getCommitteeAssignments - req 1000 vs - 250000 vc | 4.9122 ms/op | 3.4750 ms/op | 1.41 |
findModifiedValidators - 10000 modified validators | 784.18 ms/op | 436.19 ms/op | 1.80 |
findModifiedValidators - 1000 modified validators | 601.53 ms/op | 317.42 ms/op | 1.90 |
findModifiedValidators - 100 modified validators | 571.59 ms/op | 297.67 ms/op | 1.92 |
findModifiedValidators - 10 modified validators | 553.11 ms/op | 296.64 ms/op | 1.86 |
findModifiedValidators - 1 modified validators | 612.60 ms/op | 295.23 ms/op | 2.08 |
findModifiedValidators - no difference | 562.56 ms/op | 286.89 ms/op | 1.96 |
compare ViewDUs | 5.1032 s/op | 3.9360 s/op | 1.30 |
compare each validator Uint8Array | 1.7505 s/op | 1.4996 s/op | 1.17 |
compare ViewDU to Uint8Array | 1.2275 s/op | 752.89 ms/op | 1.63 |
migrate state 1000000 validators, 24 modified, 0 new | 807.27 ms/op | 690.08 ms/op | 1.17 |
migrate state 1000000 validators, 1700 modified, 1000 new | 1.2792 s/op | 938.25 ms/op | 1.36 |
migrate state 1000000 validators, 3400 modified, 2000 new | 1.5499 s/op | 1.2531 s/op | 1.24 |
migrate state 1500000 validators, 24 modified, 0 new | 895.35 ms/op | 754.20 ms/op | 1.19 |
migrate state 1500000 validators, 1700 modified, 1000 new | 1.2220 s/op | 1.0347 s/op | 1.18 |
migrate state 1500000 validators, 3400 modified, 2000 new | 1.5050 s/op | 1.2650 s/op | 1.19 |
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei | 4.7000 ns/op | 4.2600 ns/op | 1.10 |
state getBlockRootAtSlot - 250000 vs - 7PWei | 1.0477 us/op | 654.80 ns/op | 1.60 |
computeProposers - vc 250000 | 11.351 ms/op | 6.2416 ms/op | 1.82 |
computeEpochShuffling - vc 250000 | 112.91 ms/op | 65.072 ms/op | 1.74 |
getNextSyncCommittee - vc 250000 | 186.97 ms/op | 106.97 ms/op | 1.75 |
computeSigningRoot for AttestationData | 31.767 us/op | 22.204 us/op | 1.43 |
hash AttestationData serialized data then Buffer.toString(base64) | 2.4605 us/op | 1.1529 us/op | 2.13 |
toHexString serialized data | 1.1986 us/op | 724.07 ns/op | 1.66 |
Buffer.toString(base64) | 237.44 ns/op | 147.06 ns/op | 1.61 |
by benchmarkbot/action
wemeetagain
reviewed
Nov 27, 2023
let filepath: string; | ||
switch (thread) { | ||
case "network": | ||
filepath = await network.writeNetworkHeapSnapshot(dirpath); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It may be worth pulling the file naming for each here
dapplion
approved these changes
Nov 28, 2023
wemeetagain
approved these changes
Nov 28, 2023
🎉 This PR is included in v1.13.0 🎉 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Motivation
We want to inspect heap memory of network and discv5 thread
Description
We already have same api for the main thread, just need to refactor to support other threads
this is to investigate #6129