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: write heap snapshot to network/discv5 thread #6130

Merged
merged 3 commits into from
Nov 28, 2023

Conversation

twoeths
Copy link
Contributor

@twoeths twoeths commented Nov 27, 2023

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

Copy link
Contributor

github-actions bot commented Nov 27, 2023

⚠️ Performance Alert ⚠️

Possible performance regression was detected for some benchmarks.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold.

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

@twoeths twoeths marked this pull request as ready for review November 27, 2023 06:01
@twoeths twoeths requested a review from a team as a code owner November 27, 2023 06:01
let filepath: string;
switch (thread) {
case "network":
filepath = await network.writeNetworkHeapSnapshot(dirpath);
Copy link
Member

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

@wemeetagain wemeetagain merged commit 248b64c into unstable Nov 28, 2023
13 of 15 checks passed
@wemeetagain wemeetagain deleted the tuyen/write_heap_snapshot branch November 28, 2023 18:57
@wemeetagain
Copy link
Member

🎉 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
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants