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: prepareNextEpoch metric #6924

Merged
merged 2 commits into from
Jul 1, 2024
Merged

Conversation

twoeths
Copy link
Contributor

@twoeths twoeths commented Jul 1, 2024

Motivation

PrepareNextEpoch time was incorrect since #6652 because it did not count state.hashTreeRoot() time for the next epoch

Description

  • Only observe precomputeNextEpochTransition metric as the last step
  • Add prepareNextEpoch label specifically for observing state.hashTreeRoot() time for the next epoch since it takes much longer compared to next slot (some could be > 1.5s), see Big state hashTreeRoot() time in lodestar #6598

@twoeths twoeths requested a review from a team as a code owner July 1, 2024 04:15
Copy link

codecov bot commented Jul 1, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 62.52%. Comparing base (e6c559f) to head (7aa120d).

Current head 7aa120d differs from pull request most recent head 2474817

Please upload reports for the commit 2474817 to get more accurate results.

Additional details and impacted files
@@            Coverage Diff            @@
##           unstable    #6924   +/-   ##
=========================================
  Coverage     62.52%   62.52%           
=========================================
  Files           575      575           
  Lines         60985    60986    +1     
  Branches       2125     2128    +3     
=========================================
+ Hits          38130    38131    +1     
  Misses        22816    22816           
  Partials         39       39           

Copy link
Contributor

github-actions bot commented Jul 1, 2024

