-
-
Notifications
You must be signed in to change notification settings - Fork 289
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
chore: clean up workaround in ssz content type parser #6926
Closed
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## unstable #6926 +/- ##
============================================
- Coverage 62.52% 62.52% -0.01%
============================================
Files 575 575
Lines 60985 60983 -2
Branches 2125 2125
============================================
- Hits 38130 38128 -2
Misses 22816 22816
Partials 39 39 |
|
Benchmark suite | Current: 6d94510 | Previous: e6c559f | Ratio |
---|---|---|---|
Object access 1 prop | 0.36400 ns/op | 0.11200 ns/op | 3.25 |
Map access 1 prop | 0.33100 ns/op | 0.10700 ns/op | 3.09 |
enrSubnets - fastDeserialize 4 bits | 403.00 ns/op | 121.00 ns/op | 3.33 |
BeaconState.hashTreeRoot - No change | 741.00 ns/op | 217.00 ns/op | 3.41 |
Full benchmark results
Benchmark suite | Current: 6d94510 | Previous: e6c559f | Ratio |
---|---|---|---|
getPubkeys - index2pubkey - req 1000 vs - 250000 vc | 714.93 us/op | 680.59 us/op | 1.05 |
getPubkeys - validatorsArr - req 1000 vs - 250000 vc | 62.880 us/op | 37.482 us/op | 1.68 |
BLS verify - blst-native | 1.1301 ms/op | 1.0529 ms/op | 1.07 |
BLS verifyMultipleSignatures 3 - blst-native | 2.4098 ms/op | 2.2441 ms/op | 1.07 |
BLS verifyMultipleSignatures 8 - blst-native | 5.3416 ms/op | 4.9718 ms/op | 1.07 |
BLS verifyMultipleSignatures 32 - blst-native | 19.495 ms/op | 18.278 ms/op | 1.07 |
BLS verifyMultipleSignatures 64 - blst-native | 38.349 ms/op | 36.012 ms/op | 1.06 |
BLS verifyMultipleSignatures 128 - blst-native | 77.172 ms/op | 71.514 ms/op | 1.08 |
BLS deserializing 10000 signatures | 821.04 ms/op | 760.79 ms/op | 1.08 |
BLS deserializing 100000 signatures | 7.9830 s/op | 7.5924 s/op | 1.05 |
BLS verifyMultipleSignatures - same message - 3 - blst-native | 1.1624 ms/op | 1.0994 ms/op | 1.06 |
BLS verifyMultipleSignatures - same message - 8 - blst-native | 1.2962 ms/op | 1.2495 ms/op | 1.04 |
BLS verifyMultipleSignatures - same message - 32 - blst-native | 2.0313 ms/op | 2.0526 ms/op | 0.99 |
BLS verifyMultipleSignatures - same message - 64 - blst-native | 2.9930 ms/op | 3.2425 ms/op | 0.92 |
BLS verifyMultipleSignatures - same message - 128 - blst-native | 6.1439 ms/op | 5.3955 ms/op | 1.14 |
BLS aggregatePubkeys 32 - blst-native | 23.511 us/op | 22.102 us/op | 1.06 |
BLS aggregatePubkeys 128 - blst-native | 89.111 us/op | 82.664 us/op | 1.08 |
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 | 64.669 ms/op | 57.600 ms/op | 1.12 |
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 | 54.641 ms/op | 41.358 ms/op | 1.32 |
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 | 30.796 ms/op | 28.982 ms/op | 1.06 |
getSlashingsAndExits - default max | 103.60 us/op | 69.462 us/op | 1.49 |
getSlashingsAndExits - 2k | 285.27 us/op | 229.50 us/op | 1.24 |
proposeBlockBody type=full, size=empty | 5.0041 ms/op | 5.0027 ms/op | 1.00 |
isKnown best case - 1 super set check | 595.00 ns/op | 225.00 ns/op | 2.64 |
isKnown normal case - 2 super set checks | 518.00 ns/op | 221.00 ns/op | 2.34 |
isKnown worse case - 16 super set checks | 642.00 ns/op | 223.00 ns/op | 2.88 |
InMemoryCheckpointStateCache - add get delete | 6.6160 us/op | 3.6990 us/op | 1.79 |
validate api signedAggregateAndProof - struct | 2.5662 ms/op | 2.2215 ms/op | 1.16 |
validate gossip signedAggregateAndProof - struct | 2.4269 ms/op | 2.2253 ms/op | 1.09 |
validate gossip attestation - vc 640000 | 1.2151 ms/op | 1.0987 ms/op | 1.11 |
batch validate gossip attestation - vc 640000 - chunk 32 | 152.42 us/op | 126.21 us/op | 1.21 |
batch validate gossip attestation - vc 640000 - chunk 64 | 130.02 us/op | 114.32 us/op | 1.14 |
batch validate gossip attestation - vc 640000 - chunk 128 | 123.89 us/op | 105.64 us/op | 1.17 |
batch validate gossip attestation - vc 640000 - chunk 256 | 117.63 us/op | 104.59 us/op | 1.12 |
pickEth1Vote - no votes | 964.48 us/op | 847.56 us/op | 1.14 |
pickEth1Vote - max votes | 10.981 ms/op | 7.2483 ms/op | 1.51 |
pickEth1Vote - Eth1Data hashTreeRoot value x2048 | 18.712 ms/op | 13.108 ms/op | 1.43 |
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 | 22.269 ms/op | 17.456 ms/op | 1.28 |
pickEth1Vote - Eth1Data fastSerialize value x2048 | 434.54 us/op | 330.40 us/op | 1.32 |
pickEth1Vote - Eth1Data fastSerialize tree x2048 | 4.0376 ms/op | 4.7988 ms/op | 0.84 |
bytes32 toHexString | 661.00 ns/op | 353.00 ns/op | 1.87 |
bytes32 Buffer.toString(hex) | 470.00 ns/op | 190.00 ns/op | 2.47 |
bytes32 Buffer.toString(hex) from Uint8Array | 653.00 ns/op | 265.00 ns/op | 2.46 |
bytes32 Buffer.toString(hex) + 0x | 464.00 ns/op | 187.00 ns/op | 2.48 |
Object access 1 prop | 0.36400 ns/op | 0.11200 ns/op | 3.25 |
Map access 1 prop | 0.33100 ns/op | 0.10700 ns/op | 3.09 |
Object get x1000 | 5.0520 ns/op | 5.1910 ns/op | 0.97 |
Map get x1000 | 6.0360 ns/op | 5.5090 ns/op | 1.10 |
Object set x1000 | 25.808 ns/op | 24.932 ns/op | 1.04 |
Map set x1000 | 22.043 ns/op | 18.212 ns/op | 1.21 |
Return object 10000 times | 0.29810 ns/op | 0.27050 ns/op | 1.10 |
Throw Error 10000 times | 2.8241 us/op | 2.5170 us/op | 1.12 |
fastMsgIdFn sha256 / 200 bytes | 2.3250 us/op | 1.5780 us/op | 1.47 |
fastMsgIdFn h32 xxhash / 200 bytes | 515.00 ns/op | 178.00 ns/op | 2.89 |
fastMsgIdFn h64 xxhash / 200 bytes | 509.00 ns/op | 200.00 ns/op | 2.54 |
fastMsgIdFn sha256 / 1000 bytes | 6.3110 us/op | 5.3350 us/op | 1.18 |
fastMsgIdFn h32 xxhash / 1000 bytes | 656.00 ns/op | 295.00 ns/op | 2.22 |
fastMsgIdFn h64 xxhash / 1000 bytes | 554.00 ns/op | 263.00 ns/op | 2.11 |
fastMsgIdFn sha256 / 10000 bytes | 52.884 us/op | 46.294 us/op | 1.14 |
fastMsgIdFn h32 xxhash / 10000 bytes | 2.0130 us/op | 1.5850 us/op | 1.27 |
fastMsgIdFn h64 xxhash / 10000 bytes | 1.3650 us/op | 1.0220 us/op | 1.34 |
send data - 1000 256B messages | 10.554 ms/op | 9.4890 ms/op | 1.11 |
send data - 1000 512B messages | 17.109 ms/op | 12.867 ms/op | 1.33 |
send data - 1000 1024B messages | 24.350 ms/op | 19.907 ms/op | 1.22 |
send data - 1000 1200B messages | 22.490 ms/op | 21.536 ms/op | 1.04 |
send data - 1000 2048B messages | 33.915 ms/op | 26.333 ms/op | 1.29 |
send data - 1000 4096B messages | 31.521 ms/op | 24.722 ms/op | 1.28 |
send data - 1000 16384B messages | 70.831 ms/op | 59.399 ms/op | 1.19 |
send data - 1000 65536B messages | 264.91 ms/op | 184.61 ms/op | 1.43 |
enrSubnets - fastDeserialize 64 bits | 1.1660 us/op | 808.00 ns/op | 1.44 |
enrSubnets - ssz BitVector 64 bits | 635.00 ns/op | 266.00 ns/op | 2.39 |
enrSubnets - fastDeserialize 4 bits | 403.00 ns/op | 121.00 ns/op | 3.33 |
enrSubnets - ssz BitVector 4 bits | 615.00 ns/op | 263.00 ns/op | 2.34 |
prioritizePeers score -10:0 att 32-0.1 sync 2-0 | 169.00 us/op | 110.38 us/op | 1.53 |
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 | 161.41 us/op | 129.77 us/op | 1.24 |
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 | 259.30 us/op | 189.31 us/op | 1.37 |
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 | 450.51 us/op | 336.56 us/op | 1.34 |
prioritizePeers score 0:0 att 64-1 sync 4-1 | 563.49 us/op | 405.49 us/op | 1.39 |
array of 16000 items push then shift | 1.3847 us/op | 1.1859 us/op | 1.17 |
LinkedList of 16000 items push then shift | 6.9930 ns/op | 7.0350 ns/op | 0.99 |
array of 16000 items push then pop | 115.57 ns/op | 77.215 ns/op | 1.50 |
LinkedList of 16000 items push then pop | 6.9620 ns/op | 6.0860 ns/op | 1.14 |
array of 24000 items push then shift | 2.1450 us/op | 1.7278 us/op | 1.24 |
LinkedList of 24000 items push then shift | 7.2190 ns/op | 6.3580 ns/op | 1.14 |
array of 24000 items push then pop | 186.35 ns/op | 98.779 ns/op | 1.89 |
LinkedList of 24000 items push then pop | 6.6910 ns/op | 5.6940 ns/op | 1.18 |
intersect bitArray bitLen 8 | 5.5340 ns/op | 4.8560 ns/op | 1.14 |
intersect array and set length 8 | 39.819 ns/op | 34.627 ns/op | 1.15 |
intersect bitArray bitLen 128 | 27.415 ns/op | 24.696 ns/op | 1.11 |
intersect array and set length 128 | 630.86 ns/op | 528.50 ns/op | 1.19 |
bitArray.getTrueBitIndexes() bitLen 128 | 2.5970 us/op | 1.0660 us/op | 2.44 |
bitArray.getTrueBitIndexes() bitLen 248 | 3.8460 us/op | 1.8360 us/op | 2.09 |
bitArray.getTrueBitIndexes() bitLen 512 | 7.5960 us/op | 3.4220 us/op | 2.22 |
Buffer.concat 32 items | 1.1070 us/op | 759.00 ns/op | 1.46 |
Uint8Array.set 32 items | 1.7800 us/op | 1.5850 us/op | 1.12 |
Buffer.copy | 2.2200 us/op | 2.0840 us/op | 1.07 |
Uint8Array.set - with subarray | 2.3950 us/op | 2.8890 us/op | 0.83 |
Uint8Array.set - without subarray | 1.5120 us/op | 1.8590 us/op | 0.81 |
Set add up to 64 items then delete first | 1.8516 us/op | 1.7721 us/op | 1.04 |
OrderedSet add up to 64 items then delete first | 2.9493 us/op | 2.7261 us/op | 1.08 |
Set add up to 64 items then delete last | 2.0313 us/op | 2.0798 us/op | 0.98 |
OrderedSet add up to 64 items then delete last | 3.2065 us/op | 2.9007 us/op | 1.11 |
Set add up to 64 items then delete middle | 2.0513 us/op | 1.8476 us/op | 1.11 |
OrderedSet add up to 64 items then delete middle | 4.6114 us/op | 4.1120 us/op | 1.12 |
Set add up to 128 items then delete first | 3.9987 us/op | 3.9800 us/op | 1.00 |
OrderedSet add up to 128 items then delete first | 6.0262 us/op | 6.1807 us/op | 0.98 |
Set add up to 128 items then delete last | 3.9560 us/op | 3.8154 us/op | 1.04 |
OrderedSet add up to 128 items then delete last | 6.6002 us/op | 5.7575 us/op | 1.15 |
Set add up to 128 items then delete middle | 4.0648 us/op | 3.8230 us/op | 1.06 |
OrderedSet add up to 128 items then delete middle | 12.762 us/op | 11.233 us/op | 1.14 |
Set add up to 256 items then delete first | 8.3261 us/op | 7.7339 us/op | 1.08 |
OrderedSet add up to 256 items then delete first | 12.539 us/op | 12.154 us/op | 1.03 |
Set add up to 256 items then delete last | 7.8594 us/op | 7.4695 us/op | 1.05 |
OrderedSet add up to 256 items then delete last | 12.119 us/op | 11.429 us/op | 1.06 |
Set add up to 256 items then delete middle | 7.6566 us/op | 7.4371 us/op | 1.03 |
OrderedSet add up to 256 items then delete middle | 34.711 us/op | 33.522 us/op | 1.04 |
transfer serialized Status (84 B) | 1.5510 us/op | 1.2560 us/op | 1.23 |
copy serialized Status (84 B) | 1.3280 us/op | 974.00 ns/op | 1.36 |
transfer serialized SignedVoluntaryExit (112 B) | 1.6360 us/op | 1.3000 us/op | 1.26 |
copy serialized SignedVoluntaryExit (112 B) | 1.4280 us/op | 1.0520 us/op | 1.36 |
transfer serialized ProposerSlashing (416 B) | 2.2930 us/op | 2.0170 us/op | 1.14 |
copy serialized ProposerSlashing (416 B) | 2.4650 us/op | 2.1440 us/op | 1.15 |
transfer serialized Attestation (485 B) | 2.3850 us/op | 1.9400 us/op | 1.23 |
copy serialized Attestation (485 B) | 2.4310 us/op | 2.0850 us/op | 1.17 |
transfer serialized AttesterSlashing (33232 B) | 2.8820 us/op | 1.9820 us/op | 1.45 |
copy serialized AttesterSlashing (33232 B) | 7.2670 us/op | 5.6550 us/op | 1.29 |
transfer serialized Small SignedBeaconBlock (128000 B) | 3.6240 us/op | 2.4230 us/op | 1.50 |
copy serialized Small SignedBeaconBlock (128000 B) | 17.359 us/op | 12.111 us/op | 1.43 |
transfer serialized Avg SignedBeaconBlock (200000 B) | 3.3050 us/op | 2.6970 us/op | 1.23 |
copy serialized Avg SignedBeaconBlock (200000 B) | 21.590 us/op | 17.000 us/op | 1.27 |
transfer serialized BlobsSidecar (524380 B) | 3.3290 us/op | 2.5320 us/op | 1.31 |
copy serialized BlobsSidecar (524380 B) | 74.800 us/op | 109.53 us/op | 0.68 |
transfer serialized Big SignedBeaconBlock (1000000 B) | 3.5760 us/op | 2.9630 us/op | 1.21 |
copy serialized Big SignedBeaconBlock (1000000 B) | 252.61 us/op | 130.50 us/op | 1.94 |
pass gossip attestations to forkchoice per slot | 2.6205 ms/op | 2.3925 ms/op | 1.10 |
forkChoice updateHead vc 100000 bc 64 eq 0 | 392.59 us/op | 374.43 us/op | 1.05 |
forkChoice updateHead vc 600000 bc 64 eq 0 | 2.5104 ms/op | 2.5107 ms/op | 1.00 |
forkChoice updateHead vc 1000000 bc 64 eq 0 | 4.1920 ms/op | 4.5978 ms/op | 0.91 |
forkChoice updateHead vc 600000 bc 320 eq 0 | 2.5437 ms/op | 2.5358 ms/op | 1.00 |
forkChoice updateHead vc 600000 bc 1200 eq 0 | 2.8110 ms/op | 2.5371 ms/op | 1.11 |
forkChoice updateHead vc 600000 bc 7200 eq 0 | 2.8909 ms/op | 2.7924 ms/op | 1.04 |
forkChoice updateHead vc 600000 bc 64 eq 1000 | 9.6599 ms/op | 9.4519 ms/op | 1.02 |
forkChoice updateHead vc 600000 bc 64 eq 10000 | 9.8739 ms/op | 9.3944 ms/op | 1.05 |
forkChoice updateHead vc 600000 bc 64 eq 300000 | 12.115 ms/op | 10.875 ms/op | 1.11 |
computeDeltas 500000 validators 300 proto nodes | 3.3207 ms/op | 3.0213 ms/op | 1.10 |
computeDeltas 500000 validators 1200 proto nodes | 3.2062 ms/op | 3.1402 ms/op | 1.02 |
computeDeltas 500000 validators 7200 proto nodes | 3.2562 ms/op | 3.0369 ms/op | 1.07 |
computeDeltas 750000 validators 300 proto nodes | 5.0268 ms/op | 4.4145 ms/op | 1.14 |
computeDeltas 750000 validators 1200 proto nodes | 4.7980 ms/op | 4.4399 ms/op | 1.08 |
computeDeltas 750000 validators 7200 proto nodes | 4.7306 ms/op | 4.3963 ms/op | 1.08 |
computeDeltas 1400000 validators 300 proto nodes | 8.7752 ms/op | 8.2329 ms/op | 1.07 |
computeDeltas 1400000 validators 1200 proto nodes | 8.9552 ms/op | 8.2271 ms/op | 1.09 |
computeDeltas 1400000 validators 7200 proto nodes | 8.6121 ms/op | 8.2651 ms/op | 1.04 |
computeDeltas 2100000 validators 300 proto nodes | 12.925 ms/op | 11.962 ms/op | 1.08 |
computeDeltas 2100000 validators 1200 proto nodes | 12.655 ms/op | 12.354 ms/op | 1.02 |
computeDeltas 2100000 validators 7200 proto nodes | 13.346 ms/op | 12.111 ms/op | 1.10 |
altair processAttestation - 250000 vs - 7PWei normalcase | 1.5011 ms/op | 1.3274 ms/op | 1.13 |
altair processAttestation - 250000 vs - 7PWei worstcase | 2.4693 ms/op | 2.0343 ms/op | 1.21 |
altair processAttestation - setStatus - 1/6 committees join | 105.86 us/op | 68.473 us/op | 1.55 |
altair processAttestation - setStatus - 1/3 committees join | 201.00 us/op | 131.70 us/op | 1.53 |
altair processAttestation - setStatus - 1/2 committees join | 276.80 us/op | 183.78 us/op | 1.51 |
altair processAttestation - setStatus - 2/3 committees join | 382.80 us/op | 262.07 us/op | 1.46 |
altair processAttestation - setStatus - 4/5 committees join | 520.95 us/op | 377.46 us/op | 1.38 |
altair processAttestation - setStatus - 100% committees join | 663.58 us/op | 456.20 us/op | 1.45 |
altair processBlock - 250000 vs - 7PWei normalcase | 3.5479 ms/op | 3.4702 ms/op | 1.02 |
altair processBlock - 250000 vs - 7PWei normalcase hashState | 23.022 ms/op | 24.516 ms/op | 0.94 |
altair processBlock - 250000 vs - 7PWei worstcase | 40.252 ms/op | 39.116 ms/op | 1.03 |
altair processBlock - 250000 vs - 7PWei worstcase hashState | 75.245 ms/op | 76.947 ms/op | 0.98 |
phase0 processBlock - 250000 vs - 7PWei normalcase | 1.8902 ms/op | 2.1728 ms/op | 0.87 |
phase0 processBlock - 250000 vs - 7PWei worstcase | 26.446 ms/op | 22.028 ms/op | 1.20 |
altair processEth1Data - 250000 vs - 7PWei normalcase | 320.05 us/op | 237.11 us/op | 1.35 |
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 | 5.9850 us/op | 4.1210 us/op | 1.45 |
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 | 19.395 us/op | 17.538 us/op | 1.11 |
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 | 7.9470 us/op | 6.3970 us/op | 1.24 |
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 | 5.7810 us/op | 4.5490 us/op | 1.27 |
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 | 81.879 us/op | 69.570 us/op | 1.18 |
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 | 955.39 us/op | 490.12 us/op | 1.95 |
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 | 791.08 us/op | 1.0416 ms/op | 0.76 |
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 | 605.64 us/op | 1.1104 ms/op | 0.55 |
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 | 2.0076 ms/op | 1.8457 ms/op | 1.09 |
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 | 1.1208 ms/op | 1.1820 ms/op | 0.95 |
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 | 3.1622 ms/op | 2.9122 ms/op | 1.09 |
Tree 40 250000 create | 228.97 ms/op | 174.28 ms/op | 1.31 |
Tree 40 250000 get(125000) | 114.99 ns/op | 103.06 ns/op | 1.12 |
Tree 40 250000 set(125000) | 594.19 ns/op | 482.01 ns/op | 1.23 |
Tree 40 250000 toArray() | 19.345 ms/op | 11.896 ms/op | 1.63 |
Tree 40 250000 iterate all - toArray() + loop | 19.836 ms/op | 11.851 ms/op | 1.67 |
Tree 40 250000 iterate all - get(i) | 56.376 ms/op | 39.135 ms/op | 1.44 |
MutableVector 250000 create | 10.477 ms/op | 12.563 ms/op | 0.83 |
MutableVector 250000 get(125000) | 6.1110 ns/op | 5.6030 ns/op | 1.09 |
MutableVector 250000 set(125000) | 175.15 ns/op | 161.61 ns/op | 1.08 |
MutableVector 250000 toArray() | 3.0843 ms/op | 2.5575 ms/op | 1.21 |
MutableVector 250000 iterate all - toArray() + loop | 3.3519 ms/op | 2.6683 ms/op | 1.26 |
MutableVector 250000 iterate all - get(i) | 1.5006 ms/op | 1.4069 ms/op | 1.07 |
Array 250000 create | 2.9318 ms/op | 2.2465 ms/op | 1.31 |
Array 250000 clone - spread | 1.3126 ms/op | 1.1641 ms/op | 1.13 |
Array 250000 get(125000) | 0.60900 ns/op | 0.35600 ns/op | 1.71 |
Array 250000 set(125000) | 0.60900 ns/op | 0.36600 ns/op | 1.66 |
Array 250000 iterate all - loop | 78.773 us/op | 74.972 us/op | 1.05 |
effectiveBalanceIncrements clone Uint8Array 300000 | 17.731 us/op | 12.708 us/op | 1.40 |
effectiveBalanceIncrements clone MutableVector 300000 | 341.00 ns/op | 101.00 ns/op | 3.38 |
effectiveBalanceIncrements rw all Uint8Array 300000 | 170.56 us/op | 162.95 us/op | 1.05 |
effectiveBalanceIncrements rw all MutableVector 300000 | 57.002 ms/op | 52.654 ms/op | 1.08 |
phase0 afterProcessEpoch - 250000 vs - 7PWei | 78.753 ms/op | 77.154 ms/op | 1.02 |
phase0 beforeProcessEpoch - 250000 vs - 7PWei | 59.107 ms/op | 36.117 ms/op | 1.64 |
altair processEpoch - mainnet_e81889 | 370.17 ms/op | 347.15 ms/op | 1.07 |
mainnet_e81889 - altair beforeProcessEpoch | 58.329 ms/op | 43.367 ms/op | 1.35 |
mainnet_e81889 - altair processJustificationAndFinalization | 17.300 us/op | 9.2700 us/op | 1.87 |
mainnet_e81889 - altair processInactivityUpdates | 6.5402 ms/op | 5.2472 ms/op | 1.25 |
mainnet_e81889 - altair processRewardsAndPenalties | 42.058 ms/op | 49.556 ms/op | 0.85 |
mainnet_e81889 - altair processRegistryUpdates | 3.2000 us/op | 1.5830 us/op | 2.02 |
mainnet_e81889 - altair processSlashings | 1.1170 us/op | 348.00 ns/op | 3.21 |
mainnet_e81889 - altair processEth1DataReset | 1.0540 us/op | 267.00 ns/op | 3.95 |
mainnet_e81889 - altair processEffectiveBalanceUpdates | 841.31 us/op | 1.1248 ms/op | 0.75 |
mainnet_e81889 - altair processSlashingsReset | 4.3670 us/op | 2.3290 us/op | 1.88 |
mainnet_e81889 - altair processRandaoMixesReset | 5.2570 us/op | 2.9780 us/op | 1.77 |
mainnet_e81889 - altair processHistoricalRootsUpdate | 1.1300 us/op | 365.00 ns/op | 3.10 |
mainnet_e81889 - altair processParticipationFlagUpdates | 2.3270 us/op | 1.2480 us/op | 1.86 |
mainnet_e81889 - altair processSyncCommitteeUpdates | 1.0730 us/op | 297.00 ns/op | 3.61 |
mainnet_e81889 - altair afterProcessEpoch | 81.297 ms/op | 80.556 ms/op | 1.01 |
capella processEpoch - mainnet_e217614 | 1.1059 s/op | 1.1798 s/op | 0.94 |
mainnet_e217614 - capella beforeProcessEpoch | 220.93 ms/op | 217.77 ms/op | 1.01 |
mainnet_e217614 - capella processJustificationAndFinalization | 10.820 us/op | 9.7180 us/op | 1.11 |
mainnet_e217614 - capella processInactivityUpdates | 15.107 ms/op | 14.896 ms/op | 1.01 |
mainnet_e217614 - capella processRewardsAndPenalties | 243.14 ms/op | 251.56 ms/op | 0.97 |
mainnet_e217614 - capella processRegistryUpdates | 15.018 us/op | 10.264 us/op | 1.46 |
mainnet_e217614 - capella processSlashings | 885.00 ns/op | 313.00 ns/op | 2.83 |
mainnet_e217614 - capella processEth1DataReset | 776.00 ns/op | 240.00 ns/op | 3.23 |
mainnet_e217614 - capella processEffectiveBalanceUpdates | 4.7140 ms/op | 3.8012 ms/op | 1.24 |
mainnet_e217614 - capella processSlashingsReset | 2.8580 us/op | 1.5520 us/op | 1.84 |
mainnet_e217614 - capella processRandaoMixesReset | 4.1600 us/op | 2.3650 us/op | 1.76 |
mainnet_e217614 - capella processHistoricalRootsUpdate | 761.00 ns/op | 265.00 ns/op | 2.87 |
mainnet_e217614 - capella processParticipationFlagUpdates | 2.1980 us/op | 1.1070 us/op | 1.99 |
mainnet_e217614 - capella afterProcessEpoch | 256.04 ms/op | 228.63 ms/op | 1.12 |
phase0 processEpoch - mainnet_e58758 | 329.92 ms/op | 354.81 ms/op | 0.93 |
mainnet_e58758 - phase0 beforeProcessEpoch | 108.34 ms/op | 98.406 ms/op | 1.10 |
mainnet_e58758 - phase0 processJustificationAndFinalization | 17.663 us/op | 9.4680 us/op | 1.87 |
mainnet_e58758 - phase0 processRewardsAndPenalties | 30.785 ms/op | 32.832 ms/op | 0.94 |
mainnet_e58758 - phase0 processRegistryUpdates | 9.0410 us/op | 5.6420 us/op | 1.60 |
mainnet_e58758 - phase0 processSlashings | 785.00 ns/op | 288.00 ns/op | 2.73 |
mainnet_e58758 - phase0 processEth1DataReset | 800.00 ns/op | 300.00 ns/op | 2.67 |
mainnet_e58758 - phase0 processEffectiveBalanceUpdates | 779.80 us/op | 723.34 us/op | 1.08 |
mainnet_e58758 - phase0 processSlashingsReset | 3.8190 us/op | 1.4860 us/op | 2.57 |
mainnet_e58758 - phase0 processRandaoMixesReset | 6.8240 us/op | 2.2010 us/op | 3.10 |
mainnet_e58758 - phase0 processHistoricalRootsUpdate | 1.2830 us/op | 274.00 ns/op | 4.68 |
mainnet_e58758 - phase0 processParticipationRecordUpdates | 4.5330 us/op | 3.4700 us/op | 1.31 |
mainnet_e58758 - phase0 afterProcessEpoch | 69.510 ms/op | 63.283 ms/op | 1.10 |
phase0 processEffectiveBalanceUpdates - 250000 normalcase | 820.56 us/op | 755.84 us/op | 1.09 |
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 | 1.6361 ms/op | 1.4120 ms/op | 1.16 |
altair processInactivityUpdates - 250000 normalcase | 18.527 ms/op | 16.188 ms/op | 1.14 |
altair processInactivityUpdates - 250000 worstcase | 18.873 ms/op | 16.084 ms/op | 1.17 |
phase0 processRegistryUpdates - 250000 normalcase | 8.6140 us/op | 4.2810 us/op | 2.01 |
phase0 processRegistryUpdates - 250000 badcase_full_deposits | 304.24 us/op | 302.09 us/op | 1.01 |
phase0 processRegistryUpdates - 250000 worstcase 0.5 | 119.28 ms/op | 107.69 ms/op | 1.11 |
altair processRewardsAndPenalties - 250000 normalcase | 44.661 ms/op | 39.511 ms/op | 1.13 |
altair processRewardsAndPenalties - 250000 worstcase | 42.074 ms/op | 39.312 ms/op | 1.07 |
phase0 getAttestationDeltas - 250000 normalcase | 6.7414 ms/op | 5.6705 ms/op | 1.19 |
phase0 getAttestationDeltas - 250000 worstcase | 8.4213 ms/op | 5.9105 ms/op | 1.42 |
phase0 processSlashings - 250000 worstcase | 94.031 us/op | 48.773 us/op | 1.93 |
altair processSyncCommitteeUpdates - 250000 | 119.62 ms/op | 107.30 ms/op | 1.11 |
BeaconState.hashTreeRoot - No change | 741.00 ns/op | 217.00 ns/op | 3.41 |
BeaconState.hashTreeRoot - 1 full validator | 124.92 us/op | 115.84 us/op | 1.08 |
BeaconState.hashTreeRoot - 32 full validator | 1.1637 ms/op | 1.3593 ms/op | 0.86 |
BeaconState.hashTreeRoot - 512 full validator | 10.754 ms/op | 13.302 ms/op | 0.81 |
BeaconState.hashTreeRoot - 1 validator.effectiveBalance | 113.23 us/op | 128.00 us/op | 0.88 |
BeaconState.hashTreeRoot - 32 validator.effectiveBalance | 1.9290 ms/op | 1.6546 ms/op | 1.17 |
BeaconState.hashTreeRoot - 512 validator.effectiveBalance | 26.627 ms/op | 20.866 ms/op | 1.28 |
BeaconState.hashTreeRoot - 1 balances | 109.45 us/op | 122.88 us/op | 0.89 |
BeaconState.hashTreeRoot - 32 balances | 976.00 us/op | 784.34 us/op | 1.24 |
BeaconState.hashTreeRoot - 512 balances | 9.6038 ms/op | 11.739 ms/op | 0.82 |
BeaconState.hashTreeRoot - 250000 balances | 186.21 ms/op | 164.03 ms/op | 1.14 |
aggregationBits - 2048 els - zipIndexesInBitList | 41.145 us/op | 18.713 us/op | 2.20 |
byteArrayEquals 32 | 48.561 ns/op | 46.390 ns/op | 1.05 |
Buffer.compare 32 | 15.682 ns/op | 16.062 ns/op | 0.98 |
byteArrayEquals 1024 | 1.2950 us/op | 1.2397 us/op | 1.04 |
Buffer.compare 1024 | 22.999 ns/op | 22.594 ns/op | 1.02 |
byteArrayEquals 16384 | 20.411 us/op | 19.672 us/op | 1.04 |
Buffer.compare 16384 | 179.43 ns/op | 175.26 ns/op | 1.02 |
byteArrayEquals 123687377 | 153.76 ms/op | 146.38 ms/op | 1.05 |
Buffer.compare 123687377 | 5.6217 ms/op | 3.6191 ms/op | 1.55 |
byteArrayEquals 32 - diff last byte | 48.282 ns/op | 45.481 ns/op | 1.06 |
Buffer.compare 32 - diff last byte | 15.932 ns/op | 15.718 ns/op | 1.01 |
byteArrayEquals 1024 - diff last byte | 1.2911 us/op | 1.2204 us/op | 1.06 |
Buffer.compare 1024 - diff last byte | 24.668 ns/op | 22.587 ns/op | 1.09 |
byteArrayEquals 16384 - diff last byte | 20.200 us/op | 19.385 us/op | 1.04 |
Buffer.compare 16384 - diff last byte | 174.33 ns/op | 168.99 ns/op | 1.03 |
byteArrayEquals 123687377 - diff last byte | 152.28 ms/op | 145.72 ms/op | 1.04 |
Buffer.compare 123687377 - diff last byte | 6.1952 ms/op | 5.2654 ms/op | 1.18 |
byteArrayEquals 32 - random bytes | 4.8270 ns/op | 4.2380 ns/op | 1.14 |
Buffer.compare 32 - random bytes | 15.185 ns/op | 14.002 ns/op | 1.08 |
byteArrayEquals 1024 - random bytes | 4.7840 ns/op | 4.2100 ns/op | 1.14 |
Buffer.compare 1024 - random bytes | 14.867 ns/op | 13.798 ns/op | 1.08 |
byteArrayEquals 16384 - random bytes | 4.7850 ns/op | 4.2030 ns/op | 1.14 |
Buffer.compare 16384 - random bytes | 14.949 ns/op | 13.767 ns/op | 1.09 |
byteArrayEquals 123687377 - random bytes | 7.6900 ns/op | 5.4700 ns/op | 1.41 |
Buffer.compare 123687377 - random bytes | 17.770 ns/op | 14.670 ns/op | 1.21 |
regular array get 100000 times | 29.736 us/op | 27.323 us/op | 1.09 |
wrappedArray get 100000 times | 29.569 us/op | 27.097 us/op | 1.09 |
arrayWithProxy get 100000 times | 9.8228 ms/op | 8.2046 ms/op | 1.20 |
ssz.Root.equals | 42.314 ns/op | 39.494 ns/op | 1.07 |
byteArrayEquals | 43.050 ns/op | 39.174 ns/op | 1.10 |
Buffer.compare | 8.6720 ns/op | 8.0020 ns/op | 1.08 |
shuffle list - 16384 els | 5.4673 ms/op | 5.0002 ms/op | 1.09 |
shuffle list - 250000 els | 80.385 ms/op | 72.911 ms/op | 1.10 |
processSlot - 1 slots | 11.658 us/op | 10.110 us/op | 1.15 |
processSlot - 32 slots | 2.8949 ms/op | 2.8659 ms/op | 1.01 |
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei | 41.817 ms/op | 42.280 ms/op | 0.99 |
getCommitteeAssignments - req 1 vs - 250000 vc | 1.7849 ms/op | 1.7798 ms/op | 1.00 |
getCommitteeAssignments - req 100 vs - 250000 vc | 3.5367 ms/op | 3.4565 ms/op | 1.02 |
getCommitteeAssignments - req 1000 vs - 250000 vc | 3.7763 ms/op | 3.6917 ms/op | 1.02 |
findModifiedValidators - 10000 modified validators | 219.31 ms/op | 228.07 ms/op | 0.96 |
findModifiedValidators - 1000 modified validators | 183.15 ms/op | 161.64 ms/op | 1.13 |
findModifiedValidators - 100 modified validators | 144.29 ms/op | 157.34 ms/op | 0.92 |
findModifiedValidators - 10 modified validators | 122.31 ms/op | 140.47 ms/op | 0.87 |
findModifiedValidators - 1 modified validators | 153.88 ms/op | 136.59 ms/op | 1.13 |
findModifiedValidators - no difference | 149.90 ms/op | 148.61 ms/op | 1.01 |
compare ViewDUs | 3.2429 s/op | 2.8320 s/op | 1.15 |
compare each validator Uint8Array | 1.5379 s/op | 1.5759 s/op | 0.98 |
compare ViewDU to Uint8Array | 745.28 ms/op | 669.58 ms/op | 1.11 |
migrate state 1000000 validators, 24 modified, 0 new | 434.37 ms/op | 569.76 ms/op | 0.76 |
migrate state 1000000 validators, 1700 modified, 1000 new | 722.51 ms/op | 795.04 ms/op | 0.91 |
migrate state 1000000 validators, 3400 modified, 2000 new | 1.0131 s/op | 990.87 ms/op | 1.02 |
migrate state 1500000 validators, 24 modified, 0 new | 544.04 ms/op | 563.49 ms/op | 0.97 |
migrate state 1500000 validators, 1700 modified, 1000 new | 801.36 ms/op | 742.10 ms/op | 1.08 |
migrate state 1500000 validators, 3400 modified, 2000 new | 1.0497 s/op | 981.87 ms/op | 1.07 |
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei | 7.1200 ns/op | 3.7200 ns/op | 1.91 |
state getBlockRootAtSlot - 250000 vs - 7PWei | 594.11 ns/op | 517.87 ns/op | 1.15 |
computeProposers - vc 250000 | 6.8305 ms/op | 6.3329 ms/op | 1.08 |
computeEpochShuffling - vc 250000 | 90.528 ms/op | 80.882 ms/op | 1.12 |
getNextSyncCommittee - vc 250000 | 111.30 ms/op | 94.895 ms/op | 1.17 |
computeSigningRoot for AttestationData | 20.746 us/op | 17.136 us/op | 1.21 |
hash AttestationData serialized data then Buffer.toString(base64) | 1.3127 us/op | 1.1619 us/op | 1.13 |
toHexString serialized data | 907.85 ns/op | 756.74 ns/op | 1.20 |
Buffer.toString(base64) | 160.20 ns/op | 139.31 ns/op | 1.15 |
by benchmarkbot/action
Closed in favor of #7101 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Motivation
Workaround in ssz content type parser is quite hacky and triggers a deprecation warning if a request with ssz body is sent for the first time.
Description
Clean up workaround in ssz content type parser
Depends on fastify/fastify#5545 which if not back ported to v4 requires us to upgrade to fastify v5