Skip to content

Conversation

nazarhussain
Copy link
Contributor

Motivation

Description

Closes #issue_number

Steps to test or reproduce

Copy link
Contributor

github-actions bot commented Jul 22, 2025

Performance Report

🚀🚀 Significant benchmark improvement detected

Benchmark suite Current: 5deed8f Previous: 5a20065 Ratio
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.8865 ms/op 8.2429 ms/op 0.23
getNextSyncCommitteeIndices 10000 validators 117.01 ms/op 355.14 ms/op 0.33
Full benchmark results
Benchmark suite Current: 5deed8f Previous: 5a20065 Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 1.2954 ms/op 1.0518 ms/op 1.23
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 43.435 us/op 36.729 us/op 1.18
BLS verify - blst 1.0442 ms/op 1.2190 ms/op 0.86
BLS verifyMultipleSignatures 3 - blst 1.3778 ms/op 1.3414 ms/op 1.03
BLS verifyMultipleSignatures 8 - blst 2.1422 ms/op 2.1368 ms/op 1.00
BLS verifyMultipleSignatures 32 - blst 6.1912 ms/op 6.8282 ms/op 0.91
BLS verifyMultipleSignatures 64 - blst 12.543 ms/op 11.491 ms/op 1.09
BLS verifyMultipleSignatures 128 - blst 19.897 ms/op 19.177 ms/op 1.04
BLS deserializing 10000 signatures 769.14 ms/op 704.89 ms/op 1.09
BLS deserializing 100000 signatures 8.0093 s/op 7.1706 s/op 1.12
BLS verifyMultipleSignatures - same message - 3 - blst 987.86 us/op 926.79 us/op 1.07
BLS verifyMultipleSignatures - same message - 8 - blst 1.1048 ms/op 1.2113 ms/op 0.91
BLS verifyMultipleSignatures - same message - 32 - blst 1.7935 ms/op 1.8034 ms/op 0.99
BLS verifyMultipleSignatures - same message - 64 - blst 2.6411 ms/op 2.6793 ms/op 0.99
BLS verifyMultipleSignatures - same message - 128 - blst 5.1507 ms/op 4.5348 ms/op 1.14
BLS aggregatePubkeys 32 - blst 24.710 us/op 19.784 us/op 1.25
BLS aggregatePubkeys 128 - blst 81.315 us/op 71.917 us/op 1.13
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 58.594 ms/op 60.944 ms/op 0.96
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 55.752 ms/op 72.696 ms/op 0.77
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 54.957 ms/op 50.757 ms/op 1.08
getSlashingsAndExits - default max 87.162 us/op 135.20 us/op 0.64
getSlashingsAndExits - 2k 383.07 us/op 396.30 us/op 0.97
proposeBlockBody type=full, size=empty 6.6653 ms/op 7.8014 ms/op 0.85
isKnown best case - 1 super set check 262.00 ns/op 261.00 ns/op 1.00
isKnown normal case - 2 super set checks 262.00 ns/op 222.00 ns/op 1.18
isKnown worse case - 16 super set checks 265.00 ns/op 235.00 ns/op 1.13
InMemoryCheckpointStateCache - add get delete 2.6990 us/op 3.2330 us/op 0.83
validate api signedAggregateAndProof - struct 1.7987 ms/op 1.6092 ms/op 1.12
validate gossip signedAggregateAndProof - struct 1.7803 ms/op 1.7236 ms/op 1.03
batch validate gossip attestation - vc 640000 - chunk 32 130.45 us/op 146.27 us/op 0.89
batch validate gossip attestation - vc 640000 - chunk 64 115.94 us/op 121.27 us/op 0.96
batch validate gossip attestation - vc 640000 - chunk 128 102.96 us/op 123.85 us/op 0.83
batch validate gossip attestation - vc 640000 - chunk 256 107.05 us/op 121.33 us/op 0.88
pickEth1Vote - no votes 1.0760 ms/op 1.0627 ms/op 1.01
pickEth1Vote - max votes 6.8542 ms/op 8.8902 ms/op 0.77
pickEth1Vote - Eth1Data hashTreeRoot value x2048 13.048 ms/op 15.353 ms/op 0.85
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 19.876 ms/op 25.622 ms/op 0.78
pickEth1Vote - Eth1Data fastSerialize value x2048 460.10 us/op 472.95 us/op 0.97
pickEth1Vote - Eth1Data fastSerialize tree x2048 2.4234 ms/op 5.0740 ms/op 0.48
bytes32 toHexString 422.00 ns/op 386.00 ns/op 1.09
bytes32 Buffer.toString(hex) 304.00 ns/op 270.00 ns/op 1.13
bytes32 Buffer.toString(hex) from Uint8Array 431.00 ns/op 362.00 ns/op 1.19
bytes32 Buffer.toString(hex) + 0x 285.00 ns/op 274.00 ns/op 1.04
Object access 1 prop 0.13500 ns/op 0.13100 ns/op 1.03
Map access 1 prop 0.15200 ns/op 0.13200 ns/op 1.15
Object get x1000 6.3870 ns/op 6.3480 ns/op 1.01
Map get x1000 6.7690 ns/op 7.2970 ns/op 0.93
Object set x1000 32.690 ns/op 32.797 ns/op 1.00
Map set x1000 21.511 ns/op 22.288 ns/op 0.97
Return object 10000 times 0.31910 ns/op 0.30940 ns/op 1.03
Throw Error 10000 times 4.8010 us/op 5.6809 us/op 0.85
toHex 153.75 ns/op 141.96 ns/op 1.08
Buffer.from 150.17 ns/op 126.83 ns/op 1.18
shared Buffer 103.06 ns/op 87.658 ns/op 1.18
fastMsgIdFn sha256 / 200 bytes 2.4640 us/op 2.3720 us/op 1.04
fastMsgIdFn h32 xxhash / 200 bytes 235.00 ns/op 241.00 ns/op 0.98
fastMsgIdFn h64 xxhash / 200 bytes 313.00 ns/op 297.00 ns/op 1.05
fastMsgIdFn sha256 / 1000 bytes 8.3160 us/op 8.2660 us/op 1.01
fastMsgIdFn h32 xxhash / 1000 bytes 389.00 ns/op 458.00 ns/op 0.85
fastMsgIdFn h64 xxhash / 1000 bytes 401.00 ns/op 498.00 ns/op 0.81
fastMsgIdFn sha256 / 10000 bytes 71.939 us/op 69.245 us/op 1.04
fastMsgIdFn h32 xxhash / 10000 bytes 2.0910 us/op 1.9550 us/op 1.07
fastMsgIdFn h64 xxhash / 10000 bytes 1.4050 us/op 1.4340 us/op 0.98
send data - 1000 256B messages 20.325 ms/op 22.679 ms/op 0.90
send data - 1000 512B messages 23.570 ms/op 24.277 ms/op 0.97
send data - 1000 1024B messages 28.100 ms/op 31.327 ms/op 0.90
send data - 1000 1200B messages 24.034 ms/op 29.327 ms/op 0.82
send data - 1000 2048B messages 24.826 ms/op 28.545 ms/op 0.87
send data - 1000 4096B messages 28.988 ms/op 32.080 ms/op 0.90
send data - 1000 16384B messages 45.644 ms/op 57.729 ms/op 0.79
send data - 1000 65536B messages 124.11 ms/op 131.44 ms/op 0.94
enrSubnets - fastDeserialize 64 bits 984.00 ns/op 942.00 ns/op 1.04
enrSubnets - ssz BitVector 64 bits 419.00 ns/op 381.00 ns/op 1.10
enrSubnets - fastDeserialize 4 bits 200.00 ns/op 160.00 ns/op 1.25
enrSubnets - ssz BitVector 4 bits 352.00 ns/op 425.00 ns/op 0.83
prioritizePeers score -10:0 att 32-0.1 sync 2-0 129.64 us/op 153.58 us/op 0.84
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 153.98 us/op 193.73 us/op 0.79
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 220.47 us/op 224.89 us/op 0.98
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 407.08 us/op 441.25 us/op 0.92
prioritizePeers score 0:0 att 64-1 sync 4-1 513.44 us/op 501.45 us/op 1.02
array of 16000 items push then shift 1.7673 us/op 1.7528 us/op 1.01
LinkedList of 16000 items push then shift 7.7350 ns/op 10.289 ns/op 0.75
array of 16000 items push then pop 87.237 ns/op 91.723 ns/op 0.95
LinkedList of 16000 items push then pop 7.5520 ns/op 8.3770 ns/op 0.90
array of 24000 items push then shift 2.5902 us/op 2.6193 us/op 0.99
LinkedList of 24000 items push then shift 10.832 ns/op 10.162 ns/op 1.07
array of 24000 items push then pop 107.09 ns/op 125.54 ns/op 0.85
LinkedList of 24000 items push then pop 7.2140 ns/op 8.0170 ns/op 0.90
intersect bitArray bitLen 8 6.7490 ns/op 6.7070 ns/op 1.01
intersect array and set length 8 39.045 ns/op 43.590 ns/op 0.90
intersect bitArray bitLen 128 31.043 ns/op 32.833 ns/op 0.95
intersect array and set length 128 663.67 ns/op 703.78 ns/op 0.94
bitArray.getTrueBitIndexes() bitLen 128 1.0550 us/op 1.3190 us/op 0.80
bitArray.getTrueBitIndexes() bitLen 248 1.8460 us/op 2.0410 us/op 0.90
bitArray.getTrueBitIndexes() bitLen 512 3.7570 us/op 4.3990 us/op 0.85
Buffer.concat 32 items 798.00 ns/op 721.00 ns/op 1.11
Uint8Array.set 32 items 1.0880 us/op 1.4270 us/op 0.76
Buffer.copy 2.7330 us/op 4.2780 us/op 0.64
Uint8Array.set - with subarray 1.6270 us/op 3.6380 us/op 0.45
Uint8Array.set - without subarray 1.1030 us/op 2.2410 us/op 0.49
getUint32 - dataview 206.00 ns/op 222.00 ns/op 0.93
getUint32 - manual 129.00 ns/op 138.00 ns/op 0.93
Set add up to 64 items then delete first 2.6222 us/op 3.1460 us/op 0.83
OrderedSet add up to 64 items then delete first 4.0266 us/op 5.5147 us/op 0.73
Set add up to 64 items then delete last 2.8715 us/op 2.4963 us/op 1.15
OrderedSet add up to 64 items then delete last 4.8722 us/op 4.9222 us/op 0.99
Set add up to 64 items then delete middle 3.0096 us/op 3.3173 us/op 0.91
OrderedSet add up to 64 items then delete middle 6.4765 us/op 6.8126 us/op 0.95
Set add up to 128 items then delete first 5.9297 us/op 7.0599 us/op 0.84
OrderedSet add up to 128 items then delete first 8.5350 us/op 11.315 us/op 0.75
Set add up to 128 items then delete last 5.9033 us/op 7.0145 us/op 0.84
OrderedSet add up to 128 items then delete last 8.5746 us/op 11.085 us/op 0.77
Set add up to 128 items then delete middle 5.3151 us/op 7.0064 us/op 0.76
OrderedSet add up to 128 items then delete middle 15.780 us/op 18.436 us/op 0.86
Set add up to 256 items then delete first 11.613 us/op 14.109 us/op 0.82
OrderedSet add up to 256 items then delete first 17.064 us/op 24.847 us/op 0.69
Set add up to 256 items then delete last 11.977 us/op 14.860 us/op 0.81
OrderedSet add up to 256 items then delete last 20.594 us/op 22.147 us/op 0.93
Set add up to 256 items then delete middle 12.125 us/op 13.492 us/op 0.90
OrderedSet add up to 256 items then delete middle 50.458 us/op 50.250 us/op 1.00
transfer serialized Status (84 B) 3.2320 us/op 3.2270 us/op 1.00
copy serialized Status (84 B) 1.3220 us/op 1.9680 us/op 0.67
transfer serialized SignedVoluntaryExit (112 B) 2.5990 us/op 3.7260 us/op 0.70
copy serialized SignedVoluntaryExit (112 B) 1.4980 us/op 1.8860 us/op 0.79
transfer serialized ProposerSlashing (416 B) 2.6580 us/op 3.8240 us/op 0.70
copy serialized ProposerSlashing (416 B) 1.3460 us/op 2.6270 us/op 0.51
transfer serialized Attestation (485 B) 2.4330 us/op 3.9540 us/op 0.62
copy serialized Attestation (485 B) 1.6130 us/op 2.8160 us/op 0.57
transfer serialized AttesterSlashing (33232 B) 3.0540 us/op 3.9480 us/op 0.77
copy serialized AttesterSlashing (33232 B) 4.6610 us/op 6.4110 us/op 0.73
transfer serialized Small SignedBeaconBlock (128000 B) 3.7480 us/op 4.3340 us/op 0.86
copy serialized Small SignedBeaconBlock (128000 B) 11.806 us/op 20.134 us/op 0.59
transfer serialized Avg SignedBeaconBlock (200000 B) 3.9510 us/op 6.3110 us/op 0.63
copy serialized Avg SignedBeaconBlock (200000 B) 15.594 us/op 34.559 us/op 0.45
transfer serialized BlobsSidecar (524380 B) 4.4990 us/op 6.1280 us/op 0.73
copy serialized BlobsSidecar (524380 B) 62.428 us/op 116.27 us/op 0.54
transfer serialized Big SignedBeaconBlock (1000000 B) 4.5960 us/op 6.4480 us/op 0.71
copy serialized Big SignedBeaconBlock (1000000 B) 113.46 us/op 190.92 us/op 0.59
pass gossip attestations to forkchoice per slot 3.2637 ms/op 3.1772 ms/op 1.03
forkChoice updateHead vc 100000 bc 64 eq 0 527.13 us/op 481.27 us/op 1.10
forkChoice updateHead vc 600000 bc 64 eq 0 3.2071 ms/op 3.6452 ms/op 0.88
forkChoice updateHead vc 1000000 bc 64 eq 0 5.1824 ms/op 6.3341 ms/op 0.82
forkChoice updateHead vc 600000 bc 320 eq 0 3.0907 ms/op 3.7301 ms/op 0.83
forkChoice updateHead vc 600000 bc 1200 eq 0 3.1240 ms/op 3.8439 ms/op 0.81
forkChoice updateHead vc 600000 bc 7200 eq 0 3.2078 ms/op 4.5367 ms/op 0.71
forkChoice updateHead vc 600000 bc 64 eq 1000 11.202 ms/op 11.362 ms/op 0.99
forkChoice updateHead vc 600000 bc 64 eq 10000 10.358 ms/op 11.540 ms/op 0.90
forkChoice updateHead vc 600000 bc 64 eq 300000 14.237 ms/op 28.882 ms/op 0.49
computeDeltas 500000 validators 300 proto nodes 4.2785 ms/op 4.7537 ms/op 0.90
computeDeltas 500000 validators 1200 proto nodes 4.2637 ms/op 4.6661 ms/op 0.91
computeDeltas 500000 validators 7200 proto nodes 4.4678 ms/op 4.5209 ms/op 0.99
computeDeltas 750000 validators 300 proto nodes 6.7092 ms/op 6.5660 ms/op 1.02
computeDeltas 750000 validators 1200 proto nodes 7.2738 ms/op 7.2261 ms/op 1.01
computeDeltas 750000 validators 7200 proto nodes 7.5792 ms/op 7.3806 ms/op 1.03
computeDeltas 1400000 validators 300 proto nodes 13.902 ms/op 14.017 ms/op 0.99
computeDeltas 1400000 validators 1200 proto nodes 13.978 ms/op 14.111 ms/op 0.99
computeDeltas 1400000 validators 7200 proto nodes 14.085 ms/op 13.805 ms/op 1.02
computeDeltas 2100000 validators 300 proto nodes 20.955 ms/op 19.857 ms/op 1.06
computeDeltas 2100000 validators 1200 proto nodes 20.356 ms/op 19.387 ms/op 1.05
computeDeltas 2100000 validators 7200 proto nodes 19.631 ms/op 19.824 ms/op 0.99
altair processAttestation - 250000 vs - 7PWei normalcase 3.2663 ms/op 2.3006 ms/op 1.42
altair processAttestation - 250000 vs - 7PWei worstcase 4.7561 ms/op 4.6542 ms/op 1.02
altair processAttestation - setStatus - 1/6 committees join 182.42 us/op 156.06 us/op 1.17
altair processAttestation - setStatus - 1/3 committees join 336.67 us/op 274.39 us/op 1.23
altair processAttestation - setStatus - 1/2 committees join 435.96 us/op 376.70 us/op 1.16
altair processAttestation - setStatus - 2/3 committees join 532.29 us/op 478.87 us/op 1.11
altair processAttestation - setStatus - 4/5 committees join 697.68 us/op 689.26 us/op 1.01
altair processAttestation - setStatus - 100% committees join 1.0865 ms/op 817.51 us/op 1.33
altair processBlock - 250000 vs - 7PWei normalcase 6.6088 ms/op 10.324 ms/op 0.64
altair processBlock - 250000 vs - 7PWei normalcase hashState 35.004 ms/op 38.862 ms/op 0.90
altair processBlock - 250000 vs - 7PWei worstcase 44.724 ms/op 46.685 ms/op 0.96
altair processBlock - 250000 vs - 7PWei worstcase hashState 100.45 ms/op 95.548 ms/op 1.05
phase0 processBlock - 250000 vs - 7PWei normalcase 2.6667 ms/op 2.3972 ms/op 1.11
phase0 processBlock - 250000 vs - 7PWei worstcase 25.840 ms/op 29.849 ms/op 0.87
altair processEth1Data - 250000 vs - 7PWei normalcase 362.40 us/op 362.81 us/op 1.00
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 6.6670 us/op 7.5710 us/op 0.88
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 39.540 us/op 52.625 us/op 0.75
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 11.105 us/op 13.821 us/op 0.80
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 9.5870 us/op 8.5540 us/op 1.12
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 148.25 us/op 203.47 us/op 0.73
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 2.3665 ms/op 2.5793 ms/op 0.92
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 2.8474 ms/op 2.6345 ms/op 1.08
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 2.8378 ms/op 2.5243 ms/op 1.12
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 5.8870 ms/op 6.6540 ms/op 0.88
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 2.5422 ms/op 2.7769 ms/op 0.92
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 5.2702 ms/op 5.9908 ms/op 0.88
Tree 40 250000 create 464.12 ms/op 605.87 ms/op 0.77
Tree 40 250000 get(125000) 154.27 ns/op 147.45 ns/op 1.05
Tree 40 250000 set(125000) 1.5862 us/op 1.8794 us/op 0.84
Tree 40 250000 toArray() 17.014 ms/op 23.405 ms/op 0.73
Tree 40 250000 iterate all - toArray() + loop 19.769 ms/op 23.679 ms/op 0.83
Tree 40 250000 iterate all - get(i) 65.381 ms/op 62.946 ms/op 1.04
Array 250000 create 2.6914 ms/op 4.4596 ms/op 0.60
Array 250000 clone - spread 1.5593 ms/op 1.7981 ms/op 0.87
Array 250000 get(125000) 0.47300 ns/op 0.47800 ns/op 0.99
Array 250000 set(125000) 0.46300 ns/op 0.46700 ns/op 0.99
Array 250000 iterate all - loop 88.410 us/op 89.982 us/op 0.98
phase0 afterProcessEpoch - 250000 vs - 7PWei 43.332 ms/op 44.837 ms/op 0.97
Array.fill - length 1000000 3.8990 ms/op 5.1340 ms/op 0.76
Array push - length 1000000 14.217 ms/op 23.221 ms/op 0.61
Array.get 0.33597 ns/op 0.29900 ns/op 1.12
Uint8Array.get 0.52297 ns/op 0.47273 ns/op 1.11
phase0 beforeProcessEpoch - 250000 vs - 7PWei 20.313 ms/op 25.246 ms/op 0.80
altair processEpoch - mainnet_e81889 317.84 ms/op 349.71 ms/op 0.91
mainnet_e81889 - altair beforeProcessEpoch 20.500 ms/op 20.955 ms/op 0.98
mainnet_e81889 - altair processJustificationAndFinalization 6.7740 us/op 6.4590 us/op 1.05
mainnet_e81889 - altair processInactivityUpdates 5.4145 ms/op 6.3697 ms/op 0.85
mainnet_e81889 - altair processRewardsAndPenalties 45.700 ms/op 53.290 ms/op 0.86
mainnet_e81889 - altair processRegistryUpdates 859.00 ns/op 882.00 ns/op 0.97
mainnet_e81889 - altair processSlashings 223.00 ns/op 277.00 ns/op 0.81
mainnet_e81889 - altair processEth1DataReset 215.00 ns/op 191.00 ns/op 1.13
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.3703 ms/op 1.2735 ms/op 1.08
mainnet_e81889 - altair processSlashingsReset 1.1220 us/op 1.1190 us/op 1.00
mainnet_e81889 - altair processRandaoMixesReset 1.5370 us/op 1.4000 us/op 1.10
mainnet_e81889 - altair processHistoricalRootsUpdate 234.00 ns/op 192.00 ns/op 1.22
mainnet_e81889 - altair processParticipationFlagUpdates 545.00 ns/op 778.00 ns/op 0.70
mainnet_e81889 - altair processSyncCommitteeUpdates 158.00 ns/op 162.00 ns/op 0.98
mainnet_e81889 - altair afterProcessEpoch 46.490 ms/op 48.025 ms/op 0.97
capella processEpoch - mainnet_e217614 954.42 ms/op 972.47 ms/op 0.98
mainnet_e217614 - capella beforeProcessEpoch 61.207 ms/op 68.121 ms/op 0.90
mainnet_e217614 - capella processJustificationAndFinalization 5.4780 us/op 7.5450 us/op 0.73
mainnet_e217614 - capella processInactivityUpdates 14.767 ms/op 16.699 ms/op 0.88
mainnet_e217614 - capella processRewardsAndPenalties 223.99 ms/op 213.50 ms/op 1.05
mainnet_e217614 - capella processRegistryUpdates 6.6800 us/op 6.9120 us/op 0.97
mainnet_e217614 - capella processSlashings 214.00 ns/op 211.00 ns/op 1.01
mainnet_e217614 - capella processEth1DataReset 186.00 ns/op 275.00 ns/op 0.68
mainnet_e217614 - capella processEffectiveBalanceUpdates 4.3333 ms/op 4.4888 ms/op 0.97
mainnet_e217614 - capella processSlashingsReset 1.0200 us/op 993.00 ns/op 1.03
mainnet_e217614 - capella processRandaoMixesReset 1.2050 us/op 1.4360 us/op 0.84
mainnet_e217614 - capella processHistoricalRootsUpdate 191.00 ns/op 246.00 ns/op 0.78
mainnet_e217614 - capella processParticipationFlagUpdates 629.00 ns/op 641.00 ns/op 0.98
mainnet_e217614 - capella afterProcessEpoch 121.43 ms/op 122.12 ms/op 0.99
phase0 processEpoch - mainnet_e58758 314.93 ms/op 492.38 ms/op 0.64
mainnet_e58758 - phase0 beforeProcessEpoch 75.863 ms/op 162.04 ms/op 0.47
mainnet_e58758 - phase0 processJustificationAndFinalization 5.7640 us/op 11.265 us/op 0.51
mainnet_e58758 - phase0 processRewardsAndPenalties 47.246 ms/op 55.570 ms/op 0.85
mainnet_e58758 - phase0 processRegistryUpdates 3.3700 us/op 4.3240 us/op 0.78
mainnet_e58758 - phase0 processSlashings 204.00 ns/op 235.00 ns/op 0.87
mainnet_e58758 - phase0 processEth1DataReset 195.00 ns/op 285.00 ns/op 0.68
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.2500 ms/op 5.5738 ms/op 0.22
mainnet_e58758 - phase0 processSlashingsReset 1.0590 us/op 1.9190 us/op 0.55
mainnet_e58758 - phase0 processRandaoMixesReset 1.4780 us/op 1.8220 us/op 0.81
mainnet_e58758 - phase0 processHistoricalRootsUpdate 191.00 ns/op 375.00 ns/op 0.51
mainnet_e58758 - phase0 processParticipationRecordUpdates 936.00 ns/op 1.3660 us/op 0.69
mainnet_e58758 - phase0 afterProcessEpoch 35.910 ms/op 41.264 ms/op 0.87
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.5290 ms/op 3.0523 ms/op 0.50
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.8865 ms/op 8.2429 ms/op 0.23
altair processInactivityUpdates - 250000 normalcase 23.696 ms/op 30.944 ms/op 0.77
altair processInactivityUpdates - 250000 worstcase 20.237 ms/op 32.820 ms/op 0.62
phase0 processRegistryUpdates - 250000 normalcase 8.7460 us/op 14.984 us/op 0.58
phase0 processRegistryUpdates - 250000 badcase_full_deposits 435.10 us/op 381.76 us/op 1.14
phase0 processRegistryUpdates - 250000 worstcase 0.5 127.43 ms/op 180.51 ms/op 0.71
altair processRewardsAndPenalties - 250000 normalcase 39.105 ms/op 31.051 ms/op 1.26
altair processRewardsAndPenalties - 250000 worstcase 37.096 ms/op 36.066 ms/op 1.03
phase0 getAttestationDeltas - 250000 normalcase 6.8506 ms/op 9.3311 ms/op 0.73
phase0 getAttestationDeltas - 250000 worstcase 6.7585 ms/op 18.014 ms/op 0.38
phase0 processSlashings - 250000 worstcase 121.98 us/op 139.77 us/op 0.87
altair processSyncCommitteeUpdates - 250000 10.954 ms/op 14.042 ms/op 0.78
BeaconState.hashTreeRoot - No change 235.00 ns/op 284.00 ns/op 0.83
BeaconState.hashTreeRoot - 1 full validator 82.031 us/op 115.86 us/op 0.71
BeaconState.hashTreeRoot - 32 full validator 952.61 us/op 1.7794 ms/op 0.54
BeaconState.hashTreeRoot - 512 full validator 12.137 ms/op 16.660 ms/op 0.73
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 115.57 us/op 182.78 us/op 0.63
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 2.0048 ms/op 2.2270 ms/op 0.90
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 26.411 ms/op 36.200 ms/op 0.73
BeaconState.hashTreeRoot - 1 balances 91.419 us/op 130.12 us/op 0.70
BeaconState.hashTreeRoot - 32 balances 942.72 us/op 1.3724 ms/op 0.69
BeaconState.hashTreeRoot - 512 balances 9.9243 ms/op 12.986 ms/op 0.76
BeaconState.hashTreeRoot - 250000 balances 180.89 ms/op 241.91 ms/op 0.75
aggregationBits - 2048 els - zipIndexesInBitList 24.585 us/op 30.863 us/op 0.80
byteArrayEquals 32 64.445 ns/op 58.796 ns/op 1.10
Buffer.compare 32 21.064 ns/op 18.873 ns/op 1.12
byteArrayEquals 1024 1.7968 us/op 1.6989 us/op 1.06
Buffer.compare 1024 28.657 ns/op 28.120 ns/op 1.02
byteArrayEquals 16384 28.284 us/op 28.138 us/op 1.01
Buffer.compare 16384 197.31 ns/op 236.54 ns/op 0.83
byteArrayEquals 123687377 213.05 ms/op 220.56 ms/op 0.97
Buffer.compare 123687377 9.2550 ms/op 13.008 ms/op 0.71
byteArrayEquals 32 - diff last byte 62.010 ns/op 83.590 ns/op 0.74
Buffer.compare 32 - diff last byte 20.656 ns/op 18.251 ns/op 1.13
byteArrayEquals 1024 - diff last byte 1.8602 us/op 2.4627 us/op 0.76
Buffer.compare 1024 - diff last byte 33.189 ns/op 28.200 ns/op 1.18
byteArrayEquals 16384 - diff last byte 29.536 us/op 27.403 us/op 1.08
Buffer.compare 16384 - diff last byte 215.58 ns/op 294.11 ns/op 0.73
byteArrayEquals 123687377 - diff last byte 228.64 ms/op 214.94 ms/op 1.06
Buffer.compare 123687377 - diff last byte 7.1176 ms/op 13.621 ms/op 0.52
byteArrayEquals 32 - random bytes 6.0530 ns/op 6.1750 ns/op 0.98
Buffer.compare 32 - random bytes 20.874 ns/op 27.152 ns/op 0.77
byteArrayEquals 1024 - random bytes 6.0140 ns/op 7.5240 ns/op 0.80
Buffer.compare 1024 - random bytes 21.182 ns/op 18.529 ns/op 1.14
byteArrayEquals 16384 - random bytes 5.8680 ns/op 5.4940 ns/op 1.07
Buffer.compare 16384 - random bytes 19.986 ns/op 22.303 ns/op 0.90
byteArrayEquals 123687377 - random bytes 7.9400 ns/op 8.5900 ns/op 0.92
Buffer.compare 123687377 - random bytes 21.830 ns/op 21.740 ns/op 1.00
regular array get 100000 times 42.669 us/op 65.533 us/op 0.65
wrappedArray get 100000 times 37.246 us/op 55.239 us/op 0.67
arrayWithProxy get 100000 times 14.392 ms/op 13.978 ms/op 1.03
ssz.Root.equals 53.608 ns/op 49.778 ns/op 1.08
byteArrayEquals 52.369 ns/op 50.593 ns/op 1.04
Buffer.compare 12.344 ns/op 11.366 ns/op 1.09
processSlot - 1 slots 12.773 us/op 12.373 us/op 1.03
processSlot - 32 slots 2.1655 ms/op 2.7242 ms/op 0.79
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 3.1883 ms/op 5.9885 ms/op 0.53
getCommitteeAssignments - req 1 vs - 250000 vc 2.4552 ms/op 2.3472 ms/op 1.05
getCommitteeAssignments - req 100 vs - 250000 vc 4.6862 ms/op 4.8238 ms/op 0.97
getCommitteeAssignments - req 1000 vs - 250000 vc 4.6791 ms/op 5.0232 ms/op 0.93
findModifiedValidators - 10000 modified validators 774.28 ms/op 1.0746 s/op 0.72
findModifiedValidators - 1000 modified validators 694.98 ms/op 868.45 ms/op 0.80
findModifiedValidators - 100 modified validators 185.62 ms/op 307.46 ms/op 0.60
findModifiedValidators - 10 modified validators 183.75 ms/op 278.61 ms/op 0.66
findModifiedValidators - 1 modified validators 196.25 ms/op 324.27 ms/op 0.61
findModifiedValidators - no difference 158.79 ms/op 339.05 ms/op 0.47
compare ViewDUs 6.2106 s/op 6.7342 s/op 0.92
compare each validator Uint8Array 1.1340 s/op 1.6136 s/op 0.70
compare ViewDU to Uint8Array 979.04 ms/op 1.0498 s/op 0.93
migrate state 1000000 validators, 24 modified, 0 new 940.20 ms/op 846.46 ms/op 1.11
migrate state 1000000 validators, 1700 modified, 1000 new 1.1976 s/op 1.1740 s/op 1.02
migrate state 1000000 validators, 3400 modified, 2000 new 1.7424 s/op 1.3826 s/op 1.26
migrate state 1500000 validators, 24 modified, 0 new 1.1371 s/op 960.77 ms/op 1.18
migrate state 1500000 validators, 1700 modified, 1000 new 1.5625 s/op 1.3199 s/op 1.18
migrate state 1500000 validators, 3400 modified, 2000 new 1.8232 s/op 1.7433 s/op 1.05
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 6.2800 ns/op 5.4900 ns/op 1.14
state getBlockRootAtSlot - 250000 vs - 7PWei 890.26 ns/op 589.74 ns/op 1.51
naive computeProposerIndex 100000 validators 55.959 ms/op 66.854 ms/op 0.84
computeProposerIndex 100000 validators 1.5298 ms/op 1.8039 ms/op 0.85
naiveGetNextSyncCommitteeIndices 1000 validators 8.0010 s/op 10.079 s/op 0.79
getNextSyncCommitteeIndices 1000 validators 126.98 ms/op 172.71 ms/op 0.74
naiveGetNextSyncCommitteeIndices 10000 validators 7.2919 s/op 12.085 s/op 0.60
getNextSyncCommitteeIndices 10000 validators 117.01 ms/op 355.14 ms/op 0.33
naiveGetNextSyncCommitteeIndices 100000 validators 8.5916 s/op 11.982 s/op 0.72
getNextSyncCommitteeIndices 100000 validators 117.37 ms/op 206.37 ms/op 0.57
naive computeShuffledIndex 100000 validators 24.179 s/op 36.909 s/op 0.66
cached computeShuffledIndex 100000 validators 606.86 ms/op 700.08 ms/op 0.87
naive computeShuffledIndex 2000000 validators 510.93 s/op 773.51 s/op 0.66
cached computeShuffledIndex 2000000 validators 37.478 s/op 62.927 s/op 0.60
computeProposers - vc 250000 684.44 us/op 653.47 us/op 1.05
computeEpochShuffling - vc 250000 44.280 ms/op 44.837 ms/op 0.99
getNextSyncCommittee - vc 250000 10.918 ms/op 12.381 ms/op 0.88
computeSigningRoot for AttestationData 24.517 us/op 29.541 us/op 0.83
hash AttestationData serialized data then Buffer.toString(base64) 1.7231 us/op 1.7536 us/op 0.98
toHexString serialized data 1.3229 us/op 1.4320 us/op 0.92
Buffer.toString(base64) 173.95 ns/op 150.48 ns/op 1.16
nodejs block root to RootHex using toHex 144.50 ns/op 148.37 ns/op 0.97
nodejs block root to RootHex using toRootHex 89.742 ns/op 87.612 ns/op 1.02
browser block root to RootHex using the deprecated toHexString 227.69 ns/op 242.15 ns/op 0.94
browser block root to RootHex using toHex 183.50 ns/op 184.14 ns/op 1.00
browser block root to RootHex using toRootHex 179.12 ns/op 168.18 ns/op 1.07

by benchmarkbot/action

Copy link

codecov bot commented Aug 26, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 54.22%. Comparing base (923176c) to head (37314a4).
⚠️ Report is 1 commits behind head on unstable.

Additional details and impacted files
@@             Coverage Diff              @@
##           unstable    #8072      +/-   ##
============================================
- Coverage     54.25%   54.22%   -0.03%     
============================================
  Files           847      847              
  Lines         63852    63817      -35     
  Branches       4835     4830       -5     
============================================
- Hits          34640    34605      -35     
  Misses        29135    29135              
  Partials         77       77              
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

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.

1 participant