chore: update query for `attestations_per_committee` metric
Motivation
Attestations per committee metric lodestar_oppool_aggregated_attestation_pool_attestations_per_committee is not displayed currently as it's a histogram. See previous https://github.com/ChainSafe/lodestar/pull/7900 changes.
Description
Update query for attestations_per_committee metric
Depends on https://github.com/ChainSafe/lodestar/pull/7922
@twoeths what do you think about moving the "Aggregated Attestation Pool" row a bit further down in the dashboard?
Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:
Project coverage is 55.74%. Comparing base (
d10eb2f) to head (2f596f4). Report is 1 commits behind head on unstable.
Additional details and impacted files
@@ Coverage Diff @@
## unstable #7923 +/- ##
=========================================
Coverage 55.74% 55.74%
=========================================
Files 833 833
Lines 59383 59383
Branches 4580 4581 +1
=========================================
Hits 33102 33102
Misses 26214 26214
Partials 67 67
:rocket: New features to boost your workflow:
- :snowflake: Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
- :package: JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.
Performance Report
✔️ no performance regression detected
Full benchmark results
| Benchmark suite | Current: 1010edfa7c7a128c7c9507b4c44953938b2be066 | Previous: d10eb2f74bc386b8ce9ec546ef3478c1281786f6 | Ratio |
|---|---|---|---|
| getPubkeys - index2pubkey - req 1000 vs - 250000 vc | 1.2036 ms/op | 992.66 us/op | 1.21 |
| getPubkeys - validatorsArr - req 1000 vs - 250000 vc | 41.264 us/op | 37.311 us/op | 1.11 |
| BLS verify - blst | 1.0411 ms/op | 884.09 us/op | 1.18 |
| BLS verifyMultipleSignatures 3 - blst | 1.3830 ms/op | 1.5742 ms/op | 0.88 |
| BLS verifyMultipleSignatures 8 - blst | 2.2967 ms/op | 1.7271 ms/op | 1.33 |
| BLS verifyMultipleSignatures 32 - blst | 6.1546 ms/op | 5.0065 ms/op | 1.23 |
| BLS verifyMultipleSignatures 64 - blst | 11.758 ms/op | 9.2382 ms/op | 1.27 |
| BLS verifyMultipleSignatures 128 - blst | 18.912 ms/op | 17.649 ms/op | 1.07 |
| BLS deserializing 10000 signatures | 757.67 ms/op | 710.27 ms/op | 1.07 |
| BLS deserializing 100000 signatures | 7.5601 s/op | 7.0998 s/op | 1.06 |
| BLS verifyMultipleSignatures - same message - 3 - blst | 1.0306 ms/op | 950.90 us/op | 1.08 |
| BLS verifyMultipleSignatures - same message - 8 - blst | 1.1524 ms/op | 1.0322 ms/op | 1.12 |
| BLS verifyMultipleSignatures - same message - 32 - blst | 2.0222 ms/op | 1.8246 ms/op | 1.11 |
| BLS verifyMultipleSignatures - same message - 64 - blst | 2.8776 ms/op | 2.7470 ms/op | 1.05 |
| BLS verifyMultipleSignatures - same message - 128 - blst | 4.5636 ms/op | 4.6239 ms/op | 0.99 |
| BLS aggregatePubkeys 32 - blst | 20.091 us/op | 20.368 us/op | 0.99 |
| BLS aggregatePubkeys 128 - blst | 72.785 us/op | 72.959 us/op | 1.00 |
| notSeenSlots=1 numMissedVotes=1 numBadVotes=10 | 67.217 ms/op | 47.980 ms/op | 1.40 |
| notSeenSlots=1 numMissedVotes=0 numBadVotes=4 | 61.055 ms/op | 47.140 ms/op | 1.30 |
| notSeenSlots=2 numMissedVotes=1 numBadVotes=10 | 47.630 ms/op | 36.584 ms/op | 1.30 |
| getSlashingsAndExits - default max | 83.715 us/op | 73.752 us/op | 1.14 |
| getSlashingsAndExits - 2k | 403.97 us/op | 358.18 us/op | 1.13 |
| proposeBlockBody type=full, size=empty | 5.8822 ms/op | 8.2784 ms/op | 0.71 |
| isKnown best case - 1 super set check | 230.00 ns/op | 233.00 ns/op | 0.99 |
| isKnown normal case - 2 super set checks | 223.00 ns/op | 224.00 ns/op | 1.00 |
| isKnown worse case - 16 super set checks | 224.00 ns/op | 221.00 ns/op | 1.01 |
| InMemoryCheckpointStateCache - add get delete | 2.5640 us/op | 2.4160 us/op | 1.06 |
| validate api signedAggregateAndProof - struct | 1.5288 ms/op | 1.7015 ms/op | 0.90 |
| validate gossip signedAggregateAndProof - struct | 1.9047 ms/op | 1.8565 ms/op | 1.03 |
| batch validate gossip attestation - vc 640000 - chunk 32 | 129.77 us/op | 135.18 us/op | 0.96 |
| batch validate gossip attestation - vc 640000 - chunk 64 | 107.48 us/op | 113.48 us/op | 0.95 |
| batch validate gossip attestation - vc 640000 - chunk 128 | 101.94 us/op | 106.18 us/op | 0.96 |
| batch validate gossip attestation - vc 640000 - chunk 256 | 107.41 us/op | 112.98 us/op | 0.95 |
| pickEth1Vote - no votes | 978.13 us/op | 1.0774 ms/op | 0.91 |
| pickEth1Vote - max votes | 7.3443 ms/op | 9.0209 ms/op | 0.81 |
| pickEth1Vote - Eth1Data hashTreeRoot value x2048 | 12.637 ms/op | 14.240 ms/op | 0.89 |
| pickEth1Vote - Eth1Data hashTreeRoot tree x2048 | 20.779 ms/op | 24.405 ms/op | 0.85 |
| pickEth1Vote - Eth1Data fastSerialize value x2048 | 437.93 us/op | 474.74 us/op | 0.92 |
| pickEth1Vote - Eth1Data fastSerialize tree x2048 | 4.3714 ms/op | 3.6640 ms/op | 1.19 |
| bytes32 toHexString | 385.00 ns/op | 399.00 ns/op | 0.96 |
| bytes32 Buffer.toString(hex) | 268.00 ns/op | 264.00 ns/op | 1.02 |
| bytes32 Buffer.toString(hex) from Uint8Array | 456.00 ns/op | 360.00 ns/op | 1.27 |
| bytes32 Buffer.toString(hex) + 0x | 253.00 ns/op | 269.00 ns/op | 0.94 |
| Object access 1 prop | 0.13500 ns/op | 0.12700 ns/op | 1.06 |
| Map access 1 prop | 0.13000 ns/op | 0.13400 ns/op | 0.97 |
| Object get x1000 | 6.4010 ns/op | 6.4100 ns/op | 1.00 |
| Map get x1000 | 6.7290 ns/op | 6.8840 ns/op | 0.98 |
| Object set x1000 | 29.906 ns/op | 34.669 ns/op | 0.86 |
| Map set x1000 | 20.325 ns/op | 23.389 ns/op | 0.87 |
| Return object 10000 times | 0.29110 ns/op | 0.30950 ns/op | 0.94 |
| Throw Error 10000 times | 4.5341 us/op | 4.6697 us/op | 0.97 |
| toHex | 144.51 ns/op | 137.82 ns/op | 1.05 |
| Buffer.from | 127.54 ns/op | 130.94 ns/op | 0.97 |
| shared Buffer | 86.574 ns/op | 99.414 ns/op | 0.87 |
| fastMsgIdFn sha256 / 200 bytes | 2.2370 us/op | 2.3010 us/op | 0.97 |
| fastMsgIdFn h32 xxhash / 200 bytes | 214.00 ns/op | 221.00 ns/op | 0.97 |
| fastMsgIdFn h64 xxhash / 200 bytes | 268.00 ns/op | 283.00 ns/op | 0.95 |
| fastMsgIdFn sha256 / 1000 bytes | 7.2470 us/op | 7.5680 us/op | 0.96 |
| fastMsgIdFn h32 xxhash / 1000 bytes | 340.00 ns/op | 358.00 ns/op | 0.95 |
| fastMsgIdFn h64 xxhash / 1000 bytes | 336.00 ns/op | 360.00 ns/op | 0.93 |
| fastMsgIdFn sha256 / 10000 bytes | 64.740 us/op | 69.567 us/op | 0.93 |
| fastMsgIdFn h32 xxhash / 10000 bytes | 1.8350 us/op | 1.9580 us/op | 0.94 |
| fastMsgIdFn h64 xxhash / 10000 bytes | 1.2070 us/op | 1.2940 us/op | 0.93 |
| send data - 1000 256B messages | 12.416 ms/op | 15.132 ms/op | 0.82 |
| send data - 1000 512B messages | 16.501 ms/op | 23.394 ms/op | 0.71 |
| send data - 1000 1024B messages | 26.870 ms/op | 29.977 ms/op | 0.90 |
| send data - 1000 1200B messages | 20.949 ms/op | 27.636 ms/op | 0.76 |
| send data - 1000 2048B messages | 22.139 ms/op | 27.013 ms/op | 0.82 |
| send data - 1000 4096B messages | 26.856 ms/op | 31.688 ms/op | 0.85 |
| send data - 1000 16384B messages | 52.875 ms/op | 78.971 ms/op | 0.67 |
| send data - 1000 65536B messages | 219.30 ms/op | 276.34 ms/op | 0.79 |
| enrSubnets - fastDeserialize 64 bits | 885.00 ns/op | 1.9740 us/op | 0.45 |
| enrSubnets - ssz BitVector 64 bits | 323.00 ns/op | 381.00 ns/op | 0.85 |
| enrSubnets - fastDeserialize 4 bits | 126.00 ns/op | 135.00 ns/op | 0.93 |
| enrSubnets - ssz BitVector 4 bits | 409.00 ns/op | 373.00 ns/op | 1.10 |
| prioritizePeers score -10:0 att 32-0.1 sync 2-0 | 119.94 us/op | 130.05 us/op | 0.92 |
| prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 | 137.06 us/op | 153.29 us/op | 0.89 |
| prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 | 195.98 us/op | 226.95 us/op | 0.86 |
| prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 | 366.52 us/op | 415.25 us/op | 0.88 |
| prioritizePeers score 0:0 att 64-1 sync 4-1 | 445.87 us/op | 500.68 us/op | 0.89 |
| array of 16000 items push then shift | 1.5655 us/op | 1.7418 us/op | 0.90 |
| LinkedList of 16000 items push then shift | 6.7290 ns/op | 9.0440 ns/op | 0.74 |
| array of 16000 items push then pop | 73.280 ns/op | 86.719 ns/op | 0.85 |
| LinkedList of 16000 items push then pop | 6.6730 ns/op | 8.4110 ns/op | 0.79 |
| array of 24000 items push then shift | 2.3213 us/op | 2.5260 us/op | 0.92 |
| LinkedList of 24000 items push then shift | 6.8390 ns/op | 9.4150 ns/op | 0.73 |
| array of 24000 items push then pop | 95.792 ns/op | 116.97 ns/op | 0.82 |
| LinkedList of 24000 items push then pop | 6.7930 ns/op | 8.4020 ns/op | 0.81 |
| intersect bitArray bitLen 8 | 6.3450 ns/op | 6.9980 ns/op | 0.91 |
| intersect array and set length 8 | 37.911 ns/op | 42.196 ns/op | 0.90 |
| intersect bitArray bitLen 128 | 29.681 ns/op | 32.361 ns/op | 0.92 |
| intersect array and set length 128 | 617.55 ns/op | 654.72 ns/op | 0.94 |
| bitArray.getTrueBitIndexes() bitLen 128 | 1.0050 us/op | 1.0810 us/op | 0.93 |
| bitArray.getTrueBitIndexes() bitLen 248 | 1.7530 us/op | 1.9320 us/op | 0.91 |
| bitArray.getTrueBitIndexes() bitLen 512 | 3.5800 us/op | 3.9700 us/op | 0.90 |
| Buffer.concat 32 items | 780.00 ns/op | 772.00 ns/op | 1.01 |
| Uint8Array.set 32 items | 1.0410 us/op | 1.8330 us/op | 0.57 |
| Buffer.copy | 2.0190 us/op | 2.7710 us/op | 0.73 |
| Uint8Array.set - with subarray | 1.5520 us/op | 2.8470 us/op | 0.55 |
| Uint8Array.set - without subarray | 874.00 ns/op | 1.7890 us/op | 0.49 |
| getUint32 - dataview | 202.00 ns/op | 234.00 ns/op | 0.86 |
| getUint32 - manual | 123.00 ns/op | 126.00 ns/op | 0.98 |
| Set add up to 64 items then delete first | 2.2127 us/op | 2.9012 us/op | 0.76 |
| OrderedSet add up to 64 items then delete first | 3.2480 us/op | 4.2756 us/op | 0.76 |
| Set add up to 64 items then delete last | 2.4940 us/op | 3.2594 us/op | 0.77 |
| OrderedSet add up to 64 items then delete last | 3.8401 us/op | 5.0873 us/op | 0.75 |
| Set add up to 64 items then delete middle | 2.5233 us/op | 2.5186 us/op | 1.00 |
| OrderedSet add up to 64 items then delete middle | 5.2322 us/op | 6.6829 us/op | 0.78 |
| Set add up to 128 items then delete first | 5.4015 us/op | 6.8316 us/op | 0.79 |
| OrderedSet add up to 128 items then delete first | 8.0572 us/op | 11.107 us/op | 0.73 |
| Set add up to 128 items then delete last | 5.8871 us/op | 6.6213 us/op | 0.89 |
| OrderedSet add up to 128 items then delete last | 9.6570 us/op | 10.720 us/op | 0.90 |
| Set add up to 128 items then delete middle | 5.6530 us/op | 6.5232 us/op | 0.87 |
| OrderedSet add up to 128 items then delete middle | 15.206 us/op | 17.449 us/op | 0.87 |
| Set add up to 256 items then delete first | 10.211 us/op | 13.420 us/op | 0.76 |
| OrderedSet add up to 256 items then delete first | 17.035 us/op | 21.338 us/op | 0.80 |
| Set add up to 256 items then delete last | 10.961 us/op | 16.470 us/op | 0.67 |
| OrderedSet add up to 256 items then delete last | 16.093 us/op | 20.135 us/op | 0.80 |
| Set add up to 256 items then delete middle | 10.562 us/op | 13.200 us/op | 0.80 |
| OrderedSet add up to 256 items then delete middle | 44.119 us/op | 47.905 us/op | 0.92 |
| transfer serialized Status (84 B) | 2.2520 us/op | 2.6850 us/op | 0.84 |
| copy serialized Status (84 B) | 1.3290 us/op | 1.4530 us/op | 0.91 |
| transfer serialized SignedVoluntaryExit (112 B) | 2.4310 us/op | 2.6610 us/op | 0.91 |
| copy serialized SignedVoluntaryExit (112 B) | 1.3000 us/op | 1.5080 us/op | 0.86 |
| transfer serialized ProposerSlashing (416 B) | 2.5730 us/op | 3.5190 us/op | 0.73 |
| copy serialized ProposerSlashing (416 B) | 1.5830 us/op | 1.7050 us/op | 0.93 |
| transfer serialized Attestation (485 B) | 3.0220 us/op | 2.5690 us/op | 1.18 |
| copy serialized Attestation (485 B) | 2.8120 us/op | 1.4130 us/op | 1.99 |
| transfer serialized AttesterSlashing (33232 B) | 3.3110 us/op | 2.7000 us/op | 1.23 |
| copy serialized AttesterSlashing (33232 B) | 5.4650 us/op | 5.2340 us/op | 1.04 |
| transfer serialized Small SignedBeaconBlock (128000 B) | 3.5060 us/op | 3.7430 us/op | 0.94 |
| copy serialized Small SignedBeaconBlock (128000 B) | 9.9760 us/op | 14.145 us/op | 0.71 |
| transfer serialized Avg SignedBeaconBlock (200000 B) | 3.6850 us/op | 4.0840 us/op | 0.90 |
| copy serialized Avg SignedBeaconBlock (200000 B) | 15.857 us/op | 21.688 us/op | 0.73 |
| transfer serialized BlobsSidecar (524380 B) | 4.0540 us/op | 4.4650 us/op | 0.91 |
| copy serialized BlobsSidecar (524380 B) | 74.411 us/op | 68.164 us/op | 1.09 |
| transfer serialized Big SignedBeaconBlock (1000000 B) | 4.6880 us/op | 4.5550 us/op | 1.03 |
| copy serialized Big SignedBeaconBlock (1000000 B) | 112.25 us/op | 125.53 us/op | 0.89 |
| pass gossip attestations to forkchoice per slot | 2.9667 ms/op | 2.8980 ms/op | 1.02 |
| forkChoice updateHead vc 100000 bc 64 eq 0 | 546.00 us/op | 464.48 us/op | 1.18 |
| forkChoice updateHead vc 600000 bc 64 eq 0 | 3.4990 ms/op | 3.1072 ms/op | 1.13 |
| forkChoice updateHead vc 1000000 bc 64 eq 0 | 4.9610 ms/op | 5.2732 ms/op | 0.94 |
| forkChoice updateHead vc 600000 bc 320 eq 0 | 2.9763 ms/op | 3.7010 ms/op | 0.80 |
| forkChoice updateHead vc 600000 bc 1200 eq 0 | 3.0006 ms/op | 3.0932 ms/op | 0.97 |
| forkChoice updateHead vc 600000 bc 7200 eq 0 | 3.7254 ms/op | 3.7575 ms/op | 0.99 |
| forkChoice updateHead vc 600000 bc 64 eq 1000 | 10.729 ms/op | 10.762 ms/op | 1.00 |
| forkChoice updateHead vc 600000 bc 64 eq 10000 | 10.999 ms/op | 10.825 ms/op | 1.02 |
| forkChoice updateHead vc 600000 bc 64 eq 300000 | 13.713 ms/op | 15.628 ms/op | 0.88 |
| computeDeltas 500000 validators 300 proto nodes | 4.3024 ms/op | 4.1258 ms/op | 1.04 |
| computeDeltas 500000 validators 1200 proto nodes | 4.3979 ms/op | 4.0689 ms/op | 1.08 |
| computeDeltas 500000 validators 7200 proto nodes | 4.5245 ms/op | 4.0504 ms/op | 1.12 |
| computeDeltas 750000 validators 300 proto nodes | 6.6881 ms/op | 5.8851 ms/op | 1.14 |
| computeDeltas 750000 validators 1200 proto nodes | 6.5194 ms/op | 5.8570 ms/op | 1.11 |
| computeDeltas 750000 validators 7200 proto nodes | 6.9118 ms/op | 5.7150 ms/op | 1.21 |
| computeDeltas 1400000 validators 300 proto nodes | 12.386 ms/op | 10.770 ms/op | 1.15 |
| computeDeltas 1400000 validators 1200 proto nodes | 11.757 ms/op | 10.841 ms/op | 1.08 |
| computeDeltas 1400000 validators 7200 proto nodes | 11.142 ms/op | 11.024 ms/op | 1.01 |
| computeDeltas 2100000 validators 300 proto nodes | 17.153 ms/op | 16.650 ms/op | 1.03 |
| computeDeltas 2100000 validators 1200 proto nodes | 17.737 ms/op | 17.265 ms/op | 1.03 |
| computeDeltas 2100000 validators 7200 proto nodes | 17.313 ms/op | 18.676 ms/op | 0.93 |
| altair processAttestation - 250000 vs - 7PWei normalcase | 2.1748 ms/op | 2.9013 ms/op | 0.75 |
| altair processAttestation - 250000 vs - 7PWei worstcase | 3.1515 ms/op | 3.8380 ms/op | 0.82 |
| altair processAttestation - setStatus - 1/6 committees join | 138.85 us/op | 161.27 us/op | 0.86 |
| altair processAttestation - setStatus - 1/3 committees join | 264.73 us/op | 291.69 us/op | 0.91 |
| altair processAttestation - setStatus - 1/2 committees join | 363.10 us/op | 433.04 us/op | 0.84 |
| altair processAttestation - setStatus - 2/3 committees join | 443.48 us/op | 501.51 us/op | 0.88 |
| altair processAttestation - setStatus - 4/5 committees join | 623.09 us/op | 656.50 us/op | 0.95 |
| altair processAttestation - setStatus - 100% committees join | 730.82 us/op | 796.03 us/op | 0.92 |
| altair processBlock - 250000 vs - 7PWei normalcase | 4.9550 ms/op | 5.2004 ms/op | 0.95 |
| altair processBlock - 250000 vs - 7PWei normalcase hashState | 40.283 ms/op | 31.635 ms/op | 1.27 |
| altair processBlock - 250000 vs - 7PWei worstcase | 40.906 ms/op | 45.839 ms/op | 0.89 |
| altair processBlock - 250000 vs - 7PWei worstcase hashState | 80.829 ms/op | 90.833 ms/op | 0.89 |
| phase0 processBlock - 250000 vs - 7PWei normalcase | 1.9259 ms/op | 1.9483 ms/op | 0.99 |
| phase0 processBlock - 250000 vs - 7PWei worstcase | 24.947 ms/op | 24.149 ms/op | 1.03 |
| altair processEth1Data - 250000 vs - 7PWei normalcase | 370.68 us/op | 399.82 us/op | 0.93 |
| getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 | 8.2060 us/op | 7.2210 us/op | 1.14 |
| getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 | 45.453 us/op | 48.042 us/op | 0.95 |
| getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 | 15.580 us/op | 10.049 us/op | 1.55 |
| getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 | 7.8840 us/op | 6.0940 us/op | 1.29 |
| getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 | 185.52 us/op | 151.19 us/op | 1.23 |
| getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 | 1.9202 ms/op | 1.9264 ms/op | 1.00 |
| getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 | 2.3639 ms/op | 2.3955 ms/op | 0.99 |
| getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 | 2.3963 ms/op | 2.4099 ms/op | 0.99 |
| getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 | 5.3499 ms/op | 4.5768 ms/op | 1.17 |
| getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 | 2.4362 ms/op | 2.3952 ms/op | 1.02 |
| getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 | 4.8425 ms/op | 4.5838 ms/op | 1.06 |
| Tree 40 250000 create | 474.49 ms/op | 423.05 ms/op | 1.12 |
| Tree 40 250000 get(125000) | 159.16 ns/op | 144.82 ns/op | 1.10 |
| Tree 40 250000 set(125000) | 1.5111 us/op | 1.4963 us/op | 1.01 |
| Tree 40 250000 toArray() | 22.533 ms/op | 15.803 ms/op | 1.43 |
| Tree 40 250000 iterate all - toArray() + loop | 22.961 ms/op | 16.664 ms/op | 1.38 |
| Tree 40 250000 iterate all - get(i) | 60.733 ms/op | 51.327 ms/op | 1.18 |
| Array 250000 create | 2.6654 ms/op | 2.8414 ms/op | 0.94 |
| Array 250000 clone - spread | 1.5737 ms/op | 815.35 us/op | 1.93 |
| Array 250000 get(125000) | 0.45100 ns/op | 0.40000 ns/op | 1.13 |
| Array 250000 set(125000) | 0.48500 ns/op | 0.43100 ns/op | 1.13 |
| Array 250000 iterate all - loop | 81.751 us/op | 100.31 us/op | 0.81 |
| phase0 afterProcessEpoch - 250000 vs - 7PWei | 41.935 ms/op | 41.508 ms/op | 1.01 |
| Array.fill - length 1000000 | 3.4840 ms/op | 3.2936 ms/op | 1.06 |
| Array push - length 1000000 | 12.500 ms/op | 12.866 ms/op | 0.97 |
| Array.get | 0.26841 ns/op | 0.27882 ns/op | 0.96 |
| Uint8Array.get | 0.44621 ns/op | 0.60963 ns/op | 0.73 |
| phase0 beforeProcessEpoch - 250000 vs - 7PWei | 17.444 ms/op | 18.194 ms/op | 0.96 |
| altair processEpoch - mainnet_e81889 | 233.35 ms/op | 262.88 ms/op | 0.89 |
| mainnet_e81889 - altair beforeProcessEpoch | 18.219 ms/op | 19.074 ms/op | 0.96 |
| mainnet_e81889 - altair processJustificationAndFinalization | 5.7240 us/op | 5.4290 us/op | 1.05 |
| mainnet_e81889 - altair processInactivityUpdates | 4.1598 ms/op | 4.3922 ms/op | 0.95 |
| mainnet_e81889 - altair processRewardsAndPenalties | 44.435 ms/op | 38.039 ms/op | 1.17 |
| mainnet_e81889 - altair processRegistryUpdates | 639.00 ns/op | 696.00 ns/op | 0.92 |
| mainnet_e81889 - altair processSlashings | 176.00 ns/op | 192.00 ns/op | 0.92 |
| mainnet_e81889 - altair processEth1DataReset | 172.00 ns/op | 184.00 ns/op | 0.93 |
| mainnet_e81889 - altair processEffectiveBalanceUpdates | 1.2559 ms/op | 1.2501 ms/op | 1.00 |
| mainnet_e81889 - altair processSlashingsReset | 1.7150 us/op | 887.00 ns/op | 1.93 |
| mainnet_e81889 - altair processRandaoMixesReset | 1.1290 us/op | 1.1680 us/op | 0.97 |
| mainnet_e81889 - altair processHistoricalRootsUpdate | 181.00 ns/op | 184.00 ns/op | 0.98 |
| mainnet_e81889 - altair processParticipationFlagUpdates | 517.00 ns/op | 508.00 ns/op | 1.02 |
| mainnet_e81889 - altair processSyncCommitteeUpdates | 137.00 ns/op | 141.00 ns/op | 0.97 |
| mainnet_e81889 - altair afterProcessEpoch | 44.715 ms/op | 44.452 ms/op | 1.01 |
| capella processEpoch - mainnet_e217614 | 968.55 ms/op | 870.32 ms/op | 1.11 |
| mainnet_e217614 - capella beforeProcessEpoch | 58.380 ms/op | 59.867 ms/op | 0.98 |
| mainnet_e217614 - capella processJustificationAndFinalization | 5.4360 us/op | 5.2430 us/op | 1.04 |
| mainnet_e217614 - capella processInactivityUpdates | 14.974 ms/op | 14.677 ms/op | 1.02 |
| mainnet_e217614 - capella processRewardsAndPenalties | 189.09 ms/op | 165.51 ms/op | 1.14 |
| mainnet_e217614 - capella processRegistryUpdates | 8.3180 us/op | 6.3550 us/op | 1.31 |
| mainnet_e217614 - capella processSlashings | 186.00 ns/op | 184.00 ns/op | 1.01 |
| mainnet_e217614 - capella processEth1DataReset | 182.00 ns/op | 183.00 ns/op | 0.99 |
| mainnet_e217614 - capella processEffectiveBalanceUpdates | 4.4234 ms/op | 4.2410 ms/op | 1.04 |
| mainnet_e217614 - capella processSlashingsReset | 1.0370 us/op | 880.00 ns/op | 1.18 |
| mainnet_e217614 - capella processRandaoMixesReset | 1.3390 us/op | 1.1700 us/op | 1.14 |
| mainnet_e217614 - capella processHistoricalRootsUpdate | 194.00 ns/op | 186.00 ns/op | 1.04 |
| mainnet_e217614 - capella processParticipationFlagUpdates | 539.00 ns/op | 529.00 ns/op | 1.02 |
| mainnet_e217614 - capella afterProcessEpoch | 119.09 ms/op | 117.12 ms/op | 1.02 |
| phase0 processEpoch - mainnet_e58758 | 322.55 ms/op | 275.78 ms/op | 1.17 |
| mainnet_e58758 - phase0 beforeProcessEpoch | 84.746 ms/op | 87.513 ms/op | 0.97 |
| mainnet_e58758 - phase0 processJustificationAndFinalization | 6.7540 us/op | 5.9720 us/op | 1.13 |
| mainnet_e58758 - phase0 processRewardsAndPenalties | 38.375 ms/op | 37.500 ms/op | 1.02 |
| mainnet_e58758 - phase0 processRegistryUpdates | 3.4980 us/op | 3.0980 us/op | 1.13 |
| mainnet_e58758 - phase0 processSlashings | 193.00 ns/op | 183.00 ns/op | 1.05 |
| mainnet_e58758 - phase0 processEth1DataReset | 190.00 ns/op | 184.00 ns/op | 1.03 |
| mainnet_e58758 - phase0 processEffectiveBalanceUpdates | 4.0885 ms/op | 2.3490 ms/op | 1.74 |
| mainnet_e58758 - phase0 processSlashingsReset | 1.1350 us/op | 926.00 ns/op | 1.23 |
| mainnet_e58758 - phase0 processRandaoMixesReset | 1.3480 us/op | 1.2170 us/op | 1.11 |
| mainnet_e58758 - phase0 processHistoricalRootsUpdate | 197.00 ns/op | 184.00 ns/op | 1.07 |
| mainnet_e58758 - phase0 processParticipationRecordUpdates | 960.00 ns/op | 929.00 ns/op | 1.03 |
| mainnet_e58758 - phase0 afterProcessEpoch | 37.016 ms/op | 36.810 ms/op | 1.01 |
| phase0 processEffectiveBalanceUpdates - 250000 normalcase | 1.3985 ms/op | 1.3816 ms/op | 1.01 |
| phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 | 5.2143 ms/op | 2.3811 ms/op | 2.19 |
| altair processInactivityUpdates - 250000 normalcase | 21.213 ms/op | 18.262 ms/op | 1.16 |
| altair processInactivityUpdates - 250000 worstcase | 20.806 ms/op | 18.492 ms/op | 1.13 |
| phase0 processRegistryUpdates - 250000 normalcase | 7.6140 us/op | 7.4280 us/op | 1.03 |
| phase0 processRegistryUpdates - 250000 badcase_full_deposits | 315.73 us/op | 293.06 us/op | 1.08 |
| phase0 processRegistryUpdates - 250000 worstcase 0.5 | 119.11 ms/op | 105.35 ms/op | 1.13 |
| altair processRewardsAndPenalties - 250000 normalcase | 30.461 ms/op | 26.534 ms/op | 1.15 |
| altair processRewardsAndPenalties - 250000 worstcase | 27.521 ms/op | 27.486 ms/op | 1.00 |
| phase0 getAttestationDeltas - 250000 normalcase | 6.2700 ms/op | 9.8913 ms/op | 0.63 |
| phase0 getAttestationDeltas - 250000 worstcase | 6.1584 ms/op | 8.0341 ms/op | 0.77 |
| phase0 processSlashings - 250000 worstcase | 121.15 us/op | 102.56 us/op | 1.18 |
| altair processSyncCommitteeUpdates - 250000 | 12.872 ms/op | 11.228 ms/op | 1.15 |
| BeaconState.hashTreeRoot - No change | 244.00 ns/op | 229.00 ns/op | 1.07 |
| BeaconState.hashTreeRoot - 1 full validator | 101.92 us/op | 76.475 us/op | 1.33 |
| BeaconState.hashTreeRoot - 32 full validator | 1.1608 ms/op | 842.02 us/op | 1.38 |
| BeaconState.hashTreeRoot - 512 full validator | 13.388 ms/op | 11.602 ms/op | 1.15 |
| BeaconState.hashTreeRoot - 1 validator.effectiveBalance | 137.39 us/op | 109.61 us/op | 1.25 |
| BeaconState.hashTreeRoot - 32 validator.effectiveBalance | 2.1497 ms/op | 1.5052 ms/op | 1.43 |
| BeaconState.hashTreeRoot - 512 validator.effectiveBalance | 28.466 ms/op | 24.117 ms/op | 1.18 |
| BeaconState.hashTreeRoot - 1 balances | 85.000 us/op | 75.249 us/op | 1.13 |
| BeaconState.hashTreeRoot - 32 balances | 1.1160 ms/op | 800.72 us/op | 1.39 |
| BeaconState.hashTreeRoot - 512 balances | 10.086 ms/op | 8.5415 ms/op | 1.18 |
| BeaconState.hashTreeRoot - 250000 balances | 212.53 ms/op | 179.25 ms/op | 1.19 |
| aggregationBits - 2048 els - zipIndexesInBitList | 25.843 us/op | 22.205 us/op | 1.16 |
| byteArrayEquals 32 | 57.021 ns/op | 54.892 ns/op | 1.04 |
| Buffer.compare 32 | 18.092 ns/op | 17.743 ns/op | 1.02 |
| byteArrayEquals 1024 | 1.6514 us/op | 1.6246 us/op | 1.02 |
| Buffer.compare 1024 | 26.711 ns/op | 25.208 ns/op | 1.06 |
| byteArrayEquals 16384 | 26.228 us/op | 25.920 us/op | 1.01 |
| Buffer.compare 16384 | 204.95 ns/op | 209.08 ns/op | 0.98 |
| byteArrayEquals 123687377 | 197.58 ms/op | 199.51 ms/op | 0.99 |
| Buffer.compare 123687377 | 9.3696 ms/op | 10.150 ms/op | 0.92 |
| byteArrayEquals 32 - diff last byte | 52.933 ns/op | 56.596 ns/op | 0.94 |
| Buffer.compare 32 - diff last byte | 17.418 ns/op | 21.509 ns/op | 0.81 |
| byteArrayEquals 1024 - diff last byte | 1.6106 us/op | 1.7571 us/op | 0.92 |
| Buffer.compare 1024 - diff last byte | 25.522 ns/op | 39.053 ns/op | 0.65 |
| byteArrayEquals 16384 - diff last byte | 25.675 us/op | 27.745 us/op | 0.93 |
| Buffer.compare 16384 - diff last byte | 204.42 ns/op | 217.84 ns/op | 0.94 |
| byteArrayEquals 123687377 - diff last byte | 197.47 ms/op | 224.12 ms/op | 0.88 |
| Buffer.compare 123687377 - diff last byte | 9.8981 ms/op | 15.920 ms/op | 0.62 |
| byteArrayEquals 32 - random bytes | 5.3800 ns/op | 5.6710 ns/op | 0.95 |
| Buffer.compare 32 - random bytes | 18.012 ns/op | 19.508 ns/op | 0.92 |
| byteArrayEquals 1024 - random bytes | 5.4230 ns/op | 5.6230 ns/op | 0.96 |
| Buffer.compare 1024 - random bytes | 17.902 ns/op | 19.365 ns/op | 0.92 |
| byteArrayEquals 16384 - random bytes | 5.2500 ns/op | 5.7220 ns/op | 0.92 |
| Buffer.compare 16384 - random bytes | 17.710 ns/op | 19.144 ns/op | 0.93 |
| byteArrayEquals 123687377 - random bytes | 6.9000 ns/op | 7.3500 ns/op | 0.94 |
| Buffer.compare 123687377 - random bytes | 18.660 ns/op | 27.050 ns/op | 0.69 |
| regular array get 100000 times | 33.178 us/op | 37.062 us/op | 0.90 |
| wrappedArray get 100000 times | 33.530 us/op | 51.237 us/op | 0.65 |
| arrayWithProxy get 100000 times | 13.001 ms/op | 14.427 ms/op | 0.90 |
| ssz.Root.equals | 48.221 ns/op | 52.175 ns/op | 0.92 |
| byteArrayEquals | 47.294 ns/op | 53.071 ns/op | 0.89 |
| Buffer.compare | 10.806 ns/op | 11.847 ns/op | 0.91 |
| processSlot - 1 slots | 14.940 us/op | 15.132 us/op | 0.99 |
| processSlot - 32 slots | 3.7843 ms/op | 3.1981 ms/op | 1.18 |
| getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei | 3.0922 ms/op | 6.0269 ms/op | 0.51 |
| getCommitteeAssignments - req 1 vs - 250000 vc | 2.1804 ms/op | 2.4266 ms/op | 0.90 |
| getCommitteeAssignments - req 100 vs - 250000 vc | 4.2431 ms/op | 4.6894 ms/op | 0.90 |
| getCommitteeAssignments - req 1000 vs - 250000 vc | 4.4513 ms/op | 4.9786 ms/op | 0.89 |
| findModifiedValidators - 10000 modified validators | 747.17 ms/op | 1.1987 s/op | 0.62 |
| findModifiedValidators - 1000 modified validators | 718.83 ms/op | 920.03 ms/op | 0.78 |
| findModifiedValidators - 100 modified validators | 259.76 ms/op | 442.22 ms/op | 0.59 |
| findModifiedValidators - 10 modified validators | 143.00 ms/op | 309.49 ms/op | 0.46 |
| findModifiedValidators - 1 modified validators | 148.96 ms/op | 330.89 ms/op | 0.45 |
| findModifiedValidators - no difference | 148.19 ms/op | 251.14 ms/op | 0.59 |
| compare ViewDUs | 6.7998 s/op | 10.052 s/op | 0.68 |
| compare each validator Uint8Array | 1.7228 s/op | 2.1609 s/op | 0.80 |
| compare ViewDU to Uint8Array | 1.3219 s/op | 1.6316 s/op | 0.81 |
| migrate state 1000000 validators, 24 modified, 0 new | 983.71 ms/op | 1.2119 s/op | 0.81 |
| migrate state 1000000 validators, 1700 modified, 1000 new | 1.2462 s/op | 1.3364 s/op | 0.93 |
| migrate state 1000000 validators, 3400 modified, 2000 new | 1.4205 s/op | 1.3090 s/op | 1.09 |
| migrate state 1500000 validators, 24 modified, 0 new | 1.0101 s/op | 802.93 ms/op | 1.26 |
| migrate state 1500000 validators, 1700 modified, 1000 new | 1.1609 s/op | 1.1278 s/op | 1.03 |
| migrate state 1500000 validators, 3400 modified, 2000 new | 1.3119 s/op | 1.4019 s/op | 0.94 |
| RootCache.getBlockRootAtSlot - 250000 vs - 7PWei | 4.3200 ns/op | 4.4800 ns/op | 0.96 |
| state getBlockRootAtSlot - 250000 vs - 7PWei | 568.20 ns/op | 504.40 ns/op | 1.13 |
| naive computeProposerIndex 100000 validators | 48.895 ms/op | 60.762 ms/op | 0.80 |
| computeProposerIndex 100000 validators | 1.5021 ms/op | 1.5425 ms/op | 0.97 |
| naiveGetNextSyncCommitteeIndices 1000 validators | 7.3783 s/op | 7.5655 s/op | 0.98 |
| getNextSyncCommitteeIndices 1000 validators | 111.30 ms/op | 111.15 ms/op | 1.00 |
| naiveGetNextSyncCommitteeIndices 10000 validators | 7.8201 s/op | 7.3143 s/op | 1.07 |
| getNextSyncCommitteeIndices 10000 validators | 108.03 ms/op | 111.21 ms/op | 0.97 |
| naiveGetNextSyncCommitteeIndices 100000 validators | 7.7275 s/op | 6.8874 s/op | 1.12 |
| getNextSyncCommitteeIndices 100000 validators | 114.63 ms/op | 110.16 ms/op | 1.04 |
| naive computeShuffledIndex 100000 validators | 24.751 s/op | 21.716 s/op | 1.14 |
| cached computeShuffledIndex 100000 validators | 561.19 ms/op | 551.54 ms/op | 1.02 |
| naive computeShuffledIndex 2000000 validators | 519.42 s/op | 525.46 s/op | 0.99 |
| cached computeShuffledIndex 2000000 validators | 79.661 s/op | 41.188 s/op | 1.93 |
| computeProposers - vc 250000 | 691.19 us/op | 622.46 us/op | 1.11 |
| computeEpochShuffling - vc 250000 | 49.552 ms/op | 42.867 ms/op | 1.16 |
| getNextSyncCommittee - vc 250000 | 12.735 ms/op | 10.605 ms/op | 1.20 |
| computeSigningRoot for AttestationData | 62.256 us/op | 23.018 us/op | 2.70 |
| hash AttestationData serialized data then Buffer.toString(base64) | 2.0410 us/op | 1.6273 us/op | 1.25 |
| toHexString serialized data | 1.7564 us/op | 1.2846 us/op | 1.37 |
| Buffer.toString(base64) | 166.49 ns/op | 161.03 ns/op | 1.03 |
| nodejs block root to RootHex using toHex | 153.48 ns/op | 194.14 ns/op | 0.79 |
| nodejs block root to RootHex using toRootHex | 98.467 ns/op | 89.687 ns/op | 1.10 |
| browser block root to RootHex using the deprecated toHexString | 243.67 ns/op | 230.55 ns/op | 1.06 |
| browser block root to RootHex using toHex | 190.93 ns/op | 185.10 ns/op | 1.03 |
| browser block root to RootHex using toRootHex | 170.70 ns/op | 167.80 ns/op | 1.02 |
by benchmarkbot/action
@twoeths what do you think about moving the "Aggregated Attestation Pool" row a bit further down in the dashboard?
sounds good to me @nflaig
@twoeths what do you think about moving the "Aggregated Attestation Pool" row a bit further down in the dashboard?
sounds good to me @nflaig
I moved the panels down in the last commit, it shows a lot of changes but all I did was move the 3 panels down (see lodestar-block-production panel)
:tada: This PR is included in v1.32.0 :tada: