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

chore: track Prepare Next Epoch heatmap #6928

Merged
merged 1 commit into from
Jul 2, 2024

Conversation

twoeths
Copy link
Contributor

@twoeths twoeths commented Jul 2, 2024

Motivation

Track Prepare Next Epoch time in heat map presentation, this signals lodestar is going to hit limitation because most of epoch transition takes 3s-4s. Ideally we want it to be ~ 2s

Description

part of #6268 ChainSafe/ssz#355

Screenshot 2024-07-02 at 16 03 28

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

codecov bot commented Jul 2, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 62.52%. Comparing base (5fe87f8) to head (a802c73).

Additional details and impacted files
@@            Coverage Diff            @@
##           unstable    #6928   +/-   ##
=========================================
  Coverage     62.51%   62.52%           
=========================================
  Files           575      575           
  Lines         60986    60986           
  Branches       2121     2118    -3     
=========================================
+ Hits          38128    38129    +1     
+ Misses        22819    22818    -1     
  Partials         39       39           

Copy link
Contributor

github-actions bot commented Jul 2, 2024

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: b7ca1a4 Previous: 5fe87f8 Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 886.74 us/op 717.76 us/op 1.24
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 53.712 us/op 57.624 us/op 0.93
BLS verify - blst-native 1.2438 ms/op 1.2668 ms/op 0.98
BLS verifyMultipleSignatures 3 - blst-native 2.6423 ms/op 2.6484 ms/op 1.00
BLS verifyMultipleSignatures 8 - blst-native 5.9567 ms/op 5.8213 ms/op 1.02
BLS verifyMultipleSignatures 32 - blst-native 21.575 ms/op 21.250 ms/op 1.02
BLS verifyMultipleSignatures 64 - blst-native 42.562 ms/op 41.883 ms/op 1.02
BLS verifyMultipleSignatures 128 - blst-native 85.085 ms/op 83.190 ms/op 1.02
BLS deserializing 10000 signatures 889.32 ms/op 885.77 ms/op 1.00
BLS deserializing 100000 signatures 8.7389 s/op 8.7865 s/op 0.99
BLS verifyMultipleSignatures - same message - 3 - blst-native 1.2716 ms/op 1.2746 ms/op 1.00
BLS verifyMultipleSignatures - same message - 8 - blst-native 1.4423 ms/op 1.4450 ms/op 1.00
BLS verifyMultipleSignatures - same message - 32 - blst-native 2.2623 ms/op 2.3612 ms/op 0.96
BLS verifyMultipleSignatures - same message - 64 - blst-native 3.3967 ms/op 3.8168 ms/op 0.89
BLS verifyMultipleSignatures - same message - 128 - blst-native 5.5173 ms/op 5.5915 ms/op 0.99
BLS aggregatePubkeys 32 - blst-native 25.451 us/op 25.636 us/op 0.99
BLS aggregatePubkeys 128 - blst-native 100.14 us/op 100.88 us/op 0.99
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 55.456 ms/op 77.034 ms/op 0.72
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 50.542 ms/op 55.119 ms/op 0.92
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 32.210 ms/op 34.347 ms/op 0.94
getSlashingsAndExits - default max 100.14 us/op 103.94 us/op 0.96
getSlashingsAndExits - 2k 248.47 us/op 333.20 us/op 0.75
proposeBlockBody type=full, size=empty 5.5638 ms/op 5.9003 ms/op 0.94
isKnown best case - 1 super set check 264.00 ns/op 459.00 ns/op 0.58
isKnown normal case - 2 super set checks 259.00 ns/op 433.00 ns/op 0.60
isKnown worse case - 16 super set checks 263.00 ns/op 312.00 ns/op 0.84
InMemoryCheckpointStateCache - add get delete 4.8680 us/op 5.1530 us/op 0.94
validate api signedAggregateAndProof - struct 2.6642 ms/op 2.6602 ms/op 1.00
validate gossip signedAggregateAndProof - struct 2.6587 ms/op 2.6582 ms/op 1.00
validate gossip attestation - vc 640000 1.2463 ms/op 1.2712 ms/op 0.98
batch validate gossip attestation - vc 640000 - chunk 32 146.96 us/op 155.95 us/op 0.94
batch validate gossip attestation - vc 640000 - chunk 64 131.58 us/op 140.48 us/op 0.94
batch validate gossip attestation - vc 640000 - chunk 128 127.50 us/op 130.12 us/op 0.98
batch validate gossip attestation - vc 640000 - chunk 256 121.66 us/op 125.65 us/op 0.97
pickEth1Vote - no votes 1.0370 ms/op 1.1945 ms/op 0.87
pickEth1Vote - max votes 8.1509 ms/op 8.2892 ms/op 0.98
pickEth1Vote - Eth1Data hashTreeRoot value x2048 14.991 ms/op 13.806 ms/op 1.09
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 19.516 ms/op 18.211 ms/op 1.07
pickEth1Vote - Eth1Data fastSerialize value x2048 492.34 us/op 563.22 us/op 0.87
pickEth1Vote - Eth1Data fastSerialize tree x2048 6.9481 ms/op 6.2045 ms/op 1.12
bytes32 toHexString 422.00 ns/op 559.00 ns/op 0.75
bytes32 Buffer.toString(hex) 239.00 ns/op 254.00 ns/op 0.94
bytes32 Buffer.toString(hex) from Uint8Array 350.00 ns/op 363.00 ns/op 0.96
bytes32 Buffer.toString(hex) + 0x 242.00 ns/op 261.00 ns/op 0.93
Object access 1 prop 0.13500 ns/op 0.17100 ns/op 0.79
Map access 1 prop 0.13100 ns/op 0.13400 ns/op 0.98
Object get x1000 5.8380 ns/op 6.1120 ns/op 0.96
Map get x1000 6.4960 ns/op 6.5020 ns/op 1.00
Object set x1000 31.203 ns/op 35.084 ns/op 0.89
Map set x1000 21.751 ns/op 23.577 ns/op 0.92
Return object 10000 times 0.28710 ns/op 0.29870 ns/op 0.96
Throw Error 10000 times 3.3296 us/op 3.5692 us/op 0.93
fastMsgIdFn sha256 / 200 bytes 2.1530 us/op 2.3130 us/op 0.93
fastMsgIdFn h32 xxhash / 200 bytes 224.00 ns/op 267.00 ns/op 0.84
fastMsgIdFn h64 xxhash / 200 bytes 263.00 ns/op 283.00 ns/op 0.93
fastMsgIdFn sha256 / 1000 bytes 7.1920 us/op 7.5160 us/op 0.96
fastMsgIdFn h32 xxhash / 1000 bytes 352.00 ns/op 425.00 ns/op 0.83
fastMsgIdFn h64 xxhash / 1000 bytes 336.00 ns/op 356.00 ns/op 0.94
fastMsgIdFn sha256 / 10000 bytes 63.818 us/op 65.497 us/op 0.97
fastMsgIdFn h32 xxhash / 10000 bytes 1.8180 us/op 1.9200 us/op 0.95
fastMsgIdFn h64 xxhash / 10000 bytes 1.1910 us/op 1.2660 us/op 0.94
send data - 1000 256B messages 11.333 ms/op 12.992 ms/op 0.87
send data - 1000 512B messages 15.269 ms/op 18.269 ms/op 0.84
send data - 1000 1024B messages 26.117 ms/op 27.569 ms/op 0.95
send data - 1000 1200B messages 25.368 ms/op 20.966 ms/op 1.21
send data - 1000 2048B messages 30.619 ms/op 32.283 ms/op 0.95
send data - 1000 4096B messages 30.439 ms/op 31.213 ms/op 0.98
send data - 1000 16384B messages 73.637 ms/op 72.620 ms/op 1.01
send data - 1000 65536B messages 207.63 ms/op 221.78 ms/op 0.94
enrSubnets - fastDeserialize 64 bits 1.0980 us/op 1.0820 us/op 1.01
enrSubnets - ssz BitVector 64 bits 346.00 ns/op 354.00 ns/op 0.98
enrSubnets - fastDeserialize 4 bits 145.00 ns/op 152.00 ns/op 0.95
enrSubnets - ssz BitVector 4 bits 344.00 ns/op 349.00 ns/op 0.99
prioritizePeers score -10:0 att 32-0.1 sync 2-0 144.69 us/op 145.23 us/op 1.00
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 143.77 us/op 153.71 us/op 0.94
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 239.76 us/op 238.30 us/op 1.01
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 396.58 us/op 398.50 us/op 1.00
prioritizePeers score 0:0 att 64-1 sync 4-1 593.94 us/op 645.44 us/op 0.92
array of 16000 items push then shift 1.6439 us/op 1.6911 us/op 0.97
LinkedList of 16000 items push then shift 7.0200 ns/op 7.5190 ns/op 0.93
array of 16000 items push then pop 106.30 ns/op 109.46 ns/op 0.97
LinkedList of 16000 items push then pop 6.9300 ns/op 7.2430 ns/op 0.96
array of 24000 items push then shift 2.4183 us/op 2.4558 us/op 0.98
LinkedList of 24000 items push then shift 6.9980 ns/op 7.2820 ns/op 0.96
array of 24000 items push then pop 134.63 ns/op 133.04 ns/op 1.01
LinkedList of 24000 items push then pop 7.2700 ns/op 7.0100 ns/op 1.04
intersect bitArray bitLen 8 6.4780 ns/op 6.4000 ns/op 1.01
intersect array and set length 8 45.778 ns/op 48.166 ns/op 0.95
intersect bitArray bitLen 128 30.766 ns/op 29.933 ns/op 1.03
intersect array and set length 128 664.23 ns/op 671.01 ns/op 0.99
bitArray.getTrueBitIndexes() bitLen 128 1.7990 us/op 1.9420 us/op 0.93
bitArray.getTrueBitIndexes() bitLen 248 2.6930 us/op 3.1820 us/op 0.85
bitArray.getTrueBitIndexes() bitLen 512 5.7480 us/op 5.8890 us/op 0.98
Buffer.concat 32 items 890.00 ns/op 902.00 ns/op 0.99
Uint8Array.set 32 items 1.3870 us/op 1.3310 us/op 1.04
Buffer.copy 1.9710 us/op 1.5630 us/op 1.26
Uint8Array.set - with subarray 2.7580 us/op 2.8350 us/op 0.97
Uint8Array.set - without subarray 1.4250 us/op 1.4070 us/op 1.01
Set add up to 64 items then delete first 2.4206 us/op 2.2031 us/op 1.10
OrderedSet add up to 64 items then delete first 3.4989 us/op 3.3726 us/op 1.04
Set add up to 64 items then delete last 2.5082 us/op 2.5772 us/op 0.97
OrderedSet add up to 64 items then delete last 3.7484 us/op 3.6988 us/op 1.01
Set add up to 64 items then delete middle 2.5740 us/op 2.5315 us/op 1.02
OrderedSet add up to 64 items then delete middle 5.4290 us/op 5.6211 us/op 0.97
Set add up to 128 items then delete first 5.4364 us/op 5.4413 us/op 1.00
OrderedSet add up to 128 items then delete first 8.3358 us/op 8.3976 us/op 0.99
Set add up to 128 items then delete last 5.1123 us/op 6.2009 us/op 0.82
OrderedSet add up to 128 items then delete last 7.5670 us/op 8.6983 us/op 0.87
Set add up to 128 items then delete middle 5.0519 us/op 5.8058 us/op 0.87
OrderedSet add up to 128 items then delete middle 14.391 us/op 14.987 us/op 0.96
Set add up to 256 items then delete first 10.844 us/op 10.794 us/op 1.00
OrderedSet add up to 256 items then delete first 16.691 us/op 17.078 us/op 0.98
Set add up to 256 items then delete last 10.123 us/op 9.9979 us/op 1.01
OrderedSet add up to 256 items then delete last 15.194 us/op 15.409 us/op 0.99
Set add up to 256 items then delete middle 9.9700 us/op 10.928 us/op 0.91
OrderedSet add up to 256 items then delete middle 42.288 us/op 43.899 us/op 0.96
transfer serialized Status (84 B) 1.3470 us/op 1.4420 us/op 0.93
copy serialized Status (84 B) 1.0990 us/op 1.2810 us/op 0.86
transfer serialized SignedVoluntaryExit (112 B) 1.4740 us/op 1.6470 us/op 0.89
copy serialized SignedVoluntaryExit (112 B) 1.1850 us/op 1.4040 us/op 0.84
transfer serialized ProposerSlashing (416 B) 1.8560 us/op 1.8480 us/op 1.00
copy serialized ProposerSlashing (416 B) 1.8040 us/op 1.7340 us/op 1.04
transfer serialized Attestation (485 B) 2.1630 us/op 2.4930 us/op 0.87
copy serialized Attestation (485 B) 1.6830 us/op 1.8560 us/op 0.91
transfer serialized AttesterSlashing (33232 B) 2.4370 us/op 2.3470 us/op 1.04
copy serialized AttesterSlashing (33232 B) 4.7900 us/op 6.0600 us/op 0.79
transfer serialized Small SignedBeaconBlock (128000 B) 2.4710 us/op 2.8900 us/op 0.86
copy serialized Small SignedBeaconBlock (128000 B) 15.461 us/op 17.092 us/op 0.90
transfer serialized Avg SignedBeaconBlock (200000 B) 3.1430 us/op 3.5570 us/op 0.88
copy serialized Avg SignedBeaconBlock (200000 B) 23.920 us/op 27.125 us/op 0.88
transfer serialized BlobsSidecar (524380 B) 2.8970 us/op 3.3290 us/op 0.87
copy serialized BlobsSidecar (524380 B) 94.143 us/op 96.464 us/op 0.98
transfer serialized Big SignedBeaconBlock (1000000 B) 3.0410 us/op 3.6640 us/op 0.83
copy serialized Big SignedBeaconBlock (1000000 B) 165.89 us/op 172.09 us/op 0.96
pass gossip attestations to forkchoice per slot 3.0728 ms/op 3.1603 ms/op 0.97
forkChoice updateHead vc 100000 bc 64 eq 0 572.71 us/op 515.98 us/op 1.11
forkChoice updateHead vc 600000 bc 64 eq 0 3.0165 ms/op 3.3004 ms/op 0.91
forkChoice updateHead vc 1000000 bc 64 eq 0 5.3334 ms/op 5.8224 ms/op 0.92
forkChoice updateHead vc 600000 bc 320 eq 0 3.0847 ms/op 3.3882 ms/op 0.91
forkChoice updateHead vc 600000 bc 1200 eq 0 3.1546 ms/op 3.2979 ms/op 0.96
forkChoice updateHead vc 600000 bc 7200 eq 0 3.6461 ms/op 3.6856 ms/op 0.99
forkChoice updateHead vc 600000 bc 64 eq 1000 10.797 ms/op 11.326 ms/op 0.95
forkChoice updateHead vc 600000 bc 64 eq 10000 10.939 ms/op 11.345 ms/op 0.96
forkChoice updateHead vc 600000 bc 64 eq 300000 14.924 ms/op 17.086 ms/op 0.87
computeDeltas 500000 validators 300 proto nodes 3.5872 ms/op 3.6473 ms/op 0.98
computeDeltas 500000 validators 1200 proto nodes 3.5720 ms/op 3.7524 ms/op 0.95
computeDeltas 500000 validators 7200 proto nodes 3.6549 ms/op 3.8048 ms/op 0.96
computeDeltas 750000 validators 300 proto nodes 5.4310 ms/op 5.5477 ms/op 0.98
computeDeltas 750000 validators 1200 proto nodes 5.5920 ms/op 5.4260 ms/op 1.03
computeDeltas 750000 validators 7200 proto nodes 5.5810 ms/op 5.3527 ms/op 1.04
computeDeltas 1400000 validators 300 proto nodes 10.188 ms/op 10.102 ms/op 1.01
computeDeltas 1400000 validators 1200 proto nodes 10.346 ms/op 10.203 ms/op 1.01
computeDeltas 1400000 validators 7200 proto nodes 10.033 ms/op 9.9749 ms/op 1.01
computeDeltas 2100000 validators 300 proto nodes 15.824 ms/op 15.251 ms/op 1.04
computeDeltas 2100000 validators 1200 proto nodes 15.521 ms/op 15.097 ms/op 1.03
computeDeltas 2100000 validators 7200 proto nodes 15.893 ms/op 15.086 ms/op 1.05
altair processAttestation - 250000 vs - 7PWei normalcase 2.1142 ms/op 2.1260 ms/op 0.99
altair processAttestation - 250000 vs - 7PWei worstcase 2.8144 ms/op 2.9480 ms/op 0.95
altair processAttestation - setStatus - 1/6 committees join 94.744 us/op 101.87 us/op 0.93
altair processAttestation - setStatus - 1/3 committees join 182.79 us/op 189.96 us/op 0.96
altair processAttestation - setStatus - 1/2 committees join 264.86 us/op 260.30 us/op 1.02
altair processAttestation - setStatus - 2/3 committees join 343.19 us/op 334.35 us/op 1.03
altair processAttestation - setStatus - 4/5 committees join 496.86 us/op 492.60 us/op 1.01
altair processAttestation - setStatus - 100% committees join 570.82 us/op 582.92 us/op 0.98
altair processBlock - 250000 vs - 7PWei normalcase 4.2833 ms/op 4.0294 ms/op 1.06
altair processBlock - 250000 vs - 7PWei normalcase hashState 22.625 ms/op 24.139 ms/op 0.94
altair processBlock - 250000 vs - 7PWei worstcase 39.065 ms/op 40.312 ms/op 0.97
altair processBlock - 250000 vs - 7PWei worstcase hashState 69.799 ms/op 78.478 ms/op 0.89
phase0 processBlock - 250000 vs - 7PWei normalcase 1.8697 ms/op 1.9945 ms/op 0.94
phase0 processBlock - 250000 vs - 7PWei worstcase 28.590 ms/op 26.880 ms/op 1.06
altair processEth1Data - 250000 vs - 7PWei normalcase 327.16 us/op 313.45 us/op 1.04
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 6.5970 us/op 6.8040 us/op 0.97
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 24.530 us/op 27.494 us/op 0.89
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 7.6630 us/op 10.225 us/op 0.75
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 6.3810 us/op 6.7720 us/op 0.94
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 97.472 us/op 110.72 us/op 0.88
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 693.47 us/op 702.40 us/op 0.99
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 921.01 us/op 943.67 us/op 0.98
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 915.41 us/op 953.64 us/op 0.96
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 2.6843 ms/op 2.6820 ms/op 1.00
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 1.6085 ms/op 1.6798 ms/op 0.96
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 3.9657 ms/op 3.9705 ms/op 1.00
Tree 40 250000 create 246.35 ms/op 230.42 ms/op 1.07
Tree 40 250000 get(125000) 152.14 ns/op 154.62 ns/op 0.98
Tree 40 250000 set(125000) 647.71 ns/op 705.09 ns/op 0.92
Tree 40 250000 toArray() 15.687 ms/op 20.118 ms/op 0.78
Tree 40 250000 iterate all - toArray() + loop 15.580 ms/op 16.716 ms/op 0.93
Tree 40 250000 iterate all - get(i) 55.148 ms/op 56.133 ms/op 0.98
MutableVector 250000 create 7.2226 ms/op 7.7110 ms/op 0.94
MutableVector 250000 get(125000) 6.3390 ns/op 10.134 ns/op 0.63
MutableVector 250000 set(125000) 204.49 ns/op 233.90 ns/op 0.87
MutableVector 250000 toArray() 3.7467 ms/op 4.2770 ms/op 0.88
MutableVector 250000 iterate all - toArray() + loop 4.1539 ms/op 4.3605 ms/op 0.95
MutableVector 250000 iterate all - get(i) 1.7908 ms/op 1.8100 ms/op 0.99
Array 250000 create 3.1624 ms/op 3.4026 ms/op 0.93
Array 250000 clone - spread 1.6441 ms/op 1.6401 ms/op 1.00
Array 250000 get(125000) 0.44700 ns/op 0.43700 ns/op 1.02
Array 250000 set(125000) 0.46700 ns/op 0.46800 ns/op 1.00
Array 250000 iterate all - loop 98.232 us/op 97.482 us/op 1.01
effectiveBalanceIncrements clone Uint8Array 300000 34.268 us/op 37.351 us/op 0.92
effectiveBalanceIncrements clone MutableVector 300000 132.00 ns/op 127.00 ns/op 1.04
effectiveBalanceIncrements rw all Uint8Array 300000 205.37 us/op 198.45 us/op 1.03
effectiveBalanceIncrements rw all MutableVector 300000 73.674 ms/op 70.750 ms/op 1.04
phase0 afterProcessEpoch - 250000 vs - 7PWei 92.683 ms/op 87.563 ms/op 1.06
phase0 beforeProcessEpoch - 250000 vs - 7PWei 35.567 ms/op 32.986 ms/op 1.08
altair processEpoch - mainnet_e81889 330.97 ms/op 374.27 ms/op 0.88
mainnet_e81889 - altair beforeProcessEpoch 48.651 ms/op 50.188 ms/op 0.97
mainnet_e81889 - altair processJustificationAndFinalization 12.040 us/op 11.489 us/op 1.05
mainnet_e81889 - altair processInactivityUpdates 6.4869 ms/op 6.2791 ms/op 1.03
mainnet_e81889 - altair processRewardsAndPenalties 39.607 ms/op 41.505 ms/op 0.95
mainnet_e81889 - altair processRegistryUpdates 2.0280 us/op 1.8460 us/op 1.10
mainnet_e81889 - altair processSlashings 430.00 ns/op 447.00 ns/op 0.96
mainnet_e81889 - altair processEth1DataReset 328.00 ns/op 349.00 ns/op 0.94
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.1190 ms/op 1.1285 ms/op 0.99
mainnet_e81889 - altair processSlashingsReset 2.6830 us/op 5.5350 us/op 0.48
mainnet_e81889 - altair processRandaoMixesReset 4.2850 us/op 4.5390 us/op 0.94
mainnet_e81889 - altair processHistoricalRootsUpdate 562.00 ns/op 543.00 ns/op 1.03
mainnet_e81889 - altair processParticipationFlagUpdates 2.3280 us/op 1.9820 us/op 1.17
mainnet_e81889 - altair processSyncCommitteeUpdates 755.00 ns/op 410.00 ns/op 1.84
mainnet_e81889 - altair afterProcessEpoch 94.398 ms/op 92.756 ms/op 1.02
capella processEpoch - mainnet_e217614 1.2997 s/op 1.2294 s/op 1.06
mainnet_e217614 - capella beforeProcessEpoch 266.47 ms/op 244.84 ms/op 1.09
mainnet_e217614 - capella processJustificationAndFinalization 13.470 us/op 14.734 us/op 0.91
mainnet_e217614 - capella processInactivityUpdates 20.050 ms/op 19.049 ms/op 1.05
mainnet_e217614 - capella processRewardsAndPenalties 237.47 ms/op 226.48 ms/op 1.05
mainnet_e217614 - capella processRegistryUpdates 15.936 us/op 13.220 us/op 1.21
mainnet_e217614 - capella processSlashings 492.00 ns/op 476.00 ns/op 1.03
mainnet_e217614 - capella processEth1DataReset 314.00 ns/op 344.00 ns/op 0.91
mainnet_e217614 - capella processEffectiveBalanceUpdates 15.130 ms/op 14.884 ms/op 1.02
mainnet_e217614 - capella processSlashingsReset 3.5610 us/op 3.4680 us/op 1.03
mainnet_e217614 - capella processRandaoMixesReset 3.3440 us/op 3.9200 us/op 0.85
mainnet_e217614 - capella processHistoricalRootsUpdate 1.2690 us/op 1.0670 us/op 1.19
mainnet_e217614 - capella processParticipationFlagUpdates 3.2050 us/op 2.3730 us/op 1.35
mainnet_e217614 - capella afterProcessEpoch 274.35 ms/op 237.27 ms/op 1.16
phase0 processEpoch - mainnet_e58758 392.32 ms/op 369.74 ms/op 1.06
mainnet_e58758 - phase0 beforeProcessEpoch 114.88 ms/op 115.75 ms/op 0.99
mainnet_e58758 - phase0 processJustificationAndFinalization 15.103 us/op 15.493 us/op 0.97
mainnet_e58758 - phase0 processRewardsAndPenalties 33.575 ms/op 32.063 ms/op 1.05
mainnet_e58758 - phase0 processRegistryUpdates 9.0580 us/op 9.1280 us/op 0.99
mainnet_e58758 - phase0 processSlashings 426.00 ns/op 284.00 ns/op 1.50
mainnet_e58758 - phase0 processEth1DataReset 477.00 ns/op 337.00 ns/op 1.42
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.1080 ms/op 938.52 us/op 1.18
mainnet_e58758 - phase0 processSlashingsReset 3.9460 us/op 4.6490 us/op 0.85
mainnet_e58758 - phase0 processRandaoMixesReset 5.9680 us/op 3.6260 us/op 1.65
mainnet_e58758 - phase0 processHistoricalRootsUpdate 435.00 ns/op 342.00 ns/op 1.27
mainnet_e58758 - phase0 processParticipationRecordUpdates 3.3180 us/op 3.2160 us/op 1.03
mainnet_e58758 - phase0 afterProcessEpoch 82.914 ms/op 79.776 ms/op 1.04
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.6539 ms/op 1.1443 ms/op 1.45
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 2.2282 ms/op 1.7317 ms/op 1.29
altair processInactivityUpdates - 250000 normalcase 21.045 ms/op 17.492 ms/op 1.20
altair processInactivityUpdates - 250000 worstcase 19.840 ms/op 17.358 ms/op 1.14
phase0 processRegistryUpdates - 250000 normalcase 9.2430 us/op 6.9180 us/op 1.34
phase0 processRegistryUpdates - 250000 badcase_full_deposits 383.98 us/op 288.89 us/op 1.33
phase0 processRegistryUpdates - 250000 worstcase 0.5 123.67 ms/op 135.53 ms/op 0.91
altair processRewardsAndPenalties - 250000 normalcase 50.810 ms/op 42.542 ms/op 1.19
altair processRewardsAndPenalties - 250000 worstcase 42.110 ms/op 39.743 ms/op 1.06
phase0 getAttestationDeltas - 250000 normalcase 10.087 ms/op 8.1352 ms/op 1.24
phase0 getAttestationDeltas - 250000 worstcase 7.9787 ms/op 8.3410 ms/op 0.96
phase0 processSlashings - 250000 worstcase 95.527 us/op 107.48 us/op 0.89
altair processSyncCommitteeUpdates - 250000 152.54 ms/op 133.96 ms/op 1.14
BeaconState.hashTreeRoot - No change 555.00 ns/op 358.00 ns/op 1.55
BeaconState.hashTreeRoot - 1 full validator 119.13 us/op 97.278 us/op 1.22
BeaconState.hashTreeRoot - 32 full validator 1.0925 ms/op 1.2578 ms/op 0.87
BeaconState.hashTreeRoot - 512 full validator 11.873 ms/op 10.898 ms/op 1.09
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 141.46 us/op 133.02 us/op 1.06
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 1.7422 ms/op 1.6050 ms/op 1.09
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 23.056 ms/op 25.036 ms/op 0.92
BeaconState.hashTreeRoot - 1 balances 119.94 us/op 101.28 us/op 1.18
BeaconState.hashTreeRoot - 32 balances 1.0147 ms/op 1.0478 ms/op 0.97
BeaconState.hashTreeRoot - 512 balances 10.163 ms/op 6.5847 ms/op 1.54
BeaconState.hashTreeRoot - 250000 balances 206.89 ms/op 177.04 ms/op 1.17
aggregationBits - 2048 els - zipIndexesInBitList 36.491 us/op 23.035 us/op 1.58
byteArrayEquals 32 58.071 ns/op 54.056 ns/op 1.07
Buffer.compare 32 19.904 ns/op 17.416 ns/op 1.14
byteArrayEquals 1024 1.7274 us/op 1.5968 us/op 1.08
Buffer.compare 1024 27.815 ns/op 26.688 ns/op 1.04
byteArrayEquals 16384 26.940 us/op 25.410 us/op 1.06
Buffer.compare 16384 202.31 ns/op 185.12 ns/op 1.09
byteArrayEquals 123687377 213.81 ms/op 190.26 ms/op 1.12
Buffer.compare 123687377 11.560 ms/op 6.6834 ms/op 1.73
byteArrayEquals 32 - diff last byte 60.293 ns/op 52.741 ns/op 1.14
Buffer.compare 32 - diff last byte 18.034 ns/op 17.158 ns/op 1.05
byteArrayEquals 1024 - diff last byte 1.6592 us/op 1.5847 us/op 1.05
Buffer.compare 1024 - diff last byte 27.008 ns/op 25.499 ns/op 1.06
byteArrayEquals 16384 - diff last byte 26.710 us/op 25.253 us/op 1.06
Buffer.compare 16384 - diff last byte 211.71 ns/op 183.36 ns/op 1.15
byteArrayEquals 123687377 - diff last byte 212.23 ms/op 193.29 ms/op 1.10
Buffer.compare 123687377 - diff last byte 10.787 ms/op 6.5306 ms/op 1.65
byteArrayEquals 32 - random bytes 5.8890 ns/op 5.1660 ns/op 1.14
Buffer.compare 32 - random bytes 19.474 ns/op 17.105 ns/op 1.14
byteArrayEquals 1024 - random bytes 5.7090 ns/op 5.2530 ns/op 1.09
Buffer.compare 1024 - random bytes 18.605 ns/op 17.195 ns/op 1.08
byteArrayEquals 16384 - random bytes 5.3880 ns/op 5.5020 ns/op 0.98
Buffer.compare 16384 - random bytes 17.752 ns/op 17.259 ns/op 1.03
byteArrayEquals 123687377 - random bytes 6.7100 ns/op 6.4300 ns/op 1.04
Buffer.compare 123687377 - random bytes 19.240 ns/op 18.740 ns/op 1.03
regular array get 100000 times 34.750 us/op 34.036 us/op 1.02
wrappedArray get 100000 times 34.738 us/op 33.887 us/op 1.03
arrayWithProxy get 100000 times 13.182 ms/op 12.964 ms/op 1.02
ssz.Root.equals 47.402 ns/op 47.187 ns/op 1.00
byteArrayEquals 48.470 ns/op 45.931 ns/op 1.06
Buffer.compare 11.111 ns/op 10.712 ns/op 1.04
shuffle list - 16384 els 6.7313 ms/op 6.5227 ms/op 1.03
shuffle list - 250000 els 97.437 ms/op 94.225 ms/op 1.03
processSlot - 1 slots 14.204 us/op 12.193 us/op 1.16
processSlot - 32 slots 3.6602 ms/op 2.6634 ms/op 1.37
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 37.633 ms/op 37.525 ms/op 1.00
getCommitteeAssignments - req 1 vs - 250000 vc 2.2636 ms/op 2.1953 ms/op 1.03
getCommitteeAssignments - req 100 vs - 250000 vc 4.4309 ms/op 4.2398 ms/op 1.05
getCommitteeAssignments - req 1000 vs - 250000 vc 4.6250 ms/op 4.5662 ms/op 1.01
findModifiedValidators - 10000 modified validators 310.94 ms/op 290.06 ms/op 1.07
findModifiedValidators - 1000 modified validators 199.62 ms/op 202.57 ms/op 0.99
findModifiedValidators - 100 modified validators 244.46 ms/op 196.34 ms/op 1.25
findModifiedValidators - 10 modified validators 239.76 ms/op 207.53 ms/op 1.16
findModifiedValidators - 1 modified validators 208.04 ms/op 228.23 ms/op 0.91
findModifiedValidators - no difference 219.68 ms/op 211.07 ms/op 1.04
compare ViewDUs 3.8744 s/op 4.0545 s/op 0.96
compare each validator Uint8Array 2.1365 s/op 1.5277 s/op 1.40
compare ViewDU to Uint8Array 1.6572 s/op 1.4719 s/op 1.13
migrate state 1000000 validators, 24 modified, 0 new 716.38 ms/op 761.45 ms/op 0.94
migrate state 1000000 validators, 1700 modified, 1000 new 897.93 ms/op 976.50 ms/op 0.92
migrate state 1000000 validators, 3400 modified, 2000 new 1.1806 s/op 1.0436 s/op 1.13
migrate state 1500000 validators, 24 modified, 0 new 603.00 ms/op 626.44 ms/op 0.96
migrate state 1500000 validators, 1700 modified, 1000 new 837.87 ms/op 949.10 ms/op 0.88
migrate state 1500000 validators, 3400 modified, 2000 new 1.1289 s/op 1.2962 s/op 0.87
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 4.8400 ns/op 4.6300 ns/op 1.05
state getBlockRootAtSlot - 250000 vs - 7PWei 508.48 ns/op 686.93 ns/op 0.74
computeProposers - vc 250000 7.7078 ms/op 8.4736 ms/op 0.91
computeEpochShuffling - vc 250000 103.98 ms/op 96.298 ms/op 1.08
getNextSyncCommittee - vc 250000 162.00 ms/op 143.94 ms/op 1.13
computeSigningRoot for AttestationData 22.511 us/op 19.039 us/op 1.18
hash AttestationData serialized data then Buffer.toString(base64) 1.6485 us/op 1.5841 us/op 1.04
toHexString serialized data 956.25 ns/op 941.80 ns/op 1.02
Buffer.toString(base64) 182.09 ns/op 186.89 ns/op 0.97

by benchmarkbot/action

@wemeetagain wemeetagain merged commit dbaa46e into unstable Jul 2, 2024
20 checks passed
@wemeetagain wemeetagain deleted the te/prepare_next_epoch_heatmap branch July 2, 2024 13:19
@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