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

fix: track jobItemWorkReq function time #6203

Merged
merged 2 commits into from
Dec 19, 2023

Conversation

twoeths
Copy link
Contributor

@twoeths twoeths commented Dec 19, 2023

Motivation

The current metric for jobItemWorkReq does not match cpu profile

Description

  • Track time for signature deserialization in histogram instead of gauge, for now we mainly care about the total time used for this api per epoch to match the profile. When investigate any issues we can count on le too
  • Same for pubkey aggregation

Closes #6200

Screenshot 2023-12-19 at 10 59 56

@twoeths twoeths requested a review from a team as a code owner December 19, 2023 04:00
Copy link

codecov bot commented Dec 19, 2023

Codecov Report

Merging #6203 (399cd3c) into unstable (54e8c45) will not change coverage.
The diff coverage is n/a.

Additional details and impacted files
@@            Coverage Diff            @@
##           unstable    #6203   +/-   ##
=========================================
  Coverage     90.35%   90.35%           
=========================================
  Files            78       78           
  Lines          8087     8087           
  Branches        490      490           
=========================================
  Hits           7307     7307           
  Misses          772      772           
  Partials          8        8           

Copy link
Contributor

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: bbf726e Previous: 54e8c45 Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 792.04 us/op 508.55 us/op 1.56
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 79.569 us/op 86.547 us/op 0.92
BLS verify - blst-native 1.2284 ms/op 1.3290 ms/op 0.92
BLS verifyMultipleSignatures 3 - blst-native 2.5727 ms/op 2.7994 ms/op 0.92
BLS verifyMultipleSignatures 8 - blst-native 5.6510 ms/op 6.1283 ms/op 0.92
BLS verifyMultipleSignatures 32 - blst-native 20.668 ms/op 22.437 ms/op 0.92
BLS verifyMultipleSignatures 64 - blst-native 40.680 ms/op 44.212 ms/op 0.92
BLS verifyMultipleSignatures 128 - blst-native 80.744 ms/op 87.739 ms/op 0.92
BLS deserializing 10000 signatures 910.76 ms/op 938.93 ms/op 0.97
BLS deserializing 100000 signatures 9.1615 s/op 9.5031 s/op 0.96
BLS verifyMultipleSignatures - same message - 3 - blst-native 1.2521 ms/op 1.4930 ms/op 0.84
BLS verifyMultipleSignatures - same message - 8 - blst-native 1.6143 ms/op 1.5380 ms/op 1.05
BLS verifyMultipleSignatures - same message - 32 - blst-native 2.8626 ms/op 2.3800 ms/op 1.20
BLS verifyMultipleSignatures - same message - 64 - blst-native 4.4784 ms/op 4.6236 ms/op 0.97
BLS verifyMultipleSignatures - same message - 128 - blst-native 5.5108 ms/op 5.6894 ms/op 0.97
BLS aggregatePubkeys 32 - blst-native 25.240 us/op 26.081 us/op 0.97
BLS aggregatePubkeys 128 - blst-native 99.193 us/op 101.71 us/op 0.98
getAttestationsForBlock 46.782 ms/op 52.762 ms/op 0.89
getSlashingsAndExits - default max 183.33 us/op 141.30 us/op 1.30
getSlashingsAndExits - 2k 416.37 us/op 355.36 us/op 1.17
proposeBlockBody type=full, size=empty 5.4640 ms/op 5.0777 ms/op 1.08
isKnown best case - 1 super set check 320.00 ns/op 325.00 ns/op 0.98
isKnown normal case - 2 super set checks 299.00 ns/op 315.00 ns/op 0.95
isKnown worse case - 16 super set checks 298.00 ns/op 309.00 ns/op 0.96
CheckpointStateCache - add get delete 5.3650 us/op 5.1190 us/op 1.05
validate api signedAggregateAndProof - struct 2.6660 ms/op 2.7954 ms/op 0.95
validate gossip signedAggregateAndProof - struct 2.7249 ms/op 2.8161 ms/op 0.97
validate gossip attestation - vc 640000 1.3030 ms/op 1.3730 ms/op 0.95
batch validate gossip attestation - vc 640000 - chunk 32 152.63 us/op 164.65 us/op 0.93
batch validate gossip attestation - vc 640000 - chunk 64 136.54 us/op 143.01 us/op 0.95
batch validate gossip attestation - vc 640000 - chunk 128 129.46 us/op 134.57 us/op 0.96
batch validate gossip attestation - vc 640000 - chunk 256 132.11 us/op 124.67 us/op 1.06
pickEth1Vote - no votes 1.1695 ms/op 1.1261 ms/op 1.04
pickEth1Vote - max votes 10.653 ms/op 9.8201 ms/op 1.08
pickEth1Vote - Eth1Data hashTreeRoot value x2048 19.808 ms/op 21.413 ms/op 0.93
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 33.294 ms/op 28.608 ms/op 1.16
pickEth1Vote - Eth1Data fastSerialize value x2048 532.58 us/op 573.40 us/op 0.93
pickEth1Vote - Eth1Data fastSerialize tree x2048 7.5311 ms/op 6.2549 ms/op 1.20
bytes32 toHexString 451.00 ns/op 489.00 ns/op 0.92
bytes32 Buffer.toString(hex) 278.00 ns/op 276.00 ns/op 1.01
bytes32 Buffer.toString(hex) from Uint8Array 401.00 ns/op 417.00 ns/op 0.96
bytes32 Buffer.toString(hex) + 0x 273.00 ns/op 273.00 ns/op 1.00
Object access 1 prop 0.14000 ns/op 0.16000 ns/op 0.88
Map access 1 prop 0.13900 ns/op 0.14100 ns/op 0.99
Object get x1000 7.1470 ns/op 7.3280 ns/op 0.98
Map get x1000 0.68800 ns/op 0.73800 ns/op 0.93
Object set x1000 46.900 ns/op 48.316 ns/op 0.97
Map set x1000 35.983 ns/op 38.020 ns/op 0.95
Return object 10000 times 0.22140 ns/op 0.23120 ns/op 0.96
Throw Error 10000 times 3.7041 us/op 3.7641 us/op 0.98
fastMsgIdFn sha256 / 200 bytes 3.0930 us/op 3.1740 us/op 0.97
fastMsgIdFn h32 xxhash / 200 bytes 263.00 ns/op 279.00 ns/op 0.94
fastMsgIdFn h64 xxhash / 200 bytes 325.00 ns/op 330.00 ns/op 0.98
fastMsgIdFn sha256 / 1000 bytes 10.615 us/op 11.013 us/op 0.96
fastMsgIdFn h32 xxhash / 1000 bytes 380.00 ns/op 400.00 ns/op 0.95
fastMsgIdFn h64 xxhash / 1000 bytes 394.00 ns/op 402.00 ns/op 0.98
fastMsgIdFn sha256 / 10000 bytes 97.134 us/op 100.55 us/op 0.97
fastMsgIdFn h32 xxhash / 10000 bytes 1.8010 us/op 1.8590 us/op 0.97
fastMsgIdFn h64 xxhash / 10000 bytes 1.2490 us/op 1.2600 us/op 0.99
send data - 1000 256B messages 17.398 ms/op 18.196 ms/op 0.96
send data - 1000 512B messages 25.434 ms/op 25.701 ms/op 0.99
send data - 1000 1024B messages 38.202 ms/op 40.369 ms/op 0.95
send data - 1000 1200B messages 37.862 ms/op 36.683 ms/op 1.03
send data - 1000 2048B messages 43.686 ms/op 43.485 ms/op 1.00
send data - 1000 4096B messages 41.676 ms/op 42.335 ms/op 0.98
send data - 1000 16384B messages 115.24 ms/op 117.39 ms/op 0.98
send data - 1000 65536B messages 463.06 ms/op 448.55 ms/op 1.03
enrSubnets - fastDeserialize 64 bits 1.1780 us/op 1.2640 us/op 0.93
enrSubnets - ssz BitVector 64 bits 413.00 ns/op 413.00 ns/op 1.00
enrSubnets - fastDeserialize 4 bits 156.00 ns/op 170.00 ns/op 0.92
enrSubnets - ssz BitVector 4 bits 403.00 ns/op 406.00 ns/op 0.99
prioritizePeers score -10:0 att 32-0.1 sync 2-0 104.38 us/op 98.743 us/op 1.06
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 123.94 us/op 129.84 us/op 0.95
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 160.48 us/op 177.60 us/op 0.90
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 297.74 us/op 307.75 us/op 0.97
prioritizePeers score 0:0 att 64-1 sync 4-1 329.84 us/op 381.06 us/op 0.87
array of 16000 items push then shift 1.6651 us/op 1.7163 us/op 0.97
LinkedList of 16000 items push then shift 8.8430 ns/op 9.3250 ns/op 0.95
array of 16000 items push then pop 73.330 ns/op 106.29 ns/op 0.69
LinkedList of 16000 items push then pop 8.6200 ns/op 9.3730 ns/op 0.92
array of 24000 items push then shift 2.3536 us/op 2.5667 us/op 0.92
LinkedList of 24000 items push then shift 8.8140 ns/op 9.0550 ns/op 0.97
array of 24000 items push then pop 100.14 ns/op 130.47 ns/op 0.77
LinkedList of 24000 items push then pop 8.5870 ns/op 8.8210 ns/op 0.97
intersect bitArray bitLen 8 6.3380 ns/op 6.4440 ns/op 0.98
intersect array and set length 8 61.061 ns/op 64.852 ns/op 0.94
intersect bitArray bitLen 128 33.566 ns/op 34.346 ns/op 0.98
intersect array and set length 128 869.03 ns/op 892.49 ns/op 0.97
bitArray.getTrueBitIndexes() bitLen 128 1.3850 us/op 1.7300 us/op 0.80
bitArray.getTrueBitIndexes() bitLen 248 2.3320 us/op 2.9120 us/op 0.80
bitArray.getTrueBitIndexes() bitLen 512 4.6550 us/op 6.0610 us/op 0.77
Buffer.concat 32 items 935.00 ns/op 980.00 ns/op 0.95
Uint8Array.set 32 items 2.2850 us/op 1.6900 us/op 1.35
Set add up to 64 items then delete first 4.1624 us/op 4.4267 us/op 0.94
OrderedSet add up to 64 items then delete first 5.2897 us/op 5.5546 us/op 0.95
Set add up to 64 items then delete last 4.6222 us/op 4.7185 us/op 0.98
OrderedSet add up to 64 items then delete last 5.7353 us/op 5.7867 us/op 0.99
Set add up to 64 items then delete middle 4.5691 us/op 4.5942 us/op 0.99
OrderedSet add up to 64 items then delete middle 6.5944 us/op 7.0266 us/op 0.94
Set add up to 128 items then delete first 8.7791 us/op 9.5234 us/op 0.92
OrderedSet add up to 128 items then delete first 11.544 us/op 12.556 us/op 0.92
Set add up to 128 items then delete last 8.6444 us/op 9.5788 us/op 0.90
OrderedSet add up to 128 items then delete last 10.948 us/op 11.893 us/op 0.92
Set add up to 128 items then delete middle 8.5334 us/op 9.3712 us/op 0.91
OrderedSet add up to 128 items then delete middle 15.872 us/op 17.371 us/op 0.91
Set add up to 256 items then delete first 17.511 us/op 18.954 us/op 0.92
OrderedSet add up to 256 items then delete first 23.629 us/op 25.265 us/op 0.94
Set add up to 256 items then delete last 17.138 us/op 19.497 us/op 0.88
OrderedSet add up to 256 items then delete last 22.029 us/op 24.895 us/op 0.88
Set add up to 256 items then delete middle 17.094 us/op 20.608 us/op 0.83
OrderedSet add up to 256 items then delete middle 42.413 us/op 48.583 us/op 0.87
transfer serialized Status (84 B) 1.7670 us/op 1.7600 us/op 1.00
copy serialized Status (84 B) 1.5130 us/op 1.4860 us/op 1.02
transfer serialized SignedVoluntaryExit (112 B) 1.9470 us/op 2.1280 us/op 0.91
copy serialized SignedVoluntaryExit (112 B) 1.6140 us/op 1.7950 us/op 0.90
transfer serialized ProposerSlashing (416 B) 2.9080 us/op 2.9980 us/op 0.97
copy serialized ProposerSlashing (416 B) 2.6620 us/op 2.9420 us/op 0.90
transfer serialized Attestation (485 B) 3.1500 us/op 3.0680 us/op 1.03
copy serialized Attestation (485 B) 2.9920 us/op 2.9570 us/op 1.01
transfer serialized AttesterSlashing (33232 B) 3.1030 us/op 3.0740 us/op 1.01
copy serialized AttesterSlashing (33232 B) 6.7140 us/op 6.5380 us/op 1.03
transfer serialized Small SignedBeaconBlock (128000 B) 3.1360 us/op 2.8050 us/op 1.12
copy serialized Small SignedBeaconBlock (128000 B) 14.646 us/op 17.375 us/op 0.84
transfer serialized Avg SignedBeaconBlock (200000 B) 3.3900 us/op 3.4810 us/op 0.97
copy serialized Avg SignedBeaconBlock (200000 B) 21.157 us/op 26.765 us/op 0.79
transfer serialized BlobsSidecar (524380 B) 3.0070 us/op 3.5020 us/op 0.86
copy serialized BlobsSidecar (524380 B) 155.38 us/op 96.789 us/op 1.61
transfer serialized Big SignedBeaconBlock (1000000 B) 2.7110 us/op 3.5820 us/op 0.76
copy serialized Big SignedBeaconBlock (1000000 B) 207.62 us/op 166.79 us/op 1.24
pass gossip attestations to forkchoice per slot 4.2596 ms/op 4.3835 ms/op 0.97
forkChoice updateHead vc 100000 bc 64 eq 0 685.61 us/op 709.90 us/op 0.97
forkChoice updateHead vc 600000 bc 64 eq 0 4.3876 ms/op 4.8934 ms/op 0.90
forkChoice updateHead vc 1000000 bc 64 eq 0 7.1690 ms/op 7.1200 ms/op 1.01
forkChoice updateHead vc 600000 bc 320 eq 0 3.9799 ms/op 4.4321 ms/op 0.90
forkChoice updateHead vc 600000 bc 1200 eq 0 4.1031 ms/op 4.7277 ms/op 0.87
forkChoice updateHead vc 600000 bc 7200 eq 0 5.0891 ms/op 5.6719 ms/op 0.90
forkChoice updateHead vc 600000 bc 64 eq 1000 11.338 ms/op 12.065 ms/op 0.94
forkChoice updateHead vc 600000 bc 64 eq 10000 11.497 ms/op 12.654 ms/op 0.91
forkChoice updateHead vc 600000 bc 64 eq 300000 15.537 ms/op 17.912 ms/op 0.87
computeDeltas 500000 validators 300 proto nodes 6.5572 ms/op 6.8496 ms/op 0.96
computeDeltas 500000 validators 1200 proto nodes 6.5365 ms/op 6.7632 ms/op 0.97
computeDeltas 500000 validators 7200 proto nodes 6.4568 ms/op 6.8001 ms/op 0.95
computeDeltas 750000 validators 300 proto nodes 9.7169 ms/op 10.490 ms/op 0.93
computeDeltas 750000 validators 1200 proto nodes 9.7460 ms/op 10.504 ms/op 0.93
computeDeltas 750000 validators 7200 proto nodes 9.4952 ms/op 10.566 ms/op 0.90
computeDeltas 1400000 validators 300 proto nodes 18.617 ms/op 21.309 ms/op 0.87
computeDeltas 1400000 validators 1200 proto nodes 18.297 ms/op 20.555 ms/op 0.89
computeDeltas 1400000 validators 7200 proto nodes 19.052 ms/op 22.109 ms/op 0.86
computeDeltas 2100000 validators 300 proto nodes 28.250 ms/op 31.210 ms/op 0.91
computeDeltas 2100000 validators 1200 proto nodes 28.113 ms/op 29.433 ms/op 0.96
computeDeltas 2100000 validators 7200 proto nodes 28.188 ms/op 29.316 ms/op 0.96
computeProposerBoostScoreFromBalances 500000 validators 3.6325 ms/op 4.0270 ms/op 0.90
computeProposerBoostScoreFromBalances 750000 validators 3.6161 ms/op 4.0655 ms/op 0.89
computeProposerBoostScoreFromBalances 1400000 validators 3.6941 ms/op 4.0659 ms/op 0.91
computeProposerBoostScoreFromBalances 2100000 validators 3.6866 ms/op 3.9443 ms/op 0.93
altair processAttestation - 250000 vs - 7PWei normalcase 2.1364 ms/op 3.7058 ms/op 0.58
altair processAttestation - 250000 vs - 7PWei worstcase 3.1721 ms/op 6.4829 ms/op 0.49
altair processAttestation - setStatus - 1/6 committees join 139.15 us/op 207.94 us/op 0.67
altair processAttestation - setStatus - 1/3 committees join 281.23 us/op 414.83 us/op 0.68
altair processAttestation - setStatus - 1/2 committees join 365.03 us/op 469.06 us/op 0.78
altair processAttestation - setStatus - 2/3 committees join 462.84 us/op 576.57 us/op 0.80
altair processAttestation - setStatus - 4/5 committees join 643.62 us/op 898.92 us/op 0.72
altair processAttestation - setStatus - 100% committees join 749.08 us/op 1.0709 ms/op 0.70
altair processBlock - 250000 vs - 7PWei normalcase 9.9343 ms/op 14.116 ms/op 0.70
altair processBlock - 250000 vs - 7PWei normalcase hashState 41.927 ms/op 51.470 ms/op 0.81
altair processBlock - 250000 vs - 7PWei worstcase 37.605 ms/op 46.924 ms/op 0.80
altair processBlock - 250000 vs - 7PWei worstcase hashState 99.333 ms/op 130.78 ms/op 0.76
phase0 processBlock - 250000 vs - 7PWei normalcase 3.4156 ms/op 3.3999 ms/op 1.00
phase0 processBlock - 250000 vs - 7PWei worstcase 29.502 ms/op 39.869 ms/op 0.74
altair processEth1Data - 250000 vs - 7PWei normalcase 573.97 us/op 862.78 us/op 0.67
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 16.674 us/op 12.305 us/op 1.36
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 94.423 us/op 89.135 us/op 1.06
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 28.963 us/op 18.232 us/op 1.59
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 10.991 us/op 20.464 us/op 0.54
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 283.31 us/op 242.04 us/op 1.17
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 1.2912 ms/op 1.3779 ms/op 0.94
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 2.2902 ms/op 2.4169 ms/op 0.95
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 2.8499 ms/op 2.3268 ms/op 1.22
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 2.7050 ms/op 4.5207 ms/op 0.60
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 2.2119 ms/op 2.9243 ms/op 0.76
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 5.0294 ms/op 6.3556 ms/op 0.79
Tree 40 250000 create 327.54 ms/op 682.17 ms/op 0.48
Tree 40 250000 get(125000) 185.32 ns/op 242.37 ns/op 0.76
Tree 40 250000 set(125000) 965.17 ns/op 1.3688 us/op 0.71
Tree 40 250000 toArray() 17.926 ms/op 24.277 ms/op 0.74
Tree 40 250000 iterate all - toArray() + loop 18.249 ms/op 24.515 ms/op 0.74
Tree 40 250000 iterate all - get(i) 63.125 ms/op 77.551 ms/op 0.81
MutableVector 250000 create 17.638 ms/op 15.761 ms/op 1.12
MutableVector 250000 get(125000) 6.7220 ns/op 6.9670 ns/op 0.96
MutableVector 250000 set(125000) 258.86 ns/op 351.67 ns/op 0.74
MutableVector 250000 toArray() 3.2639 ms/op 4.4171 ms/op 0.74
MutableVector 250000 iterate all - toArray() + loop 3.3387 ms/op 4.6190 ms/op 0.72
MutableVector 250000 iterate all - get(i) 1.4689 ms/op 1.6005 ms/op 0.92
Array 250000 create 2.7787 ms/op 4.2646 ms/op 0.65
Array 250000 clone - spread 1.2581 ms/op 1.4685 ms/op 0.86
Array 250000 get(125000) 1.0040 ns/op 1.2210 ns/op 0.82
Array 250000 set(125000) 3.9410 ns/op 5.5220 ns/op 0.71
Array 250000 iterate all - loop 159.05 us/op 181.57 us/op 0.88
effectiveBalanceIncrements clone Uint8Array 300000 27.050 us/op 44.642 us/op 0.61
effectiveBalanceIncrements clone MutableVector 300000 367.00 ns/op 431.00 ns/op 0.85
effectiveBalanceIncrements rw all Uint8Array 300000 191.76 us/op 209.85 us/op 0.91
effectiveBalanceIncrements rw all MutableVector 300000 80.708 ms/op 99.324 ms/op 0.81
phase0 afterProcessEpoch - 250000 vs - 7PWei 107.37 ms/op 124.73 ms/op 0.86
phase0 beforeProcessEpoch - 250000 vs - 7PWei 34.537 ms/op 57.113 ms/op 0.60
altair processEpoch - mainnet_e81889 552.75 ms/op 615.63 ms/op 0.90
mainnet_e81889 - altair beforeProcessEpoch 83.529 ms/op 101.11 ms/op 0.83
mainnet_e81889 - altair processJustificationAndFinalization 24.267 us/op 29.933 us/op 0.81
mainnet_e81889 - altair processInactivityUpdates 6.0683 ms/op 8.2329 ms/op 0.74
mainnet_e81889 - altair processRewardsAndPenalties 75.629 ms/op 73.459 ms/op 1.03
mainnet_e81889 - altair processRegistryUpdates 2.7380 us/op 3.5490 us/op 0.77
mainnet_e81889 - altair processSlashings 1.0070 us/op 498.00 ns/op 2.02
mainnet_e81889 - altair processEth1DataReset 834.00 ns/op 939.00 ns/op 0.89
mainnet_e81889 - altair processEffectiveBalanceUpdates 2.1053 ms/op 1.5775 ms/op 1.33
mainnet_e81889 - altair processSlashingsReset 7.7490 us/op 6.5010 us/op 1.19
mainnet_e81889 - altair processRandaoMixesReset 9.8410 us/op 6.8870 us/op 1.43
mainnet_e81889 - altair processHistoricalRootsUpdate 1.1070 us/op 1.5180 us/op 0.73
mainnet_e81889 - altair processParticipationFlagUpdates 2.5580 us/op 3.1430 us/op 0.81
mainnet_e81889 - altair processSyncCommitteeUpdates 902.00 ns/op 1.2850 us/op 0.70
mainnet_e81889 - altair afterProcessEpoch 113.74 ms/op 127.09 ms/op 0.89
capella processEpoch - mainnet_e217614 2.3092 s/op 2.4582 s/op 0.94
mainnet_e217614 - capella beforeProcessEpoch 516.99 ms/op 538.77 ms/op 0.96
mainnet_e217614 - capella processJustificationAndFinalization 17.214 us/op 19.213 us/op 0.90
mainnet_e217614 - capella processInactivityUpdates 20.533 ms/op 20.375 ms/op 1.01
mainnet_e217614 - capella processRewardsAndPenalties 434.68 ms/op 442.08 ms/op 0.98
mainnet_e217614 - capella processRegistryUpdates 23.723 us/op 38.342 us/op 0.62
mainnet_e217614 - capella processSlashings 705.00 ns/op 886.00 ns/op 0.80
mainnet_e217614 - capella processEth1DataReset 601.00 ns/op 845.00 ns/op 0.71
mainnet_e217614 - capella processEffectiveBalanceUpdates 4.9428 ms/op 11.453 ms/op 0.43
mainnet_e217614 - capella processSlashingsReset 4.4130 us/op 8.3110 us/op 0.53
mainnet_e217614 - capella processRandaoMixesReset 7.7910 us/op 9.2280 us/op 0.84
mainnet_e217614 - capella processHistoricalRootsUpdate 885.00 ns/op 751.00 ns/op 1.18
mainnet_e217614 - capella processParticipationFlagUpdates 2.4350 us/op 2.3590 us/op 1.03
mainnet_e217614 - capella afterProcessEpoch 334.34 ms/op 378.58 ms/op 0.88
phase0 processEpoch - mainnet_e58758 532.17 ms/op 559.04 ms/op 0.95
mainnet_e58758 - phase0 beforeProcessEpoch 153.86 ms/op 174.60 ms/op 0.88
mainnet_e58758 - phase0 processJustificationAndFinalization 22.647 us/op 19.996 us/op 1.13
mainnet_e58758 - phase0 processRewardsAndPenalties 53.384 ms/op 43.779 ms/op 1.22
mainnet_e58758 - phase0 processRegistryUpdates 16.551 us/op 17.404 us/op 0.95
mainnet_e58758 - phase0 processSlashings 1.0640 us/op 711.00 ns/op 1.50
mainnet_e58758 - phase0 processEth1DataReset 1.2310 us/op 983.00 ns/op 1.25
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.5379 ms/op 1.3263 ms/op 1.16
mainnet_e58758 - phase0 processSlashingsReset 5.6390 us/op 6.3950 us/op 0.88
mainnet_e58758 - phase0 processRandaoMixesReset 5.2920 us/op 5.9310 us/op 0.89
mainnet_e58758 - phase0 processHistoricalRootsUpdate 619.00 ns/op 813.00 ns/op 0.76
mainnet_e58758 - phase0 processParticipationRecordUpdates 4.2460 us/op 6.2040 us/op 0.68
mainnet_e58758 - phase0 afterProcessEpoch 104.71 ms/op 104.03 ms/op 1.01
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.7439 ms/op 1.4956 ms/op 1.17
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.5887 ms/op 1.5726 ms/op 1.01
altair processInactivityUpdates - 250000 normalcase 28.971 ms/op 27.035 ms/op 1.07
altair processInactivityUpdates - 250000 worstcase 32.951 ms/op 34.524 ms/op 0.95
phase0 processRegistryUpdates - 250000 normalcase 9.6080 us/op 9.7100 us/op 0.99
phase0 processRegistryUpdates - 250000 badcase_full_deposits 511.84 us/op 366.50 us/op 1.40
phase0 processRegistryUpdates - 250000 worstcase 0.5 155.44 ms/op 144.62 ms/op 1.07
altair processRewardsAndPenalties - 250000 normalcase 70.222 ms/op 42.613 ms/op 1.65
altair processRewardsAndPenalties - 250000 worstcase 48.874 ms/op 54.755 ms/op 0.89
phase0 getAttestationDeltas - 250000 normalcase 11.074 ms/op 8.2731 ms/op 1.34
phase0 getAttestationDeltas - 250000 worstcase 13.045 ms/op 8.1090 ms/op 1.61
phase0 processSlashings - 250000 worstcase 143.18 us/op 89.114 us/op 1.61
altair processSyncCommitteeUpdates - 250000 175.09 ms/op 159.12 ms/op 1.10
BeaconState.hashTreeRoot - No change 310.00 ns/op 260.00 ns/op 1.19
BeaconState.hashTreeRoot - 1 full validator 137.09 us/op 137.18 us/op 1.00
BeaconState.hashTreeRoot - 32 full validator 1.5273 ms/op 1.4486 ms/op 1.05
BeaconState.hashTreeRoot - 512 full validator 16.261 ms/op 14.973 ms/op 1.09
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 176.87 us/op 179.87 us/op 0.98
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 2.5300 ms/op 2.1550 ms/op 1.17
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 30.518 ms/op 28.247 ms/op 1.08
BeaconState.hashTreeRoot - 1 balances 146.22 us/op 137.28 us/op 1.07
BeaconState.hashTreeRoot - 32 balances 1.8569 ms/op 1.1039 ms/op 1.68
BeaconState.hashTreeRoot - 512 balances 14.303 ms/op 13.086 ms/op 1.09
BeaconState.hashTreeRoot - 250000 balances 234.16 ms/op 219.99 ms/op 1.06
aggregationBits - 2048 els - zipIndexesInBitList 20.173 us/op 17.777 us/op 1.13
byteArrayEquals 32 83.596 ns/op 78.722 ns/op 1.06
Buffer.compare 32 59.598 ns/op 60.961 ns/op 0.98
byteArrayEquals 1024 2.2210 us/op 2.1434 us/op 1.04
Buffer.compare 1024 78.234 ns/op 73.935 ns/op 1.06
byteArrayEquals 16384 34.976 us/op 34.430 us/op 1.02
Buffer.compare 16384 279.92 ns/op 278.14 ns/op 1.01
byteArrayEquals 123687377 274.98 ms/op 253.25 ms/op 1.09
Buffer.compare 123687377 9.5160 ms/op 7.6628 ms/op 1.24
byteArrayEquals 32 - diff last byte 88.856 ns/op 73.871 ns/op 1.20
Buffer.compare 32 - diff last byte 61.665 ns/op 57.172 ns/op 1.08
byteArrayEquals 1024 - diff last byte 2.3840 us/op 2.1068 us/op 1.13
Buffer.compare 1024 - diff last byte 83.497 ns/op 72.217 ns/op 1.16
byteArrayEquals 16384 - diff last byte 36.182 us/op 33.066 us/op 1.09
Buffer.compare 16384 - diff last byte 297.67 ns/op 279.06 ns/op 1.07
byteArrayEquals 123687377 - diff last byte 255.92 ms/op 254.55 ms/op 1.01
Buffer.compare 123687377 - diff last byte 8.1880 ms/op 8.0229 ms/op 1.02
byteArrayEquals 32 - random bytes 6.1660 ns/op 6.0550 ns/op 1.02
Buffer.compare 32 - random bytes 63.193 ns/op 63.170 ns/op 1.00
byteArrayEquals 1024 - random bytes 5.3460 ns/op 5.7390 ns/op 0.93
Buffer.compare 1024 - random bytes 66.729 ns/op 62.509 ns/op 1.07
byteArrayEquals 16384 - random bytes 5.4420 ns/op 5.7140 ns/op 0.95
Buffer.compare 16384 - random bytes 62.530 ns/op 62.773 ns/op 1.00
byteArrayEquals 123687377 - random bytes 8.8800 ns/op 9.2300 ns/op 0.96
Buffer.compare 123687377 - random bytes 75.340 ns/op 75.960 ns/op 0.99
regular array get 100000 times 46.440 us/op 47.017 us/op 0.99
wrappedArray get 100000 times 46.602 us/op 47.011 us/op 0.99
arrayWithProxy get 100000 times 14.841 ms/op 15.239 ms/op 0.97
ssz.Root.equals 55.908 ns/op 56.669 ns/op 0.99
byteArrayEquals 55.065 ns/op 56.494 ns/op 0.97
Buffer.compare 11.931 ns/op 12.419 ns/op 0.96
shuffle list - 16384 els 7.1936 ms/op 7.3461 ms/op 0.98
shuffle list - 250000 els 105.62 ms/op 107.98 ms/op 0.98
processSlot - 1 slots 22.816 us/op 17.683 us/op 1.29
processSlot - 32 slots 4.9291 ms/op 3.4730 ms/op 1.42
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 69.351 ms/op 60.119 ms/op 1.15
getCommitteeAssignments - req 1 vs - 250000 vc 2.6622 ms/op 2.5939 ms/op 1.03
getCommitteeAssignments - req 100 vs - 250000 vc 3.9119 ms/op 3.8332 ms/op 1.02
getCommitteeAssignments - req 1000 vs - 250000 vc 4.4664 ms/op 4.1567 ms/op 1.07
findModifiedValidators - 10000 modified validators 585.95 ms/op 551.61 ms/op 1.06
findModifiedValidators - 1000 modified validators 453.45 ms/op 433.57 ms/op 1.05
findModifiedValidators - 100 modified validators 434.82 ms/op 453.18 ms/op 0.96
findModifiedValidators - 10 modified validators 479.06 ms/op 439.19 ms/op 1.09
findModifiedValidators - 1 modified validators 421.48 ms/op 402.01 ms/op 1.05
findModifiedValidators - no difference 431.06 ms/op 450.30 ms/op 0.96
compare ViewDUs 5.1899 s/op 4.8344 s/op 1.07
compare each validator Uint8Array 2.6496 s/op 1.7874 s/op 1.48
compare ViewDU to Uint8Array 1.8340 s/op 1.3506 s/op 1.36
migrate state 1000000 validators, 24 modified, 0 new 1.0727 s/op 846.68 ms/op 1.27
migrate state 1000000 validators, 1700 modified, 1000 new 1.3235 s/op 1.1225 s/op 1.18
migrate state 1000000 validators, 3400 modified, 2000 new 1.5303 s/op 1.3858 s/op 1.10
migrate state 1500000 validators, 24 modified, 0 new 847.21 ms/op 873.97 ms/op 0.97
migrate state 1500000 validators, 1700 modified, 1000 new 1.1262 s/op 1.1279 s/op 1.00
migrate state 1500000 validators, 3400 modified, 2000 new 1.3131 s/op 1.5115 s/op 0.87
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 4.2800 ns/op 5.2400 ns/op 0.82
state getBlockRootAtSlot - 250000 vs - 7PWei 667.91 ns/op 726.15 ns/op 0.92
computeProposers - vc 250000 9.0947 ms/op 10.023 ms/op 0.91
computeEpochShuffling - vc 250000 100.71 ms/op 111.29 ms/op 0.90
getNextSyncCommittee - vc 250000 148.49 ms/op 179.41 ms/op 0.83
computeSigningRoot for AttestationData 28.266 us/op 28.491 us/op 0.99
hash AttestationData serialized data then Buffer.toString(base64) 2.2043 us/op 2.5532 us/op 0.86
toHexString serialized data 1.1001 us/op 1.2515 us/op 0.88
Buffer.toString(base64) 224.15 ns/op 281.41 ns/op 0.80

by benchmarkbot/action

@wemeetagain wemeetagain merged commit 7e85f10 into unstable Dec 19, 2023
15 checks passed
@wemeetagain wemeetagain deleted the tuyen/job_item_work_req_metrics branch December 19, 2023 14:05
twoeths added a commit that referenced this pull request Dec 22, 2023
* fix: track jobItemWorkReq function time

* docs: add panel for BLS jobItemWorkReq metrics
@wemeetagain
Copy link
Member

🎉 This PR is included in v1.14.0 🎉

ensi321 pushed a commit to ensi321/lodestar that referenced this pull request Jan 22, 2024
* fix: track jobItemWorkReq function time

* docs: add panel for BLS jobItemWorkReq metrics
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.

jobItemWorkReq performance issue
2 participants