lodestar icon indicating copy to clipboard operation
lodestar copied to clipboard

chore: add eslint rule to prevent unused expressions

Open nflaig opened this issue 1 year ago • 2 comments

Motivation

Closes https://github.com/ChainSafe/lodestar/issues/5505

Description

Add eslint rule to prevent unused expressions

nflaig avatar Feb 17 '24 12:02 nflaig

:warning: Performance Alert :warning:

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: 29fe65135518a04382640916ccc279a739cdcf1e Previous: 8959bda79bd3d86610efd88c99af7b1f7b4207f0 Ratio
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 166.55 us/op 52.713 us/op 3.16
Object set x1000 107.20 ns/op 25.506 ns/op 4.20
Map set x1000 74.460 ns/op 18.433 ns/op 4.04
fastMsgIdFn sha256 / 1000 bytes 21.135 us/op 5.9550 us/op 3.55
fastMsgIdFn h32 xxhash / 1000 bytes 1.3670 us/op 446.00 ns/op 3.07
forkChoice updateHead vc 600000 bc 64 eq 300000 55.427 ms/op 12.158 ms/op 4.56
altair processAttestation - setStatus - 1/6 committees join 250.22 us/op 75.732 us/op 3.30
altair processEth1Data - 250000 vs - 7PWei normalcase 1.4741 ms/op 304.15 us/op 4.85
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 27.159 us/op 8.3040 us/op 3.27
Buffer.compare 123687377 12.001 ms/op 3.8142 ms/op 3.15
Full benchmark results
Benchmark suite Current: 29fe65135518a04382640916ccc279a739cdcf1e Previous: 8959bda79bd3d86610efd88c99af7b1f7b4207f0 Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 876.13 us/op 386.77 us/op 2.27
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 166.55 us/op 52.713 us/op 3.16
BLS verify - blst-native 1.5002 ms/op 1.1065 ms/op 1.36
BLS verifyMultipleSignatures 3 - blst-native 3.1914 ms/op 2.4125 ms/op 1.32
BLS verifyMultipleSignatures 8 - blst-native 6.9637 ms/op 5.2622 ms/op 1.32
BLS verifyMultipleSignatures 32 - blst-native 25.305 ms/op 19.393 ms/op 1.30
BLS verifyMultipleSignatures 64 - blst-native 51.545 ms/op 38.213 ms/op 1.35
BLS verifyMultipleSignatures 128 - blst-native 105.46 ms/op 75.454 ms/op 1.40
BLS deserializing 10000 signatures 1.0613 s/op 797.14 ms/op 1.33
BLS deserializing 100000 signatures 10.379 s/op 8.2573 s/op 1.26
BLS verifyMultipleSignatures - same message - 3 - blst-native 1.6982 ms/op 1.1121 ms/op 1.53
BLS verifyMultipleSignatures - same message - 8 - blst-native 2.0284 ms/op 1.2572 ms/op 1.61
BLS verifyMultipleSignatures - same message - 32 - blst-native 2.9984 ms/op 1.9712 ms/op 1.52
BLS verifyMultipleSignatures - same message - 64 - blst-native 4.2556 ms/op 3.7683 ms/op 1.13
BLS verifyMultipleSignatures - same message - 128 - blst-native 7.2848 ms/op 4.8938 ms/op 1.49
BLS aggregatePubkeys 32 - blst-native 32.541 us/op 22.071 us/op 1.47
BLS aggregatePubkeys 128 - blst-native 118.66 us/op 86.402 us/op 1.37
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 77.528 ms/op 45.012 ms/op 1.72
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 70.843 ms/op 42.561 ms/op 1.66
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 48.523 ms/op 25.926 ms/op 1.87
getSlashingsAndExits - default max 336.76 us/op 223.06 us/op 1.51
getSlashingsAndExits - 2k 742.95 us/op 350.91 us/op 2.12
proposeBlockBody type=full, size=empty 6.5753 ms/op 3.7844 ms/op 1.74
isKnown best case - 1 super set check 624.00 ns/op 474.00 ns/op 1.32
isKnown normal case - 2 super set checks 628.00 ns/op 389.00 ns/op 1.61
isKnown worse case - 16 super set checks 612.00 ns/op 340.00 ns/op 1.80
CheckpointStateCache - add get delete 6.7290 us/op 3.7860 us/op 1.78
validate api signedAggregateAndProof - struct 3.1509 ms/op 2.3719 ms/op 1.33
validate gossip signedAggregateAndProof - struct 3.2581 ms/op 2.2532 ms/op 1.45
validate gossip attestation - vc 640000 1.5072 ms/op 1.1302 ms/op 1.33
batch validate gossip attestation - vc 640000 - chunk 32 199.10 us/op 138.19 us/op 1.44
batch validate gossip attestation - vc 640000 - chunk 64 175.47 us/op 128.71 us/op 1.36
batch validate gossip attestation - vc 640000 - chunk 128 178.71 us/op 124.56 us/op 1.43
batch validate gossip attestation - vc 640000 - chunk 256 194.16 us/op 114.03 us/op 1.70
pickEth1Vote - no votes 2.2389 ms/op 874.46 us/op 2.56
pickEth1Vote - max votes 23.060 ms/op 9.2615 ms/op 2.49
pickEth1Vote - Eth1Data hashTreeRoot value x2048 31.840 ms/op 21.090 ms/op 1.51
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 46.705 ms/op 26.025 ms/op 1.79
pickEth1Vote - Eth1Data fastSerialize value x2048 1.0461 ms/op 412.58 us/op 2.54
pickEth1Vote - Eth1Data fastSerialize tree x2048 12.054 ms/op 5.8079 ms/op 2.08
bytes32 toHexString 1.0850 us/op 458.00 ns/op 2.37
bytes32 Buffer.toString(hex) 349.00 ns/op 311.00 ns/op 1.12
bytes32 Buffer.toString(hex) from Uint8Array 840.00 ns/op 447.00 ns/op 1.88
bytes32 Buffer.toString(hex) + 0x 427.00 ns/op 309.00 ns/op 1.38
Object access 1 prop 0.29400 ns/op 0.22000 ns/op 1.34
Map access 1 prop 0.19600 ns/op 0.20700 ns/op 0.95
Object get x1000 10.124 ns/op 4.8920 ns/op 2.07
Map get x1000 1.0650 ns/op 0.75400 ns/op 1.41
Object set x1000 107.20 ns/op 25.506 ns/op 4.20
Map set x1000 74.460 ns/op 18.433 ns/op 4.04
Return object 10000 times 0.35390 ns/op 0.22100 ns/op 1.60
Throw Error 10000 times 5.3082 us/op 2.6150 us/op 2.03
fastMsgIdFn sha256 / 200 bytes 4.3610 us/op 1.9720 us/op 2.21
fastMsgIdFn h32 xxhash / 200 bytes 520.00 ns/op 322.00 ns/op 1.61
fastMsgIdFn h64 xxhash / 200 bytes 637.00 ns/op 340.00 ns/op 1.87
fastMsgIdFn sha256 / 1000 bytes 21.135 us/op 5.9550 us/op 3.55
fastMsgIdFn h32 xxhash / 1000 bytes 1.3670 us/op 446.00 ns/op 3.07
fastMsgIdFn h64 xxhash / 1000 bytes 1.2600 us/op 427.00 ns/op 2.95
fastMsgIdFn sha256 / 10000 bytes 127.73 us/op 50.483 us/op 2.53
fastMsgIdFn h32 xxhash / 10000 bytes 3.4360 us/op 1.7950 us/op 1.91
fastMsgIdFn h64 xxhash / 10000 bytes 2.1040 us/op 1.2490 us/op 1.68
send data - 1000 256B messages 29.130 ms/op 13.509 ms/op 2.16
send data - 1000 512B messages 38.427 ms/op 16.686 ms/op 2.30
send data - 1000 1024B messages 67.546 ms/op 31.195 ms/op 2.17
send data - 1000 1200B messages 76.527 ms/op 30.750 ms/op 2.49
send data - 1000 2048B messages 87.816 ms/op 38.646 ms/op 2.27
send data - 1000 4096B messages 76.141 ms/op 38.966 ms/op 1.95
send data - 1000 16384B messages 195.78 ms/op 92.689 ms/op 2.11
send data - 1000 65536B messages 739.55 ms/op 456.11 ms/op 1.62
enrSubnets - fastDeserialize 64 bits 2.3140 us/op 1.0360 us/op 2.23
enrSubnets - ssz BitVector 64 bits 660.00 ns/op 502.00 ns/op 1.31
enrSubnets - fastDeserialize 4 bits 285.00 ns/op 254.00 ns/op 1.12
enrSubnets - ssz BitVector 4 bits 717.00 ns/op 515.00 ns/op 1.39
prioritizePeers score -10:0 att 32-0.1 sync 2-0 165.76 us/op 103.95 us/op 1.59
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 193.28 us/op 114.04 us/op 1.69
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 247.88 us/op 146.76 us/op 1.69
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 450.53 us/op 260.80 us/op 1.73
prioritizePeers score 0:0 att 64-1 sync 4-1 577.49 us/op 277.13 us/op 2.08
array of 16000 items push then shift 1.9862 us/op 1.3783 us/op 1.44
LinkedList of 16000 items push then shift 13.657 ns/op 8.5800 ns/op 1.59
array of 16000 items push then pop 172.60 ns/op 113.41 ns/op 1.52
LinkedList of 16000 items push then pop 13.457 ns/op 7.7260 ns/op 1.74
array of 24000 items push then shift 3.0381 us/op 1.8896 us/op 1.61
LinkedList of 24000 items push then shift 14.883 ns/op 7.5310 ns/op 1.98
array of 24000 items push then pop 236.07 ns/op 150.20 ns/op 1.57
LinkedList of 24000 items push then pop 11.928 ns/op 6.0850 ns/op 1.96
intersect bitArray bitLen 8 7.5530 ns/op 4.9080 ns/op 1.54
intersect array and set length 8 128.36 ns/op 50.458 ns/op 2.54
intersect bitArray bitLen 128 42.583 ns/op 29.444 ns/op 1.45
intersect array and set length 128 1.5510 us/op 696.32 ns/op 2.23
bitArray.getTrueBitIndexes() bitLen 128 2.6330 us/op 1.3890 us/op 1.90
bitArray.getTrueBitIndexes() bitLen 248 4.7130 us/op 2.9850 us/op 1.58
bitArray.getTrueBitIndexes() bitLen 512 8.9570 us/op 6.3790 us/op 1.40
Buffer.concat 32 items 1.3600 us/op 1.0400 us/op 1.31
Uint8Array.set 32 items 3.0870 us/op 2.3270 us/op 1.33
Set add up to 64 items then delete first 6.7430 us/op 2.4738 us/op 2.73
OrderedSet add up to 64 items then delete first 9.4737 us/op 3.8685 us/op 2.45
Set add up to 64 items then delete last 6.9811 us/op 2.7309 us/op 2.56
OrderedSet add up to 64 items then delete last 9.8245 us/op 3.7934 us/op 2.59
Set add up to 64 items then delete middle 7.1311 us/op 2.3774 us/op 3.00
OrderedSet add up to 64 items then delete middle 10.479 us/op 5.2910 us/op 1.98
Set add up to 128 items then delete first 14.201 us/op 5.0557 us/op 2.81
OrderedSet add up to 128 items then delete first 19.236 us/op 8.5599 us/op 2.25
Set add up to 128 items then delete last 13.772 us/op 5.4318 us/op 2.54
OrderedSet add up to 128 items then delete last 17.943 us/op 8.5114 us/op 2.11
Set add up to 128 items then delete middle 13.751 us/op 5.1232 us/op 2.68
OrderedSet add up to 128 items then delete middle 25.439 us/op 13.268 us/op 1.92
Set add up to 256 items then delete first 27.115 us/op 11.025 us/op 2.46
OrderedSet add up to 256 items then delete first 38.856 us/op 16.499 us/op 2.36
Set add up to 256 items then delete last 26.778 us/op 10.382 us/op 2.58
OrderedSet add up to 256 items then delete last 36.961 us/op 15.686 us/op 2.36
Set add up to 256 items then delete middle 26.618 us/op 10.915 us/op 2.44
OrderedSet add up to 256 items then delete middle 63.579 us/op 36.435 us/op 1.74
transfer serialized Status (84 B) 2.8240 us/op 1.5920 us/op 1.77
copy serialized Status (84 B) 2.0060 us/op 1.3100 us/op 1.53
transfer serialized SignedVoluntaryExit (112 B) 2.6830 us/op 1.7400 us/op 1.54
copy serialized SignedVoluntaryExit (112 B) 1.9260 us/op 1.3480 us/op 1.43
transfer serialized ProposerSlashing (416 B) 3.0050 us/op 2.3590 us/op 1.27
copy serialized ProposerSlashing (416 B) 2.8250 us/op 2.4810 us/op 1.14
transfer serialized Attestation (485 B) 3.6780 us/op 2.7570 us/op 1.33
copy serialized Attestation (485 B) 3.4760 us/op 2.6620 us/op 1.31
transfer serialized AttesterSlashing (33232 B) 3.8540 us/op 2.8950 us/op 1.33
copy serialized AttesterSlashing (33232 B) 15.181 us/op 10.299 us/op 1.47
transfer serialized Small SignedBeaconBlock (128000 B) 7.9670 us/op 2.8030 us/op 2.84
copy serialized Small SignedBeaconBlock (128000 B) 43.703 us/op 11.933 us/op 3.66
transfer serialized Avg SignedBeaconBlock (200000 B) 8.2370 us/op 2.4200 us/op 3.40
copy serialized Avg SignedBeaconBlock (200000 B) 73.909 us/op 56.162 us/op 1.32
transfer serialized BlobsSidecar (524380 B) 9.3680 us/op 2.6150 us/op 3.58
copy serialized BlobsSidecar (524380 B) 201.80 us/op 75.719 us/op 2.67
transfer serialized Big SignedBeaconBlock (1000000 B) 9.3820 us/op 2.6830 us/op 3.50
copy serialized Big SignedBeaconBlock (1000000 B) 369.02 us/op 292.08 us/op 1.26
pass gossip attestations to forkchoice per slot 4.4741 ms/op 2.9304 ms/op 1.53
forkChoice updateHead vc 100000 bc 64 eq 0 777.84 us/op 492.15 us/op 1.58
forkChoice updateHead vc 600000 bc 64 eq 0 6.9255 ms/op 3.2767 ms/op 2.11
forkChoice updateHead vc 1000000 bc 64 eq 0 9.2159 ms/op 6.3741 ms/op 1.45
forkChoice updateHead vc 600000 bc 320 eq 0 5.3851 ms/op 2.6594 ms/op 2.02
forkChoice updateHead vc 600000 bc 1200 eq 0 5.4297 ms/op 2.8068 ms/op 1.93
forkChoice updateHead vc 600000 bc 7200 eq 0 6.4534 ms/op 3.5648 ms/op 1.81
forkChoice updateHead vc 600000 bc 64 eq 1000 12.475 ms/op 9.8837 ms/op 1.26
forkChoice updateHead vc 600000 bc 64 eq 10000 13.789 ms/op 9.6663 ms/op 1.43
forkChoice updateHead vc 600000 bc 64 eq 300000 55.427 ms/op 12.158 ms/op 4.56
computeDeltas 500000 validators 300 proto nodes 7.7419 ms/op 3.3531 ms/op 2.31
computeDeltas 500000 validators 1200 proto nodes 7.9778 ms/op 3.3802 ms/op 2.36
computeDeltas 500000 validators 7200 proto nodes 8.5763 ms/op 3.2492 ms/op 2.64
computeDeltas 750000 validators 300 proto nodes 14.037 ms/op 5.4233 ms/op 2.59
computeDeltas 750000 validators 1200 proto nodes 13.377 ms/op 5.1672 ms/op 2.59
computeDeltas 750000 validators 7200 proto nodes 14.215 ms/op 5.5880 ms/op 2.54
computeDeltas 1400000 validators 300 proto nodes 24.860 ms/op 10.850 ms/op 2.29
computeDeltas 1400000 validators 1200 proto nodes 23.427 ms/op 10.587 ms/op 2.21
computeDeltas 1400000 validators 7200 proto nodes 22.684 ms/op 9.3930 ms/op 2.42
computeDeltas 2100000 validators 300 proto nodes 32.081 ms/op 15.580 ms/op 2.06
computeDeltas 2100000 validators 1200 proto nodes 32.155 ms/op 16.707 ms/op 1.92
computeDeltas 2100000 validators 7200 proto nodes 31.899 ms/op 14.448 ms/op 2.21
altair processAttestation - 250000 vs - 7PWei normalcase 3.8334 ms/op 1.5358 ms/op 2.50
altair processAttestation - 250000 vs - 7PWei worstcase 5.0485 ms/op 2.6276 ms/op 1.92
altair processAttestation - setStatus - 1/6 committees join 250.22 us/op 75.732 us/op 3.30
altair processAttestation - setStatus - 1/3 committees join 433.13 us/op 158.53 us/op 2.73
altair processAttestation - setStatus - 1/2 committees join 615.26 us/op 214.24 us/op 2.87
altair processAttestation - setStatus - 2/3 committees join 821.85 us/op 284.28 us/op 2.89
altair processAttestation - setStatus - 4/5 committees join 981.15 us/op 446.22 us/op 2.20
altair processAttestation - setStatus - 100% committees join 1.1685 ms/op 555.52 us/op 2.10
altair processBlock - 250000 vs - 7PWei normalcase 17.051 ms/op 8.8400 ms/op 1.93
altair processBlock - 250000 vs - 7PWei normalcase hashState 49.352 ms/op 23.593 ms/op 2.09
altair processBlock - 250000 vs - 7PWei worstcase 65.937 ms/op 28.896 ms/op 2.28
altair processBlock - 250000 vs - 7PWei worstcase hashState 192.57 ms/op 73.332 ms/op 2.63
phase0 processBlock - 250000 vs - 7PWei normalcase 6.1394 ms/op 2.5752 ms/op 2.38
phase0 processBlock - 250000 vs - 7PWei worstcase 49.253 ms/op 24.642 ms/op 2.00
altair processEth1Data - 250000 vs - 7PWei normalcase 1.4741 ms/op 304.15 us/op 4.85
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 29.824 us/op 14.982 us/op 1.99
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 97.555 us/op 57.881 us/op 1.69
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 47.776 us/op 21.257 us/op 2.25
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 27.159 us/op 8.3040 us/op 3.27
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 265.91 us/op 155.26 us/op 1.71
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 2.0204 ms/op 1.0416 ms/op 1.94
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 2.5888 ms/op 1.4487 ms/op 1.79
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 2.5064 ms/op 1.0319 ms/op 2.43
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 6.3028 ms/op 3.0478 ms/op 2.07
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 3.8001 ms/op 1.5104 ms/op 2.52
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 8.3537 ms/op 5.4104 ms/op 1.54
Tree 40 250000 create 530.10 ms/op 348.45 ms/op 1.52
Tree 40 250000 get(125000) 239.83 ns/op 122.11 ns/op 1.96
Tree 40 250000 set(125000) 1.8860 us/op 841.70 ns/op 2.24
Tree 40 250000 toArray() 34.164 ms/op 25.457 ms/op 1.34
Tree 40 250000 iterate all - toArray() + loop 33.690 ms/op 26.073 ms/op 1.29
Tree 40 250000 iterate all - get(i) 94.982 ms/op 54.605 ms/op 1.74
MutableVector 250000 create 20.578 ms/op 12.246 ms/op 1.68
MutableVector 250000 get(125000) 7.4170 ns/op 5.7150 ns/op 1.30
MutableVector 250000 set(125000) 409.97 ns/op 221.35 ns/op 1.85
MutableVector 250000 toArray() 4.9393 ms/op 2.4479 ms/op 2.02
MutableVector 250000 iterate all - toArray() + loop 4.7515 ms/op 2.4492 ms/op 1.94
MutableVector 250000 iterate all - get(i) 1.8277 ms/op 1.3476 ms/op 1.36
Array 250000 create 3.9892 ms/op 2.3086 ms/op 1.73
Array 250000 clone - spread 1.4651 ms/op 1.1861 ms/op 1.24
Array 250000 get(125000) 1.3290 ns/op 1.0660 ns/op 1.25
Array 250000 set(125000) 5.5410 ns/op 2.0970 ns/op 2.64
Array 250000 iterate all - loop 187.70 us/op 155.19 us/op 1.21
effectiveBalanceIncrements clone Uint8Array 300000 66.110 us/op 53.953 us/op 1.23
effectiveBalanceIncrements clone MutableVector 300000 449.00 ns/op 906.00 ns/op 0.50
effectiveBalanceIncrements rw all Uint8Array 300000 237.43 us/op 184.71 us/op 1.29
effectiveBalanceIncrements rw all MutableVector 300000 168.39 ms/op 113.57 ms/op 1.48
phase0 afterProcessEpoch - 250000 vs - 7PWei 135.72 ms/op 78.605 ms/op 1.73
phase0 beforeProcessEpoch - 250000 vs - 7PWei 65.156 ms/op 35.742 ms/op 1.82
altair processEpoch - mainnet_e81889 617.20 ms/op 472.21 ms/op 1.31
mainnet_e81889 - altair beforeProcessEpoch 138.60 ms/op 84.059 ms/op 1.65
mainnet_e81889 - altair processJustificationAndFinalization 30.434 us/op 14.334 us/op 2.12
mainnet_e81889 - altair processInactivityUpdates 11.921 ms/op 3.8011 ms/op 3.14
mainnet_e81889 - altair processRewardsAndPenalties 107.78 ms/op 54.907 ms/op 1.96
mainnet_e81889 - altair processRegistryUpdates 8.6940 us/op 2.1410 us/op 4.06
mainnet_e81889 - altair processSlashings 1.0590 us/op 641.00 ns/op 1.65
mainnet_e81889 - altair processEth1DataReset 799.00 ns/op 720.00 ns/op 1.11
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.6135 ms/op 1.0622 ms/op 1.52
mainnet_e81889 - altair processSlashingsReset 7.6140 us/op 2.8640 us/op 2.66
mainnet_e81889 - altair processRandaoMixesReset 11.643 us/op 4.4560 us/op 2.61
mainnet_e81889 - altair processHistoricalRootsUpdate 1.7560 us/op 1.0610 us/op 1.66
mainnet_e81889 - altair processParticipationFlagUpdates 5.3190 us/op 2.0930 us/op 2.54
mainnet_e81889 - altair processSyncCommitteeUpdates 2.1630 us/op 800.00 ns/op 2.70
mainnet_e81889 - altair afterProcessEpoch 159.77 ms/op 80.468 ms/op 1.99
capella processEpoch - mainnet_e217614 2.4801 s/op 2.2908 s/op 1.08
mainnet_e217614 - capella beforeProcessEpoch 562.40 ms/op 493.64 ms/op 1.14
mainnet_e217614 - capella processJustificationAndFinalization 22.875 us/op 11.707 us/op 1.95
mainnet_e217614 - capella processInactivityUpdates 23.910 ms/op 16.809 ms/op 1.42
mainnet_e217614 - capella processRewardsAndPenalties 497.12 ms/op 408.24 ms/op 1.22
mainnet_e217614 - capella processRegistryUpdates 31.264 us/op 26.900 us/op 1.16
mainnet_e217614 - capella processSlashings 831.00 ns/op 834.00 ns/op 1.00
mainnet_e217614 - capella processEth1DataReset 933.00 ns/op 607.00 ns/op 1.54
mainnet_e217614 - capella processEffectiveBalanceUpdates 6.5310 ms/op 3.5460 ms/op 1.84
mainnet_e217614 - capella processSlashingsReset 5.7360 us/op 4.0820 us/op 1.41
mainnet_e217614 - capella processRandaoMixesReset 6.2880 us/op 6.3540 us/op 0.99
mainnet_e217614 - capella processHistoricalRootsUpdate 663.00 ns/op 740.00 ns/op 0.90
mainnet_e217614 - capella processParticipationFlagUpdates 1.7550 us/op 3.4750 us/op 0.51
mainnet_e217614 - capella afterProcessEpoch 320.88 ms/op 249.28 ms/op 1.29
phase0 processEpoch - mainnet_e58758 790.64 ms/op 481.82 ms/op 1.64
mainnet_e58758 - phase0 beforeProcessEpoch 197.73 ms/op 155.49 ms/op 1.27
mainnet_e58758 - phase0 processJustificationAndFinalization 24.139 us/op 17.263 us/op 1.40
mainnet_e58758 - phase0 processRewardsAndPenalties 47.186 ms/op 48.699 ms/op 0.97
mainnet_e58758 - phase0 processRegistryUpdates 17.828 us/op 10.676 us/op 1.67
mainnet_e58758 - phase0 processSlashings 1.5140 us/op 650.00 ns/op 2.33
mainnet_e58758 - phase0 processEth1DataReset 827.00 ns/op 918.00 ns/op 0.90
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.4301 ms/op 1.2024 ms/op 1.19
mainnet_e58758 - phase0 processSlashingsReset 7.1760 us/op 3.3100 us/op 2.17
mainnet_e58758 - phase0 processRandaoMixesReset 10.479 us/op 4.5170 us/op 2.32
mainnet_e58758 - phase0 processHistoricalRootsUpdate 912.00 ns/op 808.00 ns/op 1.13
mainnet_e58758 - phase0 processParticipationRecordUpdates 10.252 us/op 5.0270 us/op 2.04
mainnet_e58758 - phase0 afterProcessEpoch 118.54 ms/op 69.275 ms/op 1.71
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.6187 ms/op 1.1321 ms/op 1.43
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.7312 ms/op 1.1581 ms/op 1.49
altair processInactivityUpdates - 250000 normalcase 33.182 ms/op 24.925 ms/op 1.33
altair processInactivityUpdates - 250000 worstcase 31.999 ms/op 25.949 ms/op 1.23
phase0 processRegistryUpdates - 250000 normalcase 17.546 us/op 11.290 us/op 1.55
phase0 processRegistryUpdates - 250000 badcase_full_deposits 543.92 us/op 454.13 us/op 1.20
phase0 processRegistryUpdates - 250000 worstcase 0.5 172.61 ms/op 112.40 ms/op 1.54
altair processRewardsAndPenalties - 250000 normalcase 52.047 ms/op 45.606 ms/op 1.14
altair processRewardsAndPenalties - 250000 worstcase 75.742 ms/op 55.275 ms/op 1.37
phase0 getAttestationDeltas - 250000 normalcase 10.883 ms/op 6.6142 ms/op 1.65
phase0 getAttestationDeltas - 250000 worstcase 14.314 ms/op 7.1375 ms/op 2.01
phase0 processSlashings - 250000 worstcase 126.87 us/op 90.993 us/op 1.39
altair processSyncCommitteeUpdates - 250000 194.07 ms/op 114.25 ms/op 1.70
BeaconState.hashTreeRoot - No change 836.00 ns/op 400.00 ns/op 2.09
BeaconState.hashTreeRoot - 1 full validator 166.92 us/op 99.395 us/op 1.68
BeaconState.hashTreeRoot - 32 full validator 2.1611 ms/op 1.2990 ms/op 1.66
BeaconState.hashTreeRoot - 512 full validator 21.343 ms/op 11.733 ms/op 1.82
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 208.18 us/op 115.72 us/op 1.80
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 3.0263 ms/op 1.5978 ms/op 1.89
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 37.173 ms/op 29.077 ms/op 1.28
BeaconState.hashTreeRoot - 1 balances 157.50 us/op 105.56 us/op 1.49
BeaconState.hashTreeRoot - 32 balances 1.4267 ms/op 1.0607 ms/op 1.35
BeaconState.hashTreeRoot - 512 balances 14.494 ms/op 10.568 ms/op 1.37
BeaconState.hashTreeRoot - 250000 balances 267.64 ms/op 198.88 ms/op 1.35
aggregationBits - 2048 els - zipIndexesInBitList 38.054 us/op 10.883 us/op 3.50
byteArrayEquals 32 84.410 ns/op 65.235 ns/op 1.29
Buffer.compare 32 62.039 ns/op 38.035 ns/op 1.63
byteArrayEquals 1024 2.3282 us/op 1.7410 us/op 1.34
Buffer.compare 1024 84.179 ns/op 44.052 ns/op 1.91
byteArrayEquals 16384 36.811 us/op 27.811 us/op 1.32
Buffer.compare 16384 286.48 ns/op 227.19 ns/op 1.26
byteArrayEquals 123687377 302.61 ms/op 207.50 ms/op 1.46
Buffer.compare 123687377 12.001 ms/op 3.8142 ms/op 3.15
byteArrayEquals 32 - diff last byte 95.554 ns/op 61.457 ns/op 1.55
Buffer.compare 32 - diff last byte 70.180 ns/op 37.816 ns/op 1.86
byteArrayEquals 1024 - diff last byte 2.2975 us/op 1.7162 us/op 1.34
Buffer.compare 1024 - diff last byte 85.612 ns/op 45.785 ns/op 1.87
byteArrayEquals 16384 - diff last byte 38.915 us/op 27.584 us/op 1.41
Buffer.compare 16384 - diff last byte 301.43 ns/op 207.27 ns/op 1.45
byteArrayEquals 123687377 - diff last byte 275.93 ms/op 204.99 ms/op 1.35
Buffer.compare 123687377 - diff last byte 10.353 ms/op 5.9454 ms/op 1.74
byteArrayEquals 32 - random bytes 7.7220 ns/op 4.7510 ns/op 1.63
Buffer.compare 32 - random bytes 67.220 ns/op 43.743 ns/op 1.54
byteArrayEquals 1024 - random bytes 6.8750 ns/op 4.7270 ns/op 1.45
Buffer.compare 1024 - random bytes 71.523 ns/op 38.155 ns/op 1.87
byteArrayEquals 16384 - random bytes 6.8300 ns/op 4.9570 ns/op 1.38
Buffer.compare 16384 - random bytes 64.825 ns/op 40.818 ns/op 1.59
byteArrayEquals 123687377 - random bytes 15.940 ns/op 8.4600 ns/op 1.88
Buffer.compare 123687377 - random bytes 90.560 ns/op 41.250 ns/op 2.20
regular array get 100000 times 54.514 us/op 42.245 us/op 1.29
wrappedArray get 100000 times 54.752 us/op 42.612 us/op 1.28
arrayWithProxy get 100000 times 22.939 ms/op 10.620 ms/op 2.16
ssz.Root.equals 62.079 ns/op 58.258 ns/op 1.07
byteArrayEquals 59.733 ns/op 55.227 ns/op 1.08
Buffer.compare 13.360 ns/op 9.6700 ns/op 1.38
shuffle list - 16384 els 10.345 ms/op 4.7282 ms/op 2.19
shuffle list - 250000 els 152.94 ms/op 69.112 ms/op 2.21
processSlot - 1 slots 35.400 us/op 17.592 us/op 2.01
processSlot - 32 slots 4.7747 ms/op 3.6608 ms/op 1.30
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 87.488 ms/op 53.320 ms/op 1.64
getCommitteeAssignments - req 1 vs - 250000 vc 3.1282 ms/op 2.2331 ms/op 1.40
getCommitteeAssignments - req 100 vs - 250000 vc 4.5758 ms/op 3.3350 ms/op 1.37
getCommitteeAssignments - req 1000 vs - 250000 vc 6.6471 ms/op 3.6079 ms/op 1.84
findModifiedValidators - 10000 modified validators 865.17 ms/op 400.04 ms/op 2.16
findModifiedValidators - 1000 modified validators 747.57 ms/op 319.39 ms/op 2.34
findModifiedValidators - 100 modified validators 666.89 ms/op 330.01 ms/op 2.02
findModifiedValidators - 10 modified validators 769.66 ms/op 296.11 ms/op 2.60
findModifiedValidators - 1 modified validators 698.02 ms/op 302.66 ms/op 2.31
findModifiedValidators - no difference 724.89 ms/op 312.43 ms/op 2.32
compare ViewDUs 7.2257 s/op 4.2675 s/op 1.69
compare each validator Uint8Array 2.8215 s/op 1.8654 s/op 1.51
compare ViewDU to Uint8Array 2.2923 s/op 1.3267 s/op 1.73
migrate state 1000000 validators, 24 modified, 0 new 1.4410 s/op 716.96 ms/op 2.01
migrate state 1000000 validators, 1700 modified, 1000 new 2.0160 s/op 1.0339 s/op 1.95
migrate state 1000000 validators, 3400 modified, 2000 new 1.7991 s/op 1.3037 s/op 1.38
migrate state 1500000 validators, 24 modified, 0 new 960.96 ms/op 715.79 ms/op 1.34
migrate state 1500000 validators, 1700 modified, 1000 new 1.2661 s/op 1.0640 s/op 1.19
migrate state 1500000 validators, 3400 modified, 2000 new 1.7236 s/op 1.3849 s/op 1.24
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 5.6700 ns/op 5.5800 ns/op 1.02
state getBlockRootAtSlot - 250000 vs - 7PWei 940.43 ns/op 952.58 ns/op 0.99
computeProposers - vc 250000 11.328 ms/op 7.2513 ms/op 1.56
computeEpochShuffling - vc 250000 118.56 ms/op 71.061 ms/op 1.67
getNextSyncCommittee - vc 250000 184.79 ms/op 133.71 ms/op 1.38
computeSigningRoot for AttestationData 34.264 us/op 27.532 us/op 1.24
hash AttestationData serialized data then Buffer.toString(base64) 2.7089 us/op 1.3210 us/op 2.05
toHexString serialized data 1.2399 us/op 868.66 ns/op 1.43
Buffer.toString(base64) 265.49 ns/op 213.98 ns/op 1.24

by benchmarkbot/action

github-actions[bot] avatar Feb 17 '24 13:02 github-actions[bot]

Codecov Report

Merging #6445 (e8e091a) into unstable (8959bda) will not change coverage. The diff coverage is 0.00%.

Additional details and impacted files
@@            Coverage Diff            @@
##           unstable    #6445   +/-   ##
=========================================
  Coverage     61.66%   61.66%           
=========================================
  Files           554      554           
  Lines         58078    58078           
  Branches       1837     1837           
=========================================
  Hits          35811    35811           
  Misses        22228    22228           
  Partials         39       39           

codecov[bot] avatar Feb 17 '24 14:02 codecov[bot]

:tada: This PR is included in v1.17.0 :tada:

wemeetagain avatar Mar 11 '24 15:03 wemeetagain