⚠️ 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: d94a6e1 Previous: e6c559f Ratio
phase0 processSlashings - 250000 worstcase 149.09 us/op 48.773 us/op 3.06
Full benchmark results
Benchmark suite Current: d94a6e1 Previous: e6c559f Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 539.46 us/op 680.59 us/op 0.79
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 56.341 us/op 37.482 us/op 1.50
BLS verify - blst-native 1.2615 ms/op 1.0529 ms/op 1.20
BLS verifyMultipleSignatures 3 - blst-native 2.6747 ms/op 2.2441 ms/op 1.19
BLS verifyMultipleSignatures 8 - blst-native 5.9384 ms/op 4.9718 ms/op 1.19
BLS verifyMultipleSignatures 32 - blst-native 21.807 ms/op 18.278 ms/op 1.19
BLS verifyMultipleSignatures 64 - blst-native 42.817 ms/op 36.012 ms/op 1.19
BLS verifyMultipleSignatures 128 - blst-native 84.927 ms/op 71.514 ms/op 1.19
BLS deserializing 10000 signatures 887.98 ms/op 760.79 ms/op 1.17
BLS deserializing 100000 signatures 8.8435 s/op 7.5924 s/op 1.16
BLS verifyMultipleSignatures - same message - 3 - blst-native 1.3716 ms/op 1.0994 ms/op 1.25
BLS verifyMultipleSignatures - same message - 8 - blst-native 1.4599 ms/op 1.2495 ms/op 1.17
BLS verifyMultipleSignatures - same message - 32 - blst-native 2.2817 ms/op 2.0526 ms/op 1.11
BLS verifyMultipleSignatures - same message - 64 - blst-native 3.7471 ms/op 3.2425 ms/op 1.16
BLS verifyMultipleSignatures - same message - 128 - blst-native 5.5643 ms/op 5.3955 ms/op 1.03
BLS aggregatePubkeys 32 - blst-native 25.319 us/op 22.102 us/op 1.15
BLS aggregatePubkeys 128 - blst-native 99.489 us/op 82.664 us/op 1.20
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 88.336 ms/op 57.600 ms/op 1.53
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 54.174 ms/op 41.358 ms/op 1.31
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 37.135 ms/op 28.982 ms/op 1.28
getSlashingsAndExits - default max 98.444 us/op 69.462 us/op 1.42
getSlashingsAndExits - 2k 327.43 us/op 229.50 us/op 1.43
proposeBlockBody type=full, size=empty 5.9492 ms/op 5.0027 ms/op 1.19
isKnown best case - 1 super set check 401.00 ns/op 225.00 ns/op 1.78
isKnown normal case - 2 super set checks 338.00 ns/op 221.00 ns/op 1.53
isKnown worse case - 16 super set checks 395.00 ns/op 223.00 ns/op 1.77
InMemoryCheckpointStateCache - add get delete 5.5570 us/op 3.6990 us/op 1.50
validate api signedAggregateAndProof - struct 2.7058 ms/op 2.2215 ms/op 1.22
validate gossip signedAggregateAndProof - struct 2.7038 ms/op 2.2253 ms/op 1.22
validate gossip attestation - vc 640000 1.3199 ms/op 1.0987 ms/op 1.20
batch validate gossip attestation - vc 640000 - chunk 32 162.88 us/op 126.21 us/op 1.29
batch validate gossip attestation - vc 640000 - chunk 64 144.64 us/op 114.32 us/op 1.27
batch validate gossip attestation - vc 640000 - chunk 128 132.01 us/op 105.64 us/op 1.25
batch validate gossip attestation - vc 640000 - chunk 256 126.86 us/op 104.59 us/op 1.21
pickEth1Vote - no votes 1.2180 ms/op 847.56 us/op 1.44
pickEth1Vote - max votes 8.3531 ms/op 7.2483 ms/op 1.15
pickEth1Vote - Eth1Data hashTreeRoot value x2048 13.184 ms/op 13.108 ms/op 1.01
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 21.852 ms/op 17.456 ms/op 1.25
pickEth1Vote - Eth1Data fastSerialize value x2048 520.41 us/op 330.40 us/op 1.58
pickEth1Vote - Eth1Data fastSerialize tree x2048 5.2145 ms/op 4.7988 ms/op 1.09
bytes32 toHexString 522.00 ns/op 353.00 ns/op 1.48
bytes32 Buffer.toString(hex) 259.00 ns/op 190.00 ns/op 1.36
bytes32 Buffer.toString(hex) from Uint8Array 436.00 ns/op 265.00 ns/op 1.65
bytes32 Buffer.toString(hex) + 0x 260.00 ns/op 187.00 ns/op 1.39
Object access 1 prop 0.14700 ns/op 0.11200 ns/op 1.31
Map access 1 prop 0.14300 ns/op 0.10700 ns/op 1.34
Object get x1000 7.4890 ns/op 5.1910 ns/op 1.44
Map get x1000 7.3250 ns/op 5.5090 ns/op 1.33
Object set x1000 35.603 ns/op 24.932 ns/op 1.43
Map set x1000 23.204 ns/op 18.212 ns/op 1.27
Return object 10000 times 0.30770 ns/op 0.27050 ns/op 1.14
Throw Error 10000 times 3.4820 us/op 2.5170 us/op 1.38
fastMsgIdFn sha256 / 200 bytes 2.3420 us/op 1.5780 us/op 1.48
fastMsgIdFn h32 xxhash / 200 bytes 277.00 ns/op 178.00 ns/op 1.56
fastMsgIdFn h64 xxhash / 200 bytes 289.00 ns/op 200.00 ns/op 1.45
fastMsgIdFn sha256 / 1000 bytes 7.4900 us/op 5.3350 us/op 1.40
fastMsgIdFn h32 xxhash / 1000 bytes 391.00 ns/op 295.00 ns/op 1.33
fastMsgIdFn h64 xxhash / 1000 bytes 357.00 ns/op 263.00 ns/op 1.36
fastMsgIdFn sha256 / 10000 bytes 65.460 us/op 46.294 us/op 1.41
fastMsgIdFn h32 xxhash / 10000 bytes 1.9770 us/op 1.5850 us/op 1.25
fastMsgIdFn h64 xxhash / 10000 bytes 1.2740 us/op 1.0220 us/op 1.25
send data - 1000 256B messages 14.180 ms/op 9.4890 ms/op 1.49
send data - 1000 512B messages 19.302 ms/op 12.867 ms/op 1.50
send data - 1000 1024B messages 29.156 ms/op 19.907 ms/op 1.46
send data - 1000 1200B messages 27.443 ms/op 21.536 ms/op 1.27
send data - 1000 2048B messages 32.374 ms/op 26.333 ms/op 1.23
send data - 1000 4096B messages 30.150 ms/op 24.722 ms/op 1.22
send data - 1000 16384B messages 76.186 ms/op 59.399 ms/op 1.28
send data - 1000 65536B messages 224.63 ms/op 184.61 ms/op 1.22
enrSubnets - fastDeserialize 64 bits 1.0980 us/op 808.00 ns/op 1.36
enrSubnets - ssz BitVector 64 bits 358.00 ns/op 266.00 ns/op 1.35
enrSubnets - fastDeserialize 4 bits 151.00 ns/op 121.00 ns/op 1.25
enrSubnets - ssz BitVector 4 bits 358.00 ns/op 263.00 ns/op 1.36
prioritizePeers score -10:0 att 32-0.1 sync 2-0 140.21 us/op 110.38 us/op 1.27
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 162.80 us/op 129.77 us/op 1.25
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 227.15 us/op 189.31 us/op 1.20
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 407.54 us/op 336.56 us/op 1.21
prioritizePeers score 0:0 att 64-1 sync 4-1 502.78 us/op 405.49 us/op 1.24
array of 16000 items push then shift 1.6784 us/op 1.1859 us/op 1.42
LinkedList of 16000 items push then shift 7.4940 ns/op 7.0350 ns/op 1.07
array of 16000 items push then pop 118.67 ns/op 77.215 ns/op 1.54
LinkedList of 16000 items push then pop 7.2100 ns/op 6.0860 ns/op 1.18
array of 24000 items push then shift 2.4624 us/op 1.7278 us/op 1.43
LinkedList of 24000 items push then shift 7.8460 ns/op 6.3580 ns/op 1.23
array of 24000 items push then pop 156.64 ns/op 98.779 ns/op 1.59
LinkedList of 24000 items push then pop 8.6770 ns/op 5.6940 ns/op 1.52
intersect bitArray bitLen 8 6.9030 ns/op 4.8560 ns/op 1.42
intersect array and set length 8 53.680 ns/op 34.627 ns/op 1.55
intersect bitArray bitLen 128 31.787 ns/op 24.696 ns/op 1.29
intersect array and set length 128 696.47 ns/op 528.50 ns/op 1.32
bitArray.getTrueBitIndexes() bitLen 128 1.3640 us/op 1.0660 us/op 1.28
bitArray.getTrueBitIndexes() bitLen 248 2.2810 us/op 1.8360 us/op 1.24
bitArray.getTrueBitIndexes() bitLen 512 4.4740 us/op 3.4220 us/op 1.31
Buffer.concat 32 items 964.00 ns/op 759.00 ns/op 1.27
Uint8Array.set 32 items 1.4490 us/op 1.5850 us/op 0.91
Buffer.copy 2.1930 us/op 2.0840 us/op 1.05
Uint8Array.set - with subarray 2.7380 us/op 2.8890 us/op 0.95
Uint8Array.set - without subarray 2.0680 us/op 1.8590 us/op 1.11
Set add up to 64 items then delete first 2.5917 us/op 1.7721 us/op 1.46
OrderedSet add up to 64 items then delete first 3.8041 us/op 2.7261 us/op 1.40
Set add up to 64 items then delete last 2.6715 us/op 2.0798 us/op 1.28
OrderedSet add up to 64 items then delete last 3.8166 us/op 2.9007 us/op 1.32
Set add up to 64 items then delete middle 2.7481 us/op 1.8476 us/op 1.49
OrderedSet add up to 64 items then delete middle 6.2581 us/op 4.1120 us/op 1.52
Set add up to 128 items then delete first 6.2991 us/op 3.9800 us/op 1.58
OrderedSet add up to 128 items then delete first 8.7553 us/op 6.1807 us/op 1.42
Set add up to 128 items then delete last 6.8307 us/op 3.8154 us/op 1.79
OrderedSet add up to 128 items then delete last 8.4808 us/op 5.7575 us/op 1.47
Set add up to 128 items then delete middle 5.4070 us/op 3.8230 us/op 1.41
OrderedSet add up to 128 items then delete middle 16.774 us/op 11.233 us/op 1.49
Set add up to 256 items then delete first 12.745 us/op 7.7339 us/op 1.65
OrderedSet add up to 256 items then delete first 19.565 us/op 12.154 us/op 1.61
Set add up to 256 items then delete last 10.930 us/op 7.4695 us/op 1.46
OrderedSet add up to 256 items then delete last 16.325 us/op 11.429 us/op 1.43
Set add up to 256 items then delete middle 10.857 us/op 7.4371 us/op 1.46
OrderedSet add up to 256 items then delete middle 49.014 us/op 33.522 us/op 1.46
transfer serialized Status (84 B) 1.4140 us/op 1.2560 us/op 1.13
copy serialized Status (84 B) 1.2140 us/op 974.00 ns/op 1.25
transfer serialized SignedVoluntaryExit (112 B) 1.4860 us/op 1.3000 us/op 1.14
copy serialized SignedVoluntaryExit (112 B) 1.2350 us/op 1.0520 us/op 1.17
transfer serialized ProposerSlashing (416 B) 2.5870 us/op 2.0170 us/op 1.28
copy serialized ProposerSlashing (416 B) 2.9350 us/op 2.1440 us/op 1.37
transfer serialized Attestation (485 B) 2.0420 us/op 1.9400 us/op 1.05
copy serialized Attestation (485 B) 1.6700 us/op 2.0850 us/op 0.80
transfer serialized AttesterSlashing (33232 B) 1.9880 us/op 1.9820 us/op 1.00
copy serialized AttesterSlashing (33232 B) 5.2610 us/op 5.6550 us/op 0.93
transfer serialized Small SignedBeaconBlock (128000 B) 2.1920 us/op 2.4230 us/op 0.90
copy serialized Small SignedBeaconBlock (128000 B) 14.658 us/op 12.111 us/op 1.21
transfer serialized Avg SignedBeaconBlock (200000 B) 2.7340 us/op 2.6970 us/op 1.01
copy serialized Avg SignedBeaconBlock (200000 B) 21.584 us/op 17.000 us/op 1.27
transfer serialized BlobsSidecar (524380 B) 2.8950 us/op 2.5320 us/op 1.14
copy serialized BlobsSidecar (524380 B) 80.996 us/op 109.53 us/op 0.74
transfer serialized Big SignedBeaconBlock (1000000 B) 3.2400 us/op 2.9630 us/op 1.09
copy serialized Big SignedBeaconBlock (1000000 B) 225.96 us/op 130.50 us/op 1.73
pass gossip attestations to forkchoice per slot 3.1743 ms/op 2.3925 ms/op 1.33
forkChoice updateHead vc 100000 bc 64 eq 0 588.77 us/op 374.43 us/op 1.57
forkChoice updateHead vc 600000 bc 64 eq 0 3.3503 ms/op 2.5107 ms/op 1.33
forkChoice updateHead vc 1000000 bc 64 eq 0 5.4658 ms/op 4.5978 ms/op 1.19
forkChoice updateHead vc 600000 bc 320 eq 0 3.1679 ms/op 2.5358 ms/op 1.25
forkChoice updateHead vc 600000 bc 1200 eq 0 3.2466 ms/op 2.5371 ms/op 1.28
forkChoice updateHead vc 600000 bc 7200 eq 0 4.3136 ms/op 2.7924 ms/op 1.54
forkChoice updateHead vc 600000 bc 64 eq 1000 11.209 ms/op 9.4519 ms/op 1.19
forkChoice updateHead vc 600000 bc 64 eq 10000 11.211 ms/op 9.3944 ms/op 1.19
forkChoice updateHead vc 600000 bc 64 eq 300000 16.059 ms/op 10.875 ms/op 1.48
computeDeltas 500000 validators 300 proto nodes 3.8585 ms/op 3.0213 ms/op 1.28
computeDeltas 500000 validators 1200 proto nodes 3.8232 ms/op 3.1402 ms/op 1.22
computeDeltas 500000 validators 7200 proto nodes 3.8295 ms/op 3.0369 ms/op 1.26
computeDeltas 750000 validators 300 proto nodes 5.3763 ms/op 4.4145 ms/op 1.22
computeDeltas 750000 validators 1200 proto nodes 5.3014 ms/op 4.4399 ms/op 1.19
computeDeltas 750000 validators 7200 proto nodes 5.3881 ms/op 4.3963 ms/op 1.23
computeDeltas 1400000 validators 300 proto nodes 10.121 ms/op 8.2329 ms/op 1.23
computeDeltas 1400000 validators 1200 proto nodes 10.246 ms/op 8.2271 ms/op 1.25
computeDeltas 1400000 validators 7200 proto nodes 10.400 ms/op 8.2651 ms/op 1.26
computeDeltas 2100000 validators 300 proto nodes 15.532 ms/op 11.962 ms/op 1.30
computeDeltas 2100000 validators 1200 proto nodes 16.383 ms/op 12.354 ms/op 1.33
computeDeltas 2100000 validators 7200 proto nodes 16.372 ms/op 12.111 ms/op 1.35
altair processAttestation - 250000 vs - 7PWei normalcase 2.2228 ms/op 1.3274 ms/op 1.67
altair processAttestation - 250000 vs - 7PWei worstcase 3.1547 ms/op 2.0343 ms/op 1.55
altair processAttestation - setStatus - 1/6 committees join 102.90 us/op 68.473 us/op 1.50
altair processAttestation - setStatus - 1/3 committees join 190.87 us/op 131.70 us/op 1.45
altair processAttestation - setStatus - 1/2 committees join 268.26 us/op 183.78 us/op 1.46
altair processAttestation - setStatus - 2/3 committees join 353.12 us/op 262.07 us/op 1.35
altair processAttestation - setStatus - 4/5 committees join 523.87 us/op 377.46 us/op 1.39
altair processAttestation - setStatus - 100% committees join 696.67 us/op 456.20 us/op 1.53
altair processBlock - 250000 vs - 7PWei normalcase 5.2407 ms/op 3.4702 ms/op 1.51
altair processBlock - 250000 vs - 7PWei normalcase hashState 39.453 ms/op 24.516 ms/op 1.61
altair processBlock - 250000 vs - 7PWei worstcase 48.067 ms/op 39.116 ms/op 1.23
altair processBlock - 250000 vs - 7PWei worstcase hashState 98.580 ms/op 76.947 ms/op 1.28
phase0 processBlock - 250000 vs - 7PWei normalcase 2.6377 ms/op 2.1728 ms/op 1.21
phase0 processBlock - 250000 vs - 7PWei worstcase 31.822 ms/op 22.028 ms/op 1.44
altair processEth1Data - 250000 vs - 7PWei normalcase 417.51 us/op 237.11 us/op 1.76
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 8.7040 us/op 4.1210 us/op 2.11
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 39.764 us/op 17.538 us/op 2.27
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 11.348 us/op 6.3970 us/op 1.77
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 9.8530 us/op 4.5490 us/op 2.17
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 137.91 us/op 69.570 us/op 1.98
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 1.0276 ms/op 490.12 us/op 2.10
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 1.1290 ms/op 1.0416 ms/op 1.08
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 1.2248 ms/op 1.1104 ms/op 1.10
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 2.8667 ms/op 1.8457 ms/op 1.55
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 2.0228 ms/op 1.1820 ms/op 1.71
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 5.3179 ms/op 2.9122 ms/op 1.83
Tree 40 250000 create 283.86 ms/op 174.28 ms/op 1.63
Tree 40 250000 get(125000) 159.76 ns/op 103.06 ns/op 1.55
Tree 40 250000 set(125000) 780.36 ns/op 482.01 ns/op 1.62
Tree 40 250000 toArray() 21.625 ms/op 11.896 ms/op 1.82
Tree 40 250000 iterate all - toArray() + loop 21.429 ms/op 11.851 ms/op 1.81
Tree 40 250000 iterate all - get(i) 65.536 ms/op 39.135 ms/op 1.67
MutableVector 250000 create 16.176 ms/op 12.563 ms/op 1.29
MutableVector 250000 get(125000) 6.8900 ns/op 5.6030 ns/op 1.23
MutableVector 250000 set(125000) 585.91 ns/op 161.61 ns/op 3.63
MutableVector 250000 toArray() 6.1829 ms/op 2.5575 ms/op 2.42
MutableVector 250000 iterate all - toArray() + loop 6.3670 ms/op 2.6683 ms/op 2.39
MutableVector 250000 iterate all - get(i) 1.8181 ms/op 1.4069 ms/op 1.29
Array 250000 create 4.7635 ms/op 2.2465 ms/op 2.12
Array 250000 clone - spread 1.8486 ms/op 1.1641 ms/op 1.59
Array 250000 get(125000) 0.45800 ns/op 0.35600 ns/op 1.29
Array 250000 set(125000) 0.48200 ns/op 0.36600 ns/op 1.32
Array 250000 iterate all - loop 102.43 us/op 74.972 us/op 1.37
effectiveBalanceIncrements clone Uint8Array 300000 73.692 us/op 12.708 us/op 5.80
effectiveBalanceIncrements clone MutableVector 300000 136.00 ns/op 101.00 ns/op 1.35
effectiveBalanceIncrements rw all Uint8Array 300000 208.75 us/op 162.95 us/op 1.28
effectiveBalanceIncrements rw all MutableVector 300000 104.05 ms/op 52.654 ms/op 1.98
phase0 afterProcessEpoch - 250000 vs - 7PWei 93.960 ms/op 77.154 ms/op 1.22
phase0 beforeProcessEpoch - 250000 vs - 7PWei 46.376 ms/op 36.117 ms/op 1.28
altair processEpoch - mainnet_e81889 454.90 ms/op 347.15 ms/op 1.31
mainnet_e81889 - altair beforeProcessEpoch 65.778 ms/op 43.367 ms/op 1.52
mainnet_e81889 - altair processJustificationAndFinalization 14.102 us/op 9.2700 us/op 1.52
mainnet_e81889 - altair processInactivityUpdates 8.2980 ms/op 5.2472 ms/op 1.58
mainnet_e81889 - altair processRewardsAndPenalties 55.717 ms/op 49.556 ms/op 1.12
mainnet_e81889 - altair processRegistryUpdates 2.1520 us/op 1.5830 us/op 1.36
mainnet_e81889 - altair processSlashings 431.00 ns/op 348.00 ns/op 1.24
mainnet_e81889 - altair processEth1DataReset 354.00 ns/op 267.00 ns/op 1.33
mainnet_e81889 - altair processEffectiveBalanceUpdates 2.0052 ms/op 1.1248 ms/op 1.78
mainnet_e81889 - altair processSlashingsReset 3.1830 us/op 2.3290 us/op 1.37
mainnet_e81889 - altair processRandaoMixesReset 3.8130 us/op 2.9780 us/op 1.28
mainnet_e81889 - altair processHistoricalRootsUpdate 406.00 ns/op 365.00 ns/op 1.11
mainnet_e81889 - altair processParticipationFlagUpdates 3.2840 us/op 1.2480 us/op 2.63
mainnet_e81889 - altair processSyncCommitteeUpdates 542.00 ns/op 297.00 ns/op 1.82
mainnet_e81889 - altair afterProcessEpoch 98.534 ms/op 80.556 ms/op 1.22
capella processEpoch - mainnet_e217614 1.4934 s/op 1.1798 s/op 1.27
mainnet_e217614 - capella beforeProcessEpoch 316.33 ms/op 217.77 ms/op 1.45
mainnet_e217614 - capella processJustificationAndFinalization 21.730 us/op 9.7180 us/op 2.24
mainnet_e217614 - capella processInactivityUpdates 24.432 ms/op 14.896 ms/op 1.64
mainnet_e217614 - capella processRewardsAndPenalties 274.31 ms/op 251.56 ms/op 1.09
mainnet_e217614 - capella processRegistryUpdates 17.462 us/op 10.264 us/op 1.70
mainnet_e217614 - capella processSlashings 499.00 ns/op 313.00 ns/op 1.59
mainnet_e217614 - capella processEth1DataReset 361.00 ns/op 240.00 ns/op 1.50
mainnet_e217614 - capella processEffectiveBalanceUpdates 14.702 ms/op 3.8012 ms/op 3.87
mainnet_e217614 - capella processSlashingsReset 4.6350 us/op 1.5520 us/op 2.99
mainnet_e217614 - capella processRandaoMixesReset 7.7680 us/op 2.3650 us/op 3.28
mainnet_e217614 - capella processHistoricalRootsUpdate 813.00 ns/op 265.00 ns/op 3.07
mainnet_e217614 - capella processParticipationFlagUpdates 2.3200 us/op 1.1070 us/op 2.10
mainnet_e217614 - capella afterProcessEpoch 291.15 ms/op 228.63 ms/op 1.27
phase0 processEpoch - mainnet_e58758 499.92 ms/op 354.81 ms/op 1.41
mainnet_e58758 - phase0 beforeProcessEpoch 159.85 ms/op 98.406 ms/op 1.62
mainnet_e58758 - phase0 processJustificationAndFinalization 20.860 us/op 9.4680 us/op 2.20
mainnet_e58758 - phase0 processRewardsAndPenalties 41.003 ms/op 32.832 ms/op 1.25
mainnet_e58758 - phase0 processRegistryUpdates 10.021 us/op 5.6420 us/op 1.78
mainnet_e58758 - phase0 processSlashings 677.00 ns/op 288.00 ns/op 2.35
mainnet_e58758 - phase0 processEth1DataReset 646.00 ns/op 300.00 ns/op 2.15
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.5003 ms/op 723.34 us/op 2.07
mainnet_e58758 - phase0 processSlashingsReset 3.3350 us/op 1.4860 us/op 2.24
mainnet_e58758 - phase0 processRandaoMixesReset 4.8680 us/op 2.2010 us/op 2.21
mainnet_e58758 - phase0 processHistoricalRootsUpdate 645.00 ns/op 274.00 ns/op 2.35
mainnet_e58758 - phase0 processParticipationRecordUpdates 4.0400 us/op 3.4700 us/op 1.16
mainnet_e58758 - phase0 afterProcessEpoch 85.838 ms/op 63.283 ms/op 1.36
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.6820 ms/op 755.84 us/op 2.23
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 3.2471 ms/op 1.4120 ms/op 2.30
altair processInactivityUpdates - 250000 normalcase 24.295 ms/op 16.188 ms/op 1.50
altair processInactivityUpdates - 250000 worstcase 23.035 ms/op 16.084 ms/op 1.43
phase0 processRegistryUpdates - 250000 normalcase 12.061 us/op 4.2810 us/op 2.82
phase0 processRegistryUpdates - 250000 badcase_full_deposits 375.30 us/op 302.09 us/op 1.24
phase0 processRegistryUpdates - 250000 worstcase 0.5 128.01 ms/op 107.69 ms/op 1.19
altair processRewardsAndPenalties - 250000 normalcase 49.093 ms/op 39.511 ms/op 1.24
altair processRewardsAndPenalties - 250000 worstcase 45.026 ms/op 39.312 ms/op 1.15
phase0 getAttestationDeltas - 250000 normalcase 8.8512 ms/op 5.6705 ms/op 1.56
phase0 getAttestationDeltas - 250000 worstcase 14.495 ms/op 5.9105 ms/op 2.45
phase0 processSlashings - 250000 worstcase 149.09 us/op 48.773 us/op 3.06
altair processSyncCommitteeUpdates - 250000 157.51 ms/op 107.30 ms/op 1.47
BeaconState.hashTreeRoot - No change 473.00 ns/op 217.00 ns/op 2.18
BeaconState.hashTreeRoot - 1 full validator 136.06 us/op 115.84 us/op 1.17
BeaconState.hashTreeRoot - 32 full validator 1.6424 ms/op 1.3593 ms/op 1.21
BeaconState.hashTreeRoot - 512 full validator 13.372 ms/op 13.302 ms/op 1.01
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 159.20 us/op 128.00 us/op 1.24
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 2.3978 ms/op 1.6546 ms/op 1.45
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 29.601 ms/op 20.866 ms/op 1.42
BeaconState.hashTreeRoot - 1 balances 117.98 us/op 122.88 us/op 0.96
BeaconState.hashTreeRoot - 32 balances 1.1121 ms/op 784.34 us/op 1.42
BeaconState.hashTreeRoot - 512 balances 11.089 ms/op 11.739 ms/op 0.94
BeaconState.hashTreeRoot - 250000 balances 188.00 ms/op 164.03 ms/op 1.15
aggregationBits - 2048 els - zipIndexesInBitList 38.805 us/op 18.713 us/op 2.07
byteArrayEquals 32 57.591 ns/op 46.390 ns/op 1.24
Buffer.compare 32 19.158 ns/op 16.062 ns/op 1.19
byteArrayEquals 1024 1.6606 us/op 1.2397 us/op 1.34
Buffer.compare 1024 30.078 ns/op 22.594 ns/op 1.33
byteArrayEquals 16384 27.677 us/op 19.672 us/op 1.41
Buffer.compare 16384 212.45 ns/op 175.26 ns/op 1.21
byteArrayEquals 123687377 205.29 ms/op 146.38 ms/op 1.40
Buffer.compare 123687377 8.2483 ms/op 3.6191 ms/op 2.28
byteArrayEquals 32 - diff last byte 56.793 ns/op 45.481 ns/op 1.25
Buffer.compare 32 - diff last byte 19.915 ns/op 15.718 ns/op 1.27
byteArrayEquals 1024 - diff last byte 1.7512 us/op 1.2204 us/op 1.43
Buffer.compare 1024 - diff last byte 28.548 ns/op 22.587 ns/op 1.26
byteArrayEquals 16384 - diff last byte 27.834 us/op 19.385 us/op 1.44
Buffer.compare 16384 - diff last byte 197.25 ns/op 168.99 ns/op 1.17
byteArrayEquals 123687377 - diff last byte 198.36 ms/op 145.72 ms/op 1.36
Buffer.compare 123687377 - diff last byte 7.8254 ms/op 5.2654 ms/op 1.49
byteArrayEquals 32 - random bytes 5.4110 ns/op 4.2380 ns/op 1.28
Buffer.compare 32 - random bytes 17.795 ns/op 14.002 ns/op 1.27
byteArrayEquals 1024 - random bytes 5.3370 ns/op 4.2100 ns/op 1.27
Buffer.compare 1024 - random bytes 17.721 ns/op 13.798 ns/op 1.28
byteArrayEquals 16384 - random bytes 5.4240 ns/op 4.2030 ns/op 1.29
Buffer.compare 16384 - random bytes 17.713 ns/op 13.767 ns/op 1.29
byteArrayEquals 123687377 - random bytes 6.8600 ns/op 5.4700 ns/op 1.25
Buffer.compare 123687377 - random bytes 19.700 ns/op 14.670 ns/op 1.34
regular array get 100000 times 40.553 us/op 27.323 us/op 1.48
wrappedArray get 100000 times 35.512 us/op 27.097 us/op 1.31
arrayWithProxy get 100000 times 13.917 ms/op 8.2046 ms/op 1.70
ssz.Root.equals 47.384 ns/op 39.494 ns/op 1.20
byteArrayEquals 46.519 ns/op 39.174 ns/op 1.19
Buffer.compare 10.786 ns/op 8.0020 ns/op 1.35
shuffle list - 16384 els 6.5625 ms/op 5.0002 ms/op 1.31
shuffle list - 250000 els 96.167 ms/op 72.911 ms/op 1.32
processSlot - 1 slots 14.052 us/op 10.110 us/op 1.39
processSlot - 32 slots 2.8028 ms/op 2.8659 ms/op 0.98
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 38.423 ms/op 42.280 ms/op 0.91
getCommitteeAssignments - req 1 vs - 250000 vc 2.2604 ms/op 1.7798 ms/op 1.27
getCommitteeAssignments - req 100 vs - 250000 vc 4.2736 ms/op 3.4565 ms/op 1.24
getCommitteeAssignments - req 1000 vs - 250000 vc 4.6551 ms/op 3.6917 ms/op 1.26
findModifiedValidators - 10000 modified validators 276.58 ms/op 228.07 ms/op 1.21
findModifiedValidators - 1000 modified validators 214.06 ms/op 161.64 ms/op 1.32
findModifiedValidators - 100 modified validators 225.36 ms/op 157.34 ms/op 1.43
findModifiedValidators - 10 modified validators 237.85 ms/op 140.47 ms/op 1.69
findModifiedValidators - 1 modified validators 208.74 ms/op 136.59 ms/op 1.53
findModifiedValidators - no difference 184.44 ms/op 148.61 ms/op 1.24
compare ViewDUs 3.6222 s/op 2.8320 s/op 1.28
compare each validator Uint8Array 1.5458 s/op 1.5759 s/op 0.98
compare ViewDU to Uint8Array 1.1897 s/op 669.58 ms/op 1.78
migrate state 1000000 validators, 24 modified, 0 new 602.45 ms/op 569.76 ms/op 1.06
migrate state 1000000 validators, 1700 modified, 1000 new 784.69 ms/op 795.04 ms/op 0.99
migrate state 1000000 validators, 3400 modified, 2000 new 1.0176 s/op 990.87 ms/op 1.03
migrate state 1500000 validators, 24 modified, 0 new 574.90 ms/op 563.49 ms/op 1.02
migrate state 1500000 validators, 1700 modified, 1000 new 832.96 ms/op 742.10 ms/op 1.12
migrate state 1500000 validators, 3400 modified, 2000 new 1.0778 s/op 981.87 ms/op 1.10
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 4.9000 ns/op 3.7200 ns/op 1.32
state getBlockRootAtSlot - 250000 vs - 7PWei 702.64 ns/op 517.87 ns/op 1.36
computeProposers - vc 250000 8.3508 ms/op 6.3329 ms/op 1.32
computeEpochShuffling - vc 250000 97.175 ms/op 80.882 ms/op 1.20
getNextSyncCommittee - vc 250000 139.80 ms/op 94.895 ms/op 1.47
computeSigningRoot for AttestationData 22.084 us/op 17.136 us/op 1.29
hash AttestationData serialized data then Buffer.toString(base64) 1.6405 us/op 1.1619 us/op 1.41
toHexString serialized data 964.65 ns/op 756.74 ns/op 1.27
Buffer.toString(base64) 185.37 ns/op 139.31 ns/op 1.33

by benchmarkbot/action

@wemeetagain wemeetagain enabled auto-merge (squash) July 1, 2024 17:33
@wemeetagain wemeetagain merged commit 5fe87f8 into unstable Jul 1, 2024
19 of 20 checks passed
@wemeetagain wemeetagain deleted the te/fix_prepare_next_epoch_metric branch July 1, 2024 17:37
@wemeetagain
Copy link
Member

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