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: further update and improve getblobs metrics collection and dashboard #7416

Merged
merged 2 commits into from
Jan 31, 2025

Conversation

g11tech
Copy link
Contributor

@g11tech g11tech commented Jan 31, 2025

Further update and improve getBlobs metrics collection and dashboard based on review of the generated metrics and discussions with @philknows on them

example dash

image

@g11tech g11tech requested a review from a team as a code owner January 31, 2025 09:51
Copy link

codecov bot commented Jan 31, 2025

Codecov Report

Attention: Patch coverage is 0% with 40 lines in your changes missing coverage. Please review.

Project coverage is 50.26%. Comparing base (1748e2e) to head (d8fd93f).
Report is 7 commits behind head on unstable.

Additional details and impacted files
@@             Coverage Diff              @@
##           unstable    #7416      +/-   ##
============================================
+ Coverage     48.44%   50.26%   +1.81%     
============================================
  Files           602      602              
  Lines         40407    40376      -31     
  Branches       2069     2206     +137     
============================================
+ Hits          19577    20293     +716     
+ Misses        20792    20043     -749     
- Partials         38       40       +2     

Copy link
Contributor

github-actions bot commented Jan 31, 2025

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: 173d80a Previous: c43b070 Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 1.1536 ms/op 749.50 us/op 1.54
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 43.849 us/op 29.973 us/op 1.46
BLS verify - blst 1.0623 ms/op 892.07 us/op 1.19
BLS verifyMultipleSignatures 3 - blst 1.4892 ms/op 1.3042 ms/op 1.14
BLS verifyMultipleSignatures 8 - blst 2.4135 ms/op 2.0867 ms/op 1.16
BLS verifyMultipleSignatures 32 - blst 6.0248 ms/op 4.5189 ms/op 1.33
BLS verifyMultipleSignatures 64 - blst 12.179 ms/op 8.4002 ms/op 1.45
BLS verifyMultipleSignatures 128 - blst 21.650 ms/op 16.010 ms/op 1.35
BLS deserializing 10000 signatures 720.14 ms/op 594.65 ms/op 1.21
BLS deserializing 100000 signatures 7.3669 s/op 6.0440 s/op 1.22
BLS verifyMultipleSignatures - same message - 3 - blst 1.1181 ms/op 945.02 us/op 1.18
BLS verifyMultipleSignatures - same message - 8 - blst 1.1403 ms/op 1.0763 ms/op 1.06
BLS verifyMultipleSignatures - same message - 32 - blst 1.8470 ms/op 1.6872 ms/op 1.09
BLS verifyMultipleSignatures - same message - 64 - blst 2.7948 ms/op 2.5078 ms/op 1.11
BLS verifyMultipleSignatures - same message - 128 - blst 4.7065 ms/op 4.0633 ms/op 1.16
BLS aggregatePubkeys 32 - blst 20.879 us/op 17.367 us/op 1.20
BLS aggregatePubkeys 128 - blst 74.702 us/op 61.145 us/op 1.22
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 56.004 ms/op 39.819 ms/op 1.41
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 59.269 ms/op 46.088 ms/op 1.29
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 43.414 ms/op 34.808 ms/op 1.25
getSlashingsAndExits - default max 74.263 us/op 58.912 us/op 1.26
getSlashingsAndExits - 2k 349.57 us/op 203.28 us/op 1.72
proposeBlockBody type=full, size=empty 6.0749 ms/op 4.6684 ms/op 1.30
isKnown best case - 1 super set check 198.00 ns/op 387.00 ns/op 0.51
isKnown normal case - 2 super set checks 195.00 ns/op 386.00 ns/op 0.51
isKnown worse case - 16 super set checks 196.00 ns/op 387.00 ns/op 0.51
InMemoryCheckpointStateCache - add get delete 2.5290 us/op 2.4130 us/op 1.05
validate api signedAggregateAndProof - struct 1.6417 ms/op 1.9270 ms/op 0.85
validate gossip signedAggregateAndProof - struct 1.7979 ms/op 1.9389 ms/op 0.93
batch validate gossip attestation - vc 640000 - chunk 32 136.14 us/op 111.36 us/op 1.22
batch validate gossip attestation - vc 640000 - chunk 64 116.45 us/op 94.188 us/op 1.24
batch validate gossip attestation - vc 640000 - chunk 128 116.20 us/op 87.395 us/op 1.33
batch validate gossip attestation - vc 640000 - chunk 256 116.78 us/op 90.324 us/op 1.29
pickEth1Vote - no votes 1.0321 ms/op 723.65 us/op 1.43
pickEth1Vote - max votes 9.4001 ms/op 7.0104 ms/op 1.34
pickEth1Vote - Eth1Data hashTreeRoot value x2048 18.578 ms/op 14.933 ms/op 1.24
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 20.725 ms/op 20.980 ms/op 0.99
pickEth1Vote - Eth1Data fastSerialize value x2048 454.11 us/op 366.01 us/op 1.24
pickEth1Vote - Eth1Data fastSerialize tree x2048 2.7407 ms/op 4.2346 ms/op 0.65
bytes32 toHexString 375.00 ns/op 539.00 ns/op 0.70
bytes32 Buffer.toString(hex) 260.00 ns/op 421.00 ns/op 0.62
bytes32 Buffer.toString(hex) from Uint8Array 388.00 ns/op 494.00 ns/op 0.79
bytes32 Buffer.toString(hex) + 0x 266.00 ns/op 411.00 ns/op 0.65
Object access 1 prop 0.13100 ns/op 0.30500 ns/op 0.43
Map access 1 prop 0.12400 ns/op 0.31600 ns/op 0.39
Object get x1000 6.1140 ns/op 5.3690 ns/op 1.14
Map get x1000 6.6960 ns/op 5.9770 ns/op 1.12
Object set x1000 33.953 ns/op 18.979 ns/op 1.79
Map set x1000 21.191 ns/op 16.598 ns/op 1.28
Return object 10000 times 0.31850 ns/op 0.29490 ns/op 1.08
Throw Error 10000 times 4.5314 us/op 3.5006 us/op 1.29
toHex 149.61 ns/op 94.292 ns/op 1.59
Buffer.from 127.97 ns/op 88.918 ns/op 1.44
shared Buffer 85.454 ns/op 58.675 ns/op 1.46
fastMsgIdFn sha256 / 200 bytes 2.2520 us/op 1.8170 us/op 1.24
fastMsgIdFn h32 xxhash / 200 bytes 234.00 ns/op 374.00 ns/op 0.63
fastMsgIdFn h64 xxhash / 200 bytes 292.00 ns/op 440.00 ns/op 0.66
fastMsgIdFn sha256 / 1000 bytes 7.4360 us/op 5.8450 us/op 1.27
fastMsgIdFn h32 xxhash / 1000 bytes 406.00 ns/op 508.00 ns/op 0.80
fastMsgIdFn h64 xxhash / 1000 bytes 363.00 ns/op 514.00 ns/op 0.71
fastMsgIdFn sha256 / 10000 bytes 65.925 us/op 50.844 us/op 1.30
fastMsgIdFn h32 xxhash / 10000 bytes 1.8600 us/op 1.8840 us/op 0.99
fastMsgIdFn h64 xxhash / 10000 bytes 1.2200 us/op 1.3230 us/op 0.92
send data - 1000 256B messages 15.209 ms/op 9.7099 ms/op 1.57
send data - 1000 512B messages 19.280 ms/op 13.502 ms/op 1.43
send data - 1000 1024B messages 26.094 ms/op 19.898 ms/op 1.31
send data - 1000 1200B messages 23.231 ms/op 14.960 ms/op 1.55
send data - 1000 2048B messages 25.241 ms/op 14.644 ms/op 1.72
send data - 1000 4096B messages 28.936 ms/op 17.713 ms/op 1.63
send data - 1000 16384B messages 63.360 ms/op 44.959 ms/op 1.41
send data - 1000 65536B messages 235.70 ms/op 241.76 ms/op 0.97
enrSubnets - fastDeserialize 64 bits 947.00 ns/op 1.8000 us/op 0.53
enrSubnets - ssz BitVector 64 bits 327.00 ns/op 496.00 ns/op 0.66
enrSubnets - fastDeserialize 4 bits 140.00 ns/op 322.00 ns/op 0.43
enrSubnets - ssz BitVector 4 bits 330.00 ns/op 500.00 ns/op 0.66
prioritizePeers score -10:0 att 32-0.1 sync 2-0 120.85 us/op 100.09 us/op 1.21
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 144.29 us/op 115.71 us/op 1.25
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 228.70 us/op 169.78 us/op 1.35
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 423.33 us/op 311.84 us/op 1.36
prioritizePeers score 0:0 att 64-1 sync 4-1 522.58 us/op 366.01 us/op 1.43
array of 16000 items push then shift 2.0816 us/op 1.1878 us/op 1.75
LinkedList of 16000 items push then shift 8.1450 ns/op 7.0030 ns/op 1.16
array of 16000 items push then pop 86.940 ns/op 62.282 ns/op 1.40
LinkedList of 16000 items push then pop 7.6720 ns/op 5.9780 ns/op 1.28
array of 24000 items push then shift 2.5551 us/op 1.7413 us/op 1.47
LinkedList of 24000 items push then shift 8.3290 ns/op 6.4170 ns/op 1.30
array of 24000 items push then pop 115.22 ns/op 85.181 ns/op 1.35
LinkedList of 24000 items push then pop 7.7080 ns/op 6.0270 ns/op 1.28
intersect bitArray bitLen 8 6.6450 ns/op 5.3950 ns/op 1.23
intersect array and set length 8 40.562 ns/op 33.345 ns/op 1.22
intersect bitArray bitLen 128 31.295 ns/op 26.486 ns/op 1.18
intersect array and set length 128 658.62 ns/op 553.74 ns/op 1.19
bitArray.getTrueBitIndexes() bitLen 128 1.1390 us/op 1.1190 us/op 1.02
bitArray.getTrueBitIndexes() bitLen 248 2.1120 us/op 1.7860 us/op 1.18
bitArray.getTrueBitIndexes() bitLen 512 3.8970 us/op 3.2820 us/op 1.19
Buffer.concat 32 items 645.00 ns/op 791.00 ns/op 0.82
Uint8Array.set 32 items 1.5830 us/op 1.2430 us/op 1.27
Buffer.copy 2.3470 us/op 2.1220 us/op 1.11
Uint8Array.set - with subarray 1.6790 us/op 1.6990 us/op 0.99
Uint8Array.set - without subarray 1.4540 us/op 1.0780 us/op 1.35
getUint32 - dataview 202.00 ns/op 367.00 ns/op 0.55
getUint32 - manual 125.00 ns/op 300.00 ns/op 0.42
Set add up to 64 items then delete first 2.0996 us/op 1.6558 us/op 1.27
OrderedSet add up to 64 items then delete first 4.0373 us/op 2.5669 us/op 1.57
Set add up to 64 items then delete last 2.7569 us/op 1.8872 us/op 1.46
OrderedSet add up to 64 items then delete last 4.3657 us/op 2.8443 us/op 1.53
Set add up to 64 items then delete middle 3.1524 us/op 1.8866 us/op 1.67
OrderedSet add up to 64 items then delete middle 6.2491 us/op 4.3067 us/op 1.45
Set add up to 128 items then delete first 6.5208 us/op 3.7423 us/op 1.74
OrderedSet add up to 128 items then delete first 11.282 us/op 5.9197 us/op 1.91
Set add up to 128 items then delete last 6.7897 us/op 3.5889 us/op 1.89
OrderedSet add up to 128 items then delete last 9.5387 us/op 5.5388 us/op 1.72
Set add up to 128 items then delete middle 5.7537 us/op 3.5991 us/op 1.60
OrderedSet add up to 128 items then delete middle 16.723 us/op 11.274 us/op 1.48
Set add up to 256 items then delete first 13.040 us/op 7.3338 us/op 1.78
OrderedSet add up to 256 items then delete first 22.580 us/op 11.796 us/op 1.91
Set add up to 256 items then delete last 11.729 us/op 7.1036 us/op 1.65
OrderedSet add up to 256 items then delete last 16.551 us/op 11.197 us/op 1.48
Set add up to 256 items then delete middle 12.304 us/op 7.1072 us/op 1.73
OrderedSet add up to 256 items then delete middle 47.088 us/op 32.927 us/op 1.43
transfer serialized Status (84 B) 2.4790 us/op 2.0460 us/op 1.21
copy serialized Status (84 B) 1.4800 us/op 1.3050 us/op 1.13
transfer serialized SignedVoluntaryExit (112 B) 2.6240 us/op 1.9900 us/op 1.32
copy serialized SignedVoluntaryExit (112 B) 1.9600 us/op 1.2290 us/op 1.59
transfer serialized ProposerSlashing (416 B) 2.6930 us/op 2.1210 us/op 1.27
copy serialized ProposerSlashing (416 B) 1.5510 us/op 1.6750 us/op 0.93
transfer serialized Attestation (485 B) 2.5070 us/op 2.1340 us/op 1.17
copy serialized Attestation (485 B) 1.4760 us/op 1.3830 us/op 1.07
transfer serialized AttesterSlashing (33232 B) 2.7940 us/op 3.0010 us/op 0.93
copy serialized AttesterSlashing (33232 B) 4.8740 us/op 4.1940 us/op 1.16
transfer serialized Small SignedBeaconBlock (128000 B) 3.6370 us/op 2.9180 us/op 1.25
copy serialized Small SignedBeaconBlock (128000 B) 13.959 us/op 8.9880 us/op 1.55
transfer serialized Avg SignedBeaconBlock (200000 B) 4.0850 us/op 2.9290 us/op 1.39
copy serialized Avg SignedBeaconBlock (200000 B) 17.156 us/op 12.681 us/op 1.35
transfer serialized BlobsSidecar (524380 B) 4.1260 us/op 3.3090 us/op 1.25
copy serialized BlobsSidecar (524380 B) 75.475 us/op 54.829 us/op 1.38
transfer serialized Big SignedBeaconBlock (1000000 B) 4.9400 us/op 3.6640 us/op 1.35
copy serialized Big SignedBeaconBlock (1000000 B) 122.71 us/op 167.50 us/op 0.73
pass gossip attestations to forkchoice per slot 2.9957 ms/op 2.3013 ms/op 1.30
forkChoice updateHead vc 100000 bc 64 eq 0 524.40 us/op 347.98 us/op 1.51
forkChoice updateHead vc 600000 bc 64 eq 0 3.3280 ms/op 2.1672 ms/op 1.54
forkChoice updateHead vc 1000000 bc 64 eq 0 6.8773 ms/op 3.7719 ms/op 1.82
forkChoice updateHead vc 600000 bc 320 eq 0 3.0036 ms/op 2.1259 ms/op 1.41
forkChoice updateHead vc 600000 bc 1200 eq 0 3.0868 ms/op 2.1320 ms/op 1.45
forkChoice updateHead vc 600000 bc 7200 eq 0 3.9667 ms/op 2.4135 ms/op 1.64
forkChoice updateHead vc 600000 bc 64 eq 1000 10.915 ms/op 9.1754 ms/op 1.19
forkChoice updateHead vc 600000 bc 64 eq 10000 11.428 ms/op 9.0711 ms/op 1.26
forkChoice updateHead vc 600000 bc 64 eq 300000 14.264 ms/op 10.936 ms/op 1.30
computeDeltas 500000 validators 300 proto nodes 4.3041 ms/op 3.1029 ms/op 1.39
computeDeltas 500000 validators 1200 proto nodes 4.9424 ms/op 3.1632 ms/op 1.56
computeDeltas 500000 validators 7200 proto nodes 4.8550 ms/op 3.2355 ms/op 1.50
computeDeltas 750000 validators 300 proto nodes 7.3738 ms/op 4.8869 ms/op 1.51
computeDeltas 750000 validators 1200 proto nodes 6.9823 ms/op 4.5519 ms/op 1.53
computeDeltas 750000 validators 7200 proto nodes 7.4405 ms/op 4.6906 ms/op 1.59
computeDeltas 1400000 validators 300 proto nodes 14.055 ms/op 8.7767 ms/op 1.60
computeDeltas 1400000 validators 1200 proto nodes 13.071 ms/op 8.7171 ms/op 1.50
computeDeltas 1400000 validators 7200 proto nodes 13.419 ms/op 8.6016 ms/op 1.56
computeDeltas 2100000 validators 300 proto nodes 19.798 ms/op 12.655 ms/op 1.56
computeDeltas 2100000 validators 1200 proto nodes 20.215 ms/op 12.797 ms/op 1.58
computeDeltas 2100000 validators 7200 proto nodes 18.632 ms/op 12.841 ms/op 1.45
altair processAttestation - 250000 vs - 7PWei normalcase 4.3599 ms/op 1.6911 ms/op 2.58
altair processAttestation - 250000 vs - 7PWei worstcase 4.0765 ms/op 2.5342 ms/op 1.61
altair processAttestation - setStatus - 1/6 committees join 165.68 us/op 93.804 us/op 1.77
altair processAttestation - setStatus - 1/3 committees join 258.51 us/op 187.46 us/op 1.38
altair processAttestation - setStatus - 1/2 committees join 363.63 us/op 278.95 us/op 1.30
altair processAttestation - setStatus - 2/3 committees join 495.29 us/op 341.71 us/op 1.45
altair processAttestation - setStatus - 4/5 committees join 670.67 us/op 510.93 us/op 1.31
altair processAttestation - setStatus - 100% committees join 839.44 us/op 599.04 us/op 1.40
altair processBlock - 250000 vs - 7PWei normalcase 7.1868 ms/op 3.8238 ms/op 1.88
altair processBlock - 250000 vs - 7PWei normalcase hashState 35.795 ms/op 33.493 ms/op 1.07
altair processBlock - 250000 vs - 7PWei worstcase 43.065 ms/op 40.801 ms/op 1.06
altair processBlock - 250000 vs - 7PWei worstcase hashState 96.422 ms/op 86.163 ms/op 1.12
phase0 processBlock - 250000 vs - 7PWei normalcase 1.9211 ms/op 1.9932 ms/op 0.96
phase0 processBlock - 250000 vs - 7PWei worstcase 30.956 ms/op 25.865 ms/op 1.20
altair processEth1Data - 250000 vs - 7PWei normalcase 332.11 us/op 257.31 us/op 1.29
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 8.4110 us/op 5.0580 us/op 1.66
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 35.421 us/op 24.138 us/op 1.47
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 9.6750 us/op 7.4970 us/op 1.29
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 6.7090 us/op 7.3410 us/op 0.91
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 135.25 us/op 106.06 us/op 1.28
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 1.3442 ms/op 1.1193 ms/op 1.20
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 1.5571 ms/op 986.18 us/op 1.58
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 1.3197 ms/op 1.0155 ms/op 1.30
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 3.6573 ms/op 2.4592 ms/op 1.49
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 1.6793 ms/op 999.14 us/op 1.68
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 3.6374 ms/op 2.5734 ms/op 1.41
Tree 40 250000 create 595.00 ms/op 371.24 ms/op 1.60
Tree 40 250000 get(125000) 146.73 ns/op 118.38 ns/op 1.24
Tree 40 250000 set(125000) 2.5539 us/op 1.2886 us/op 1.98
Tree 40 250000 toArray() 22.542 ms/op 9.9550 ms/op 2.26
Tree 40 250000 iterate all - toArray() + loop 21.834 ms/op 10.022 ms/op 2.18
Tree 40 250000 iterate all - get(i) 54.786 ms/op 38.922 ms/op 1.41
Array 250000 create 3.8531 ms/op 2.3702 ms/op 1.63
Array 250000 clone - spread 1.5848 ms/op 649.32 us/op 2.44
Array 250000 get(125000) 0.42400 ns/op 0.57700 ns/op 0.73
Array 250000 set(125000) 0.43800 ns/op 0.58400 ns/op 0.75
Array 250000 iterate all - loop 112.30 us/op 76.877 us/op 1.46
phase0 afterProcessEpoch - 250000 vs - 7PWei 50.225 ms/op 40.374 ms/op 1.24
Array.fill - length 1000000 3.8847 ms/op 2.3988 ms/op 1.62
Array push - length 1000000 13.313 ms/op 11.285 ms/op 1.18
Array.get 0.28302 ns/op 0.26129 ns/op 1.08
Uint8Array.get 0.44455 ns/op 0.34540 ns/op 1.29
phase0 beforeProcessEpoch - 250000 vs - 7PWei 18.019 ms/op 12.893 ms/op 1.40
altair processEpoch - mainnet_e81889 319.90 ms/op 273.18 ms/op 1.17
mainnet_e81889 - altair beforeProcessEpoch 20.852 ms/op 16.191 ms/op 1.29
mainnet_e81889 - altair processJustificationAndFinalization 6.6610 us/op 4.5950 us/op 1.45
mainnet_e81889 - altair processInactivityUpdates 4.7701 ms/op 3.3280 ms/op 1.43
mainnet_e81889 - altair processRewardsAndPenalties 45.961 ms/op 48.600 ms/op 0.95
mainnet_e81889 - altair processRegistryUpdates 763.00 ns/op 816.00 ns/op 0.94
mainnet_e81889 - altair processSlashings 189.00 ns/op 399.00 ns/op 0.47
mainnet_e81889 - altair processEth1DataReset 185.00 ns/op 396.00 ns/op 0.47
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.2842 ms/op 941.91 us/op 1.36
mainnet_e81889 - altair processSlashingsReset 929.00 ns/op 1.0960 us/op 0.85
mainnet_e81889 - altair processRandaoMixesReset 1.2500 us/op 1.5170 us/op 0.82
mainnet_e81889 - altair processHistoricalRootsUpdate 195.00 ns/op 412.00 ns/op 0.47
mainnet_e81889 - altair processParticipationFlagUpdates 552.00 ns/op 847.00 ns/op 0.65
mainnet_e81889 - altair processSyncCommitteeUpdates 154.00 ns/op 365.00 ns/op 0.42
mainnet_e81889 - altair afterProcessEpoch 56.360 ms/op 41.137 ms/op 1.37
capella processEpoch - mainnet_e217614 1.0710 s/op 901.94 ms/op 1.19
mainnet_e217614 - capella beforeProcessEpoch 69.699 ms/op 67.211 ms/op 1.04
mainnet_e217614 - capella processJustificationAndFinalization 5.4860 us/op 5.0100 us/op 1.10
mainnet_e217614 - capella processInactivityUpdates 17.132 ms/op 15.842 ms/op 1.08
mainnet_e217614 - capella processRewardsAndPenalties 189.33 ms/op 183.89 ms/op 1.03
mainnet_e217614 - capella processRegistryUpdates 6.9250 us/op 6.8570 us/op 1.01
mainnet_e217614 - capella processSlashings 189.00 ns/op 459.00 ns/op 0.41
mainnet_e217614 - capella processEth1DataReset 183.00 ns/op 395.00 ns/op 0.46
mainnet_e217614 - capella processEffectiveBalanceUpdates 12.653 ms/op 11.715 ms/op 1.08
mainnet_e217614 - capella processSlashingsReset 1.0590 us/op 1.2090 us/op 0.88
mainnet_e217614 - capella processRandaoMixesReset 1.2540 us/op 1.2620 us/op 0.99
mainnet_e217614 - capella processHistoricalRootsUpdate 180.00 ns/op 397.00 ns/op 0.45
mainnet_e217614 - capella processParticipationFlagUpdates 564.00 ns/op 735.00 ns/op 0.77
mainnet_e217614 - capella afterProcessEpoch 127.29 ms/op 105.42 ms/op 1.21
phase0 processEpoch - mainnet_e58758 352.07 ms/op 300.56 ms/op 1.17
mainnet_e58758 - phase0 beforeProcessEpoch 96.621 ms/op 86.306 ms/op 1.12
mainnet_e58758 - phase0 processJustificationAndFinalization 6.4080 us/op 5.9160 us/op 1.08
mainnet_e58758 - phase0 processRewardsAndPenalties 37.838 ms/op 41.483 ms/op 0.91
mainnet_e58758 - phase0 processRegistryUpdates 3.1110 us/op 2.7940 us/op 1.11
mainnet_e58758 - phase0 processSlashings 178.00 ns/op 405.00 ns/op 0.44
mainnet_e58758 - phase0 processEth1DataReset 189.00 ns/op 401.00 ns/op 0.47
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.1110 ms/op 840.16 us/op 1.32
mainnet_e58758 - phase0 processSlashingsReset 1.2390 us/op 1.1550 us/op 1.07
mainnet_e58758 - phase0 processRandaoMixesReset 1.4040 us/op 1.5880 us/op 0.88
mainnet_e58758 - phase0 processHistoricalRootsUpdate 174.00 ns/op 407.00 ns/op 0.43
mainnet_e58758 - phase0 processParticipationRecordUpdates 944.00 ns/op 1.2960 us/op 0.73
mainnet_e58758 - phase0 afterProcessEpoch 42.391 ms/op 35.591 ms/op 1.19
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.7033 ms/op 977.63 us/op 1.74
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.7179 ms/op 2.3424 ms/op 0.73
altair processInactivityUpdates - 250000 normalcase 20.102 ms/op 17.057 ms/op 1.18
altair processInactivityUpdates - 250000 worstcase 20.097 ms/op 18.277 ms/op 1.10
phase0 processRegistryUpdates - 250000 normalcase 8.9640 us/op 3.5640 us/op 2.52
phase0 processRegistryUpdates - 250000 badcase_full_deposits 394.32 us/op 309.42 us/op 1.27
phase0 processRegistryUpdates - 250000 worstcase 0.5 133.46 ms/op 106.82 ms/op 1.25
altair processRewardsAndPenalties - 250000 normalcase 35.994 ms/op 32.511 ms/op 1.11
altair processRewardsAndPenalties - 250000 worstcase 51.444 ms/op 51.066 ms/op 1.01
phase0 getAttestationDeltas - 250000 normalcase 6.1444 ms/op 4.9848 ms/op 1.23
phase0 getAttestationDeltas - 250000 worstcase 6.4660 ms/op 6.5717 ms/op 0.98
phase0 processSlashings - 250000 worstcase 107.36 us/op 98.931 us/op 1.09
altair processSyncCommitteeUpdates - 250000 135.01 ms/op 112.26 ms/op 1.20
BeaconState.hashTreeRoot - No change 236.00 ns/op 447.00 ns/op 0.53
BeaconState.hashTreeRoot - 1 full validator 101.49 us/op 89.500 us/op 1.13
BeaconState.hashTreeRoot - 32 full validator 1.0871 ms/op 1.1925 ms/op 0.91
BeaconState.hashTreeRoot - 512 full validator 13.614 ms/op 12.112 ms/op 1.12
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 119.03 us/op 111.69 us/op 1.07
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 1.9901 ms/op 1.7367 ms/op 1.15
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 25.209 ms/op 28.048 ms/op 0.90
BeaconState.hashTreeRoot - 1 balances 86.852 us/op 72.065 us/op 1.21
BeaconState.hashTreeRoot - 32 balances 666.88 us/op 830.33 us/op 0.80
BeaconState.hashTreeRoot - 512 balances 7.6246 ms/op 9.8756 ms/op 0.77
BeaconState.hashTreeRoot - 250000 balances 175.50 ms/op 171.93 ms/op 1.02
aggregationBits - 2048 els - zipIndexesInBitList 22.894 us/op 18.602 us/op 1.23
byteArrayEquals 32 55.146 ns/op 46.405 ns/op 1.19
Buffer.compare 32 17.791 ns/op 16.501 ns/op 1.08
byteArrayEquals 1024 1.6412 us/op 1.2831 us/op 1.28
Buffer.compare 1024 25.225 ns/op 32.906 ns/op 0.77
byteArrayEquals 16384 26.112 us/op 20.400 us/op 1.28
Buffer.compare 16384 195.15 ns/op 193.53 ns/op 1.01
byteArrayEquals 123687377 197.46 ms/op 150.00 ms/op 1.32
Buffer.compare 123687377 8.7947 ms/op 5.8404 ms/op 1.51
byteArrayEquals 32 - diff last byte 54.406 ns/op 44.958 ns/op 1.21
Buffer.compare 32 - diff last byte 17.720 ns/op 15.206 ns/op 1.17
byteArrayEquals 1024 - diff last byte 1.6408 us/op 1.2269 us/op 1.34
Buffer.compare 1024 - diff last byte 25.955 ns/op 23.352 ns/op 1.11
byteArrayEquals 16384 - diff last byte 25.570 us/op 19.475 us/op 1.31
Buffer.compare 16384 - diff last byte 207.35 ns/op 170.00 ns/op 1.22
byteArrayEquals 123687377 - diff last byte 194.98 ms/op 152.85 ms/op 1.28
Buffer.compare 123687377 - diff last byte 7.6145 ms/op 3.9317 ms/op 1.94
byteArrayEquals 32 - random bytes 5.0910 ns/op 4.9300 ns/op 1.03
Buffer.compare 32 - random bytes 16.947 ns/op 16.923 ns/op 1.00
byteArrayEquals 1024 - random bytes 5.1960 ns/op 4.9250 ns/op 1.06
Buffer.compare 1024 - random bytes 16.916 ns/op 17.037 ns/op 0.99
byteArrayEquals 16384 - random bytes 5.1320 ns/op 4.8750 ns/op 1.05
Buffer.compare 16384 - random bytes 17.236 ns/op 17.061 ns/op 1.01
byteArrayEquals 123687377 - random bytes 6.5400 ns/op 7.8000 ns/op 0.84
Buffer.compare 123687377 - random bytes 18.700 ns/op 19.600 ns/op 0.95
regular array get 100000 times 33.547 us/op 30.739 us/op 1.09
wrappedArray get 100000 times 33.513 us/op 30.610 us/op 1.09
arrayWithProxy get 100000 times 13.551 ms/op 11.019 ms/op 1.23
ssz.Root.equals 47.268 ns/op 42.515 ns/op 1.11
byteArrayEquals 46.267 ns/op 43.225 ns/op 1.07
Buffer.compare 10.532 ns/op 10.551 ns/op 1.00
processSlot - 1 slots 12.471 us/op 8.9470 us/op 1.39
processSlot - 32 slots 3.0142 ms/op 2.1582 ms/op 1.40
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 56.769 ms/op 59.684 ms/op 0.95
getCommitteeAssignments - req 1 vs - 250000 vc 2.1831 ms/op 1.7046 ms/op 1.28
getCommitteeAssignments - req 100 vs - 250000 vc 4.2707 ms/op 3.3692 ms/op 1.27
getCommitteeAssignments - req 1000 vs - 250000 vc 4.5319 ms/op 3.5696 ms/op 1.27
compare ViewDUs 7.5411 s/op 6.0514 s/op 1.25
compare each validator Uint8Array 1.6724 s/op 863.10 ms/op 1.94
compare ViewDU to Uint8Array 1.4419 s/op 890.80 ms/op 1.62
migrate state 1000000 validators, 24 modified, 0 new 1.0467 s/op 793.03 ms/op 1.32
migrate state 1000000 validators, 1700 modified, 1000 new 1.4119 s/op 1.1929 s/op 1.18
migrate state 1000000 validators, 3400 modified, 2000 new 1.4144 s/op 1.1763 s/op 1.20
migrate state 1500000 validators, 24 modified, 0 new 1.0401 s/op 869.21 ms/op 1.20
migrate state 1500000 validators, 1700 modified, 1000 new 1.1738 s/op 1.0163 s/op 1.15
migrate state 1500000 validators, 3400 modified, 2000 new 1.4000 s/op 1.1690 s/op 1.20
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 4.0500 ns/op 5.6600 ns/op 0.72
state getBlockRootAtSlot - 250000 vs - 7PWei 827.05 ns/op 452.32 ns/op 1.83
computeProposers - vc 250000 7.7938 ms/op 6.9085 ms/op 1.13
computeEpochShuffling - vc 250000 40.376 ms/op 34.276 ms/op 1.18
getNextSyncCommittee - vc 250000 137.47 ms/op 98.239 ms/op 1.40
computeSigningRoot for AttestationData 29.275 us/op 21.912 us/op 1.34
hash AttestationData serialized data then Buffer.toString(base64) 1.5292 us/op 1.2096 us/op 1.26
toHexString serialized data 809.08 ns/op 725.45 ns/op 1.12
Buffer.toString(base64) 145.25 ns/op 114.65 ns/op 1.27
nodejs block root to RootHex using toHex 142.20 ns/op 113.96 ns/op 1.25
nodejs block root to RootHex using toRootHex 88.027 ns/op 74.577 ns/op 1.18
browser block root to RootHex using the deprecated toHexString 203.40 ns/op 195.20 ns/op 1.04
browser block root to RootHex using toHex 164.39 ns/op 160.01 ns/op 1.03
browser block root to RootHex using toRootHex 154.96 ns/op 147.10 ns/op 1.05

by benchmarkbot/action

@wemeetagain wemeetagain merged commit 80b3963 into unstable Jan 31, 2025
20 checks passed
@wemeetagain wemeetagain deleted the getblob-metrics-improv branch January 31, 2025 15:46
@wemeetagain
Copy link
Member

🎉 This PR is included in v1.26.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