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

Add more getDependentRoot unit tests #4564

Merged
merged 1 commit into from Sep 19, 2022

Conversation

dapplion
Copy link
Contributor

Motivation

Description

Add more getDependentRoot unit tests and simplify their format

@dapplion dapplion requested a review from a team as a code owner September 19, 2022 10:19
@github-actions
Copy link
Contributor

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: 831b6d9 Previous: bb5854b Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 1.7594 ms/op 1.5574 ms/op 1.13
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 70.561 us/op 63.089 us/op 1.12
BLS verify - blst-native 1.8557 ms/op 2.1626 ms/op 0.86
BLS verifyMultipleSignatures 3 - blst-native 3.8060 ms/op 4.4658 ms/op 0.85
BLS verifyMultipleSignatures 8 - blst-native 8.1856 ms/op 9.6570 ms/op 0.85
BLS verifyMultipleSignatures 32 - blst-native 29.673 ms/op 35.095 ms/op 0.85
BLS aggregatePubkeys 32 - blst-native 38.953 us/op 46.616 us/op 0.84
BLS aggregatePubkeys 128 - blst-native 152.74 us/op 182.18 us/op 0.84
getAttestationsForBlock 81.639 ms/op 72.864 ms/op 1.12
isKnown best case - 1 super set check 438.00 ns/op 476.00 ns/op 0.92
isKnown normal case - 2 super set checks 425.00 ns/op 465.00 ns/op 0.91
isKnown worse case - 16 super set checks 425.00 ns/op 464.00 ns/op 0.92
CheckpointStateCache - add get delete 8.4310 us/op 8.5490 us/op 0.99
validate gossip signedAggregateAndProof - struct 4.2736 ms/op 5.0265 ms/op 0.85
validate gossip attestation - struct 2.0302 ms/op 2.3643 ms/op 0.86
pickEth1Vote - no votes 2.2094 ms/op 2.1631 ms/op 1.02
pickEth1Vote - max votes 18.551 ms/op 17.520 ms/op 1.06
pickEth1Vote - Eth1Data hashTreeRoot value x2048 10.686 ms/op 11.856 ms/op 0.90
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 19.533 ms/op 19.078 ms/op 1.02
pickEth1Vote - Eth1Data fastSerialize value x2048 1.5594 ms/op 1.3796 ms/op 1.13
pickEth1Vote - Eth1Data fastSerialize tree x2048 12.538 ms/op 11.423 ms/op 1.10
bytes32 toHexString 1.0200 us/op 893.00 ns/op 1.14
bytes32 Buffer.toString(hex) 679.00 ns/op 728.00 ns/op 0.93
bytes32 Buffer.toString(hex) from Uint8Array 932.00 ns/op 998.00 ns/op 0.93
bytes32 Buffer.toString(hex) + 0x 690.00 ns/op 733.00 ns/op 0.94
Object access 1 prop 0.36200 ns/op 0.32800 ns/op 1.10
Map access 1 prop 0.29600 ns/op 0.30500 ns/op 0.97
Object get x1000 18.186 ns/op 10.869 ns/op 1.67
Map get x1000 0.98600 ns/op 0.92800 ns/op 1.06
Object set x1000 117.86 ns/op 69.173 ns/op 1.70
Map set x1000 69.227 ns/op 45.618 ns/op 1.52
Return object 10000 times 0.37810 ns/op 0.44000 ns/op 0.86
Throw Error 10000 times 5.8895 us/op 5.7930 us/op 1.02
enrSubnets - fastDeserialize 64 bits 2.5910 us/op 2.4590 us/op 1.05
enrSubnets - ssz BitVector 64 bits 744.00 ns/op 768.00 ns/op 0.97
enrSubnets - fastDeserialize 4 bits 367.00 ns/op 358.00 ns/op 1.03
enrSubnets - ssz BitVector 4 bits 744.00 ns/op 758.00 ns/op 0.98
prioritizePeers score -10:0 att 32-0.1 sync 2-0 90.784 us/op 80.098 us/op 1.13
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 121.08 us/op 114.73 us/op 1.06
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 205.22 us/op 188.66 us/op 1.09
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 447.52 us/op 365.88 us/op 1.22
prioritizePeers score 0:0 att 64-1 sync 4-1 458.19 us/op 412.61 us/op 1.11
RateTracker 1000000 limit, 1 obj count per request 207.82 ns/op 175.20 ns/op 1.19
RateTracker 1000000 limit, 2 obj count per request 159.20 ns/op 127.41 ns/op 1.25
RateTracker 1000000 limit, 4 obj count per request 132.06 ns/op 104.19 ns/op 1.27
RateTracker 1000000 limit, 8 obj count per request 117.35 ns/op 92.429 ns/op 1.27
RateTracker with prune 4.2570 us/op 3.7620 us/op 1.13
array of 16000 items push then shift 3.1934 us/op 51.567 us/op 0.06
LinkedList of 16000 items push then shift 17.086 ns/op 12.059 ns/op 1.42
array of 16000 items push then pop 233.05 ns/op 182.70 ns/op 1.28
LinkedList of 16000 items push then pop 16.597 ns/op 11.837 ns/op 1.40
array of 24000 items push then shift 4.5517 us/op 77.325 us/op 0.06
LinkedList of 24000 items push then shift 19.903 ns/op 12.287 ns/op 1.62
array of 24000 items push then pop 192.73 ns/op 193.66 ns/op 1.00
LinkedList of 24000 items push then pop 17.733 ns/op 12.045 ns/op 1.47
intersect bitArray bitLen 8 11.743 ns/op 10.804 ns/op 1.09
intersect array and set length 8 161.84 ns/op 141.53 ns/op 1.14
intersect bitArray bitLen 128 61.889 ns/op 57.814 ns/op 1.07
intersect array and set length 128 2.2109 us/op 1.7956 us/op 1.23
Buffer.concat 32 items 1.9000 ns/op 1.7220 ns/op 1.10
pass gossip attestations to forkchoice per slot 3.4993 ms/op 2.8846 ms/op 1.21
computeDeltas 3.0544 ms/op 3.0629 ms/op 1.00
computeProposerBoostScoreFromBalances 921.86 us/op 804.07 us/op 1.15
altair processAttestation - 250000 vs - 7PWei normalcase 3.4529 ms/op 3.2450 ms/op 1.06
altair processAttestation - 250000 vs - 7PWei worstcase 5.3262 ms/op 4.9716 ms/op 1.07
altair processAttestation - setStatus - 1/6 committees join 206.09 us/op 179.22 us/op 1.15
altair processAttestation - setStatus - 1/3 committees join 397.43 us/op 351.97 us/op 1.13
altair processAttestation - setStatus - 1/2 committees join 559.71 us/op 504.07 us/op 1.11
altair processAttestation - setStatus - 2/3 committees join 718.25 us/op 663.34 us/op 1.08
altair processAttestation - setStatus - 4/5 committees join 993.40 us/op 921.71 us/op 1.08
altair processAttestation - setStatus - 100% committees join 1.1826 ms/op 1.1223 ms/op 1.05
altair processBlock - 250000 vs - 7PWei normalcase 27.713 ms/op 25.987 ms/op 1.07
altair processBlock - 250000 vs - 7PWei normalcase hashState 40.474 ms/op 34.747 ms/op 1.16
altair processBlock - 250000 vs - 7PWei worstcase 75.416 ms/op 73.707 ms/op 1.02
altair processBlock - 250000 vs - 7PWei worstcase hashState 97.328 ms/op 100.84 ms/op 0.97
phase0 processBlock - 250000 vs - 7PWei normalcase 3.5110 ms/op 2.9647 ms/op 1.18
phase0 processBlock - 250000 vs - 7PWei worstcase 45.757 ms/op 49.526 ms/op 0.92
altair processEth1Data - 250000 vs - 7PWei normalcase 881.18 us/op 677.49 us/op 1.30
Tree 40 250000 create 782.70 ms/op 666.94 ms/op 1.17
Tree 40 250000 get(125000) 282.06 ns/op 264.32 ns/op 1.07
Tree 40 250000 set(125000) 2.3216 us/op 2.3493 us/op 0.99
Tree 40 250000 toArray() 31.347 ms/op 25.713 ms/op 1.22
Tree 40 250000 iterate all - toArray() + loop 31.557 ms/op 25.471 ms/op 1.24
Tree 40 250000 iterate all - get(i) 108.27 ms/op 115.15 ms/op 0.94
MutableVector 250000 create 14.412 ms/op 11.538 ms/op 1.25
MutableVector 250000 get(125000) 13.398 ns/op 10.632 ns/op 1.26
MutableVector 250000 set(125000) 578.34 ns/op 442.59 ns/op 1.31
MutableVector 250000 toArray() 7.0518 ms/op 5.3757 ms/op 1.31
MutableVector 250000 iterate all - toArray() + loop 7.3239 ms/op 5.4259 ms/op 1.35
MutableVector 250000 iterate all - get(i) 3.2781 ms/op 2.7192 ms/op 1.21
Array 250000 create 6.6547 ms/op 5.2893 ms/op 1.26
Array 250000 clone - spread 3.5762 ms/op 2.7298 ms/op 1.31
Array 250000 get(125000) 1.5130 ns/op 1.3060 ns/op 1.16
Array 250000 set(125000) 1.5080 ns/op 1.3020 ns/op 1.16
Array 250000 iterate all - loop 168.16 us/op 152.57 us/op 1.10
effectiveBalanceIncrements clone Uint8Array 300000 79.699 us/op 48.649 us/op 1.64
effectiveBalanceIncrements clone MutableVector 300000 1.1260 us/op 627.00 ns/op 1.80
effectiveBalanceIncrements rw all Uint8Array 300000 252.44 us/op 247.12 us/op 1.02
effectiveBalanceIncrements rw all MutableVector 300000 196.21 ms/op 124.08 ms/op 1.58
phase0 afterProcessEpoch - 250000 vs - 7PWei 189.59 ms/op 194.93 ms/op 0.97
phase0 beforeProcessEpoch - 250000 vs - 7PWei 101.04 ms/op 57.841 ms/op 1.75
altair processEpoch - mainnet_e81889 578.49 ms/op 541.52 ms/op 1.07
mainnet_e81889 - altair beforeProcessEpoch 145.01 ms/op 124.44 ms/op 1.17
mainnet_e81889 - altair processJustificationAndFinalization 35.433 us/op 31.819 us/op 1.11
mainnet_e81889 - altair processInactivityUpdates 10.342 ms/op 8.6422 ms/op 1.20
mainnet_e81889 - altair processRewardsAndPenalties 89.370 ms/op 76.634 ms/op 1.17
mainnet_e81889 - altair processRegistryUpdates 7.1310 us/op 5.1070 us/op 1.40
mainnet_e81889 - altair processSlashings 1.7720 us/op 1.1760 us/op 1.51
mainnet_e81889 - altair processEth1DataReset 1.5330 us/op 1.3320 us/op 1.15
mainnet_e81889 - altair processEffectiveBalanceUpdates 2.4194 ms/op 2.5649 ms/op 0.94
mainnet_e81889 - altair processSlashingsReset 9.4280 us/op 7.6000 us/op 1.24
mainnet_e81889 - altair processRandaoMixesReset 10.209 us/op 9.0120 us/op 1.13
mainnet_e81889 - altair processHistoricalRootsUpdate 1.8970 us/op 1.0100 us/op 1.88
mainnet_e81889 - altair processParticipationFlagUpdates 6.9760 us/op 5.9050 us/op 1.18
mainnet_e81889 - altair processSyncCommitteeUpdates 1.1090 us/op 4.0180 us/op 0.28
mainnet_e81889 - altair afterProcessEpoch 197.51 ms/op 219.01 ms/op 0.90
phase0 processEpoch - mainnet_e58758 519.32 ms/op 605.27 ms/op 0.86
mainnet_e58758 - phase0 beforeProcessEpoch 223.52 ms/op 226.72 ms/op 0.99
mainnet_e58758 - phase0 processJustificationAndFinalization 28.134 us/op 28.600 us/op 0.98
mainnet_e58758 - phase0 processRewardsAndPenalties 130.97 ms/op 133.13 ms/op 0.98
mainnet_e58758 - phase0 processRegistryUpdates 16.251 us/op 16.103 us/op 1.01
mainnet_e58758 - phase0 processSlashings 1.0710 us/op 1.3380 us/op 0.80
mainnet_e58758 - phase0 processEth1DataReset 1.1510 us/op 1.5770 us/op 0.73
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 2.0954 ms/op 2.1886 ms/op 0.96
mainnet_e58758 - phase0 processSlashingsReset 6.7710 us/op 8.0060 us/op 0.85
mainnet_e58758 - phase0 processRandaoMixesReset 8.3750 us/op 9.9830 us/op 0.84
mainnet_e58758 - phase0 processHistoricalRootsUpdate 1.1210 us/op 1.4190 us/op 0.79
mainnet_e58758 - phase0 processParticipationRecordUpdates 7.3890 us/op 7.3260 us/op 1.01
mainnet_e58758 - phase0 afterProcessEpoch 161.63 ms/op 162.42 ms/op 1.00
phase0 processEffectiveBalanceUpdates - 250000 normalcase 2.6965 ms/op 2.4461 ms/op 1.10
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 3.5544 ms/op 2.4739 ms/op 1.44
altair processInactivityUpdates - 250000 normalcase 39.714 ms/op 51.865 ms/op 0.77
altair processInactivityUpdates - 250000 worstcase 47.827 ms/op 50.939 ms/op 0.94
phase0 processRegistryUpdates - 250000 normalcase 11.618 us/op 11.709 us/op 0.99
phase0 processRegistryUpdates - 250000 badcase_full_deposits 518.69 us/op 541.04 us/op 0.96
phase0 processRegistryUpdates - 250000 worstcase 0.5 209.35 ms/op 225.70 ms/op 0.93
altair processRewardsAndPenalties - 250000 normalcase 126.39 ms/op 131.60 ms/op 0.96
altair processRewardsAndPenalties - 250000 worstcase 83.817 ms/op 132.00 ms/op 0.63
phase0 getAttestationDeltas - 250000 normalcase 13.374 ms/op 11.256 ms/op 1.19
phase0 getAttestationDeltas - 250000 worstcase 13.516 ms/op 11.724 ms/op 1.15
phase0 processSlashings - 250000 worstcase 5.3736 ms/op 5.2863 ms/op 1.02
altair processSyncCommitteeUpdates - 250000 276.18 ms/op 278.92 ms/op 0.99
BeaconState.hashTreeRoot - No change 506.00 ns/op 752.00 ns/op 0.67
BeaconState.hashTreeRoot - 1 full validator 55.469 us/op 65.953 us/op 0.84
BeaconState.hashTreeRoot - 32 full validator 631.58 us/op 699.84 us/op 0.90
BeaconState.hashTreeRoot - 512 full validator 7.5098 ms/op 8.2385 ms/op 0.91
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 75.931 us/op 99.326 us/op 0.76
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 1.1594 ms/op 1.2554 ms/op 0.92
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 15.357 ms/op 17.996 ms/op 0.85
BeaconState.hashTreeRoot - 1 balances 63.204 us/op 66.814 us/op 0.95
BeaconState.hashTreeRoot - 32 balances 587.85 us/op 728.24 us/op 0.81
BeaconState.hashTreeRoot - 512 balances 5.8304 ms/op 6.8991 ms/op 0.85
BeaconState.hashTreeRoot - 250000 balances 98.545 ms/op 113.21 ms/op 0.87
aggregationBits - 2048 els - zipIndexesInBitList 29.527 us/op 25.365 us/op 1.16
regular array get 100000 times 67.459 us/op 60.831 us/op 1.11
wrappedArray get 100000 times 67.408 us/op 61.292 us/op 1.10
arrayWithProxy get 100000 times 28.759 ms/op 37.060 ms/op 0.78
ssz.Root.equals 495.00 ns/op 431.00 ns/op 1.15
byteArrayEquals 476.00 ns/op 427.00 ns/op 1.11
shuffle list - 16384 els 11.112 ms/op 11.282 ms/op 0.98
shuffle list - 250000 els 166.78 ms/op 168.74 ms/op 0.99
processSlot - 1 slots 12.368 us/op 14.095 us/op 0.88
processSlot - 32 slots 1.7120 ms/op 1.8810 ms/op 0.91
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 390.63 us/op 358.42 us/op 1.09
getCommitteeAssignments - req 1 vs - 250000 vc 5.2862 ms/op 5.4573 ms/op 0.97
getCommitteeAssignments - req 100 vs - 250000 vc 7.3601 ms/op 7.9936 ms/op 0.92
getCommitteeAssignments - req 1000 vs - 250000 vc 7.8484 ms/op 8.5641 ms/op 0.92
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 9.7900 ns/op 8.3800 ns/op 1.17
state getBlockRootAtSlot - 250000 vs - 7PWei 1.0921 us/op 1.0012 us/op 1.09
computeProposers - vc 250000 16.397 ms/op 16.674 ms/op 0.98
computeEpochShuffling - vc 250000 170.81 ms/op 171.18 ms/op 1.00
getNextSyncCommittee - vc 250000 273.45 ms/op 277.68 ms/op 0.98

by benchmarkbot/action

Copy link
Contributor

@g11tech g11tech left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@g11tech g11tech merged commit 31c6f57 into unstable Sep 19, 2022
@g11tech g11tech deleted the dapplion/getDependentRoot-tests branch September 19, 2022 11:51
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.

None yet

2 participants