这是indexloc提供的服务,不要输入任何密码
Skip to content

Conversation

@wemeetagain
Copy link
Member

Motivation

Description

  • Bun does support imports, I was mistaken to say it didn't. The issue I ran into was that the referenced file did not exist!
  • Use the typescript directly

@wemeetagain wemeetagain requested a review from a team as a code owner September 23, 2025 13:12
@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @wemeetagain, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request addresses a configuration issue where the Bun runtime was attempting to import a non-existent JavaScript file for the prometheus-gc-stats module. By updating the package.json to directly reference the correct TypeScript source file, the project ensures proper module resolution and functionality within the Bun environment, aligning with its actual import capabilities.

Highlights

  • Corrected Bun Import Path: The import path for the prometheus-gc-stats wrapper when running on Bun has been updated to correctly point to its TypeScript source file (.ts) instead of a non-existent JavaScript file (.js). This resolves a previous misunderstanding regarding Bun's module import capabilities.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request updates the package.json to correctly point to the TypeScript source file for the prometheus-gc-stats-wrapper when running under the Bun runtime. This change aligns with the project's existing configuration for Bun-specific paths and resolves an issue where the previously referenced compiled JavaScript file might not exist. The change is correct and improves the development experience with Bun. I have no further comments.

@codecov
Copy link

codecov bot commented Sep 23, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 52.22%. Comparing base (8b45b1e) to head (dd291b4).
⚠️ Report is 2 commits behind head on unstable.

Additional details and impacted files
@@             Coverage Diff              @@
##           unstable    #8455      +/-   ##
============================================
- Coverage     52.22%   52.22%   -0.01%     
============================================
  Files           853      853              
  Lines         64898    64898              
  Branches       4765     4763       -2     
============================================
- Hits          33893    33890       -3     
- Misses        30935    30938       +3     
  Partials         70       70              
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@github-actions
Copy link
Contributor

⚠️ Performance Alert ⚠️

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: 3d572f3 Previous: 8b45b1e Ratio
getSlashingsAndExits - default max 282.67 us/op 83.165 us/op 3.40
Full benchmark results
Benchmark suite Current: 3d572f3 Previous: 8b45b1e Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 2.2284 ms/op 1.2754 ms/op 1.75
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 60.227 us/op 38.569 us/op 1.56
BLS verify - blst 1.1283 ms/op 988.99 us/op 1.14
BLS verifyMultipleSignatures 3 - blst 1.7559 ms/op 1.3210 ms/op 1.33
BLS verifyMultipleSignatures 8 - blst 3.0288 ms/op 1.9808 ms/op 1.53
BLS verifyMultipleSignatures 32 - blst 7.1611 ms/op 5.0284 ms/op 1.42
BLS verifyMultipleSignatures 64 - blst 15.134 ms/op 9.4093 ms/op 1.61
BLS verifyMultipleSignatures 128 - blst 23.893 ms/op 18.846 ms/op 1.27
BLS deserializing 10000 signatures 873.36 ms/op 783.58 ms/op 1.11
BLS deserializing 100000 signatures 8.9339 s/op 7.2816 s/op 1.23
BLS verifyMultipleSignatures - same message - 3 - blst 1.2809 ms/op 1.0094 ms/op 1.27
BLS verifyMultipleSignatures - same message - 8 - blst 1.4819 ms/op 1.1626 ms/op 1.27
BLS verifyMultipleSignatures - same message - 32 - blst 2.3458 ms/op 1.9550 ms/op 1.20
BLS verifyMultipleSignatures - same message - 64 - blst 3.5865 ms/op 2.7635 ms/op 1.30
BLS verifyMultipleSignatures - same message - 128 - blst 5.3152 ms/op 4.7395 ms/op 1.12
BLS aggregatePubkeys 32 - blst 22.410 us/op 20.864 us/op 1.07
BLS aggregatePubkeys 128 - blst 87.588 us/op 74.088 us/op 1.18
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 97.006 ms/op 68.256 ms/op 1.42
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 123.35 ms/op 58.741 ms/op 2.10
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 58.480 ms/op 39.072 ms/op 1.50
getSlashingsAndExits - default max 282.67 us/op 83.165 us/op 3.40
getSlashingsAndExits - 2k 584.24 us/op 426.44 us/op 1.37
isKnown best case - 1 super set check 312.00 ns/op 232.00 ns/op 1.34
isKnown normal case - 2 super set checks 325.00 ns/op 221.00 ns/op 1.47
isKnown worse case - 16 super set checks 240.00 ns/op 212.00 ns/op 1.13
InMemoryCheckpointStateCache - add get delete 3.4730 us/op 2.4320 us/op 1.43
validate api signedAggregateAndProof - struct 1.9748 ms/op 1.7339 ms/op 1.14
validate gossip signedAggregateAndProof - struct 2.0271 ms/op 1.6878 ms/op 1.20
batch validate gossip attestation - vc 640000 - chunk 32 178.04 us/op 121.88 us/op 1.46
batch validate gossip attestation - vc 640000 - chunk 64 148.37 us/op 109.37 us/op 1.36
batch validate gossip attestation - vc 640000 - chunk 128 134.89 us/op 101.49 us/op 1.33
batch validate gossip attestation - vc 640000 - chunk 256 125.17 us/op 100.39 us/op 1.25
pickEth1Vote - no votes 1.6169 ms/op 973.48 us/op 1.66
pickEth1Vote - max votes 15.027 ms/op 5.6122 ms/op 2.68
pickEth1Vote - Eth1Data hashTreeRoot value x2048 21.959 ms/op 10.513 ms/op 2.09
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 27.855 ms/op 14.318 ms/op 1.95
pickEth1Vote - Eth1Data fastSerialize value x2048 555.02 us/op 437.96 us/op 1.27
pickEth1Vote - Eth1Data fastSerialize tree x2048 3.1933 ms/op 2.0954 ms/op 1.52
bytes32 toHexString 584.00 ns/op 358.00 ns/op 1.63
bytes32 Buffer.toString(hex) 361.00 ns/op 239.00 ns/op 1.51
bytes32 Buffer.toString(hex) from Uint8Array 511.00 ns/op 348.00 ns/op 1.47
bytes32 Buffer.toString(hex) + 0x 431.00 ns/op 238.00 ns/op 1.81
Object access 1 prop 0.17600 ns/op 0.11700 ns/op 1.50
Map access 1 prop 0.18500 ns/op 0.12300 ns/op 1.50
Object get x1000 6.3570 ns/op 5.7440 ns/op 1.11
Map get x1000 6.9350 ns/op 6.4360 ns/op 1.08
Object set x1000 44.517 ns/op 28.653 ns/op 1.55
Map set x1000 29.388 ns/op 19.712 ns/op 1.49
Return object 10000 times 0.33190 ns/op 0.28900 ns/op 1.15
Throw Error 10000 times 5.3247 us/op 4.4232 us/op 1.20
toHex 158.74 ns/op 138.78 ns/op 1.14
Buffer.from 135.11 ns/op 132.40 ns/op 1.02
shared Buffer 89.734 ns/op 82.987 ns/op 1.08
fastMsgIdFn sha256 / 200 bytes 2.3810 us/op 2.1880 us/op 1.09
fastMsgIdFn h32 xxhash / 200 bytes 226.00 ns/op 204.00 ns/op 1.11
fastMsgIdFn h64 xxhash / 200 bytes 363.00 ns/op 264.00 ns/op 1.38
fastMsgIdFn sha256 / 1000 bytes 8.6520 us/op 7.4510 us/op 1.16
fastMsgIdFn h32 xxhash / 1000 bytes 359.00 ns/op 335.00 ns/op 1.07
fastMsgIdFn h64 xxhash / 1000 bytes 368.00 ns/op 333.00 ns/op 1.11
fastMsgIdFn sha256 / 10000 bytes 75.499 us/op 64.418 us/op 1.17
fastMsgIdFn h32 xxhash / 10000 bytes 2.3330 us/op 1.8410 us/op 1.27
fastMsgIdFn h64 xxhash / 10000 bytes 1.3720 us/op 1.2240 us/op 1.12
send data - 1000 256B messages 21.777 ms/op 16.476 ms/op 1.32
send data - 1000 512B messages 25.922 ms/op 21.500 ms/op 1.21
send data - 1000 1024B messages 37.260 ms/op 27.899 ms/op 1.34
send data - 1000 1200B messages 32.961 ms/op 24.696 ms/op 1.33
send data - 1000 2048B messages 34.310 ms/op 23.812 ms/op 1.44
send data - 1000 4096B messages 38.424 ms/op 28.014 ms/op 1.37
send data - 1000 16384B messages 58.561 ms/op 43.571 ms/op 1.34
send data - 1000 65536B messages 157.64 ms/op 116.80 ms/op 1.35
enrSubnets - fastDeserialize 64 bits 1.2720 us/op 897.00 ns/op 1.42
enrSubnets - ssz BitVector 64 bits 412.00 ns/op 324.00 ns/op 1.27
enrSubnets - fastDeserialize 4 bits 202.00 ns/op 124.00 ns/op 1.63
enrSubnets - ssz BitVector 4 bits 401.00 ns/op 324.00 ns/op 1.24
prioritizePeers score -10:0 att 32-0.1 sync 2-0 417.87 us/op 274.68 us/op 1.52
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 441.12 us/op 264.86 us/op 1.67
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 559.72 us/op 401.44 us/op 1.39
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 893.87 us/op 713.67 us/op 1.25
prioritizePeers score 0:0 att 64-1 sync 4-1 1.2995 ms/op 885.06 us/op 1.47
array of 16000 items push then shift 1.7106 us/op 1.6269 us/op 1.05
LinkedList of 16000 items push then shift 10.694 ns/op 7.9840 ns/op 1.34
array of 16000 items push then pop 101.49 ns/op 81.971 ns/op 1.24
LinkedList of 16000 items push then pop 9.6360 ns/op 7.8660 ns/op 1.23
array of 24000 items push then shift 2.6693 us/op 2.4137 us/op 1.11
LinkedList of 24000 items push then shift 11.141 ns/op 8.1140 ns/op 1.37
array of 24000 items push then pop 139.59 ns/op 127.47 ns/op 1.10
LinkedList of 24000 items push then pop 8.7610 ns/op 7.7980 ns/op 1.12
intersect bitArray bitLen 8 6.8880 ns/op 6.5820 ns/op 1.05
intersect array and set length 8 57.103 ns/op 39.048 ns/op 1.46
intersect bitArray bitLen 128 32.237 ns/op 29.908 ns/op 1.08
intersect array and set length 128 872.07 ns/op 651.47 ns/op 1.34
bitArray.getTrueBitIndexes() bitLen 128 1.2360 us/op 1.0170 us/op 1.22
bitArray.getTrueBitIndexes() bitLen 248 2.1230 us/op 1.7970 us/op 1.18
bitArray.getTrueBitIndexes() bitLen 512 4.1620 us/op 3.7000 us/op 1.12
Buffer.concat 32 items 768.00 ns/op 711.00 ns/op 1.08
Uint8Array.set 32 items 1.7890 us/op 919.00 ns/op 1.95
Buffer.copy 2.4130 us/op 2.1050 us/op 1.15
Uint8Array.set - with subarray 2.5210 us/op 1.5420 us/op 1.63
Uint8Array.set - without subarray 1.5560 us/op 877.00 ns/op 1.77
getUint32 - dataview 223.00 ns/op 197.00 ns/op 1.13
getUint32 - manual 141.00 ns/op 122.00 ns/op 1.16
Set add up to 64 items then delete first 3.8313 us/op 2.2678 us/op 1.69
OrderedSet add up to 64 items then delete first 6.0896 us/op 3.4652 us/op 1.76
Set add up to 64 items then delete last 2.5542 us/op 2.6370 us/op 0.97
OrderedSet add up to 64 items then delete last 6.6886 us/op 4.3067 us/op 1.55
Set add up to 64 items then delete middle 3.8997 us/op 2.6204 us/op 1.49
OrderedSet add up to 64 items then delete middle 8.5524 us/op 5.9461 us/op 1.44
Set add up to 128 items then delete first 8.3012 us/op 5.4200 us/op 1.53
OrderedSet add up to 128 items then delete first 13.577 us/op 7.7515 us/op 1.75
Set add up to 128 items then delete last 8.3919 us/op 5.2029 us/op 1.61
OrderedSet add up to 128 items then delete last 13.834 us/op 8.0272 us/op 1.72
Set add up to 128 items then delete middle 8.4915 us/op 5.8952 us/op 1.44
OrderedSet add up to 128 items then delete middle 21.411 us/op 15.153 us/op 1.41
Set add up to 256 items then delete first 16.508 us/op 11.657 us/op 1.42
OrderedSet add up to 256 items then delete first 28.001 us/op 18.827 us/op 1.49
Set add up to 256 items then delete last 16.557 us/op 13.053 us/op 1.27
OrderedSet add up to 256 items then delete last 27.025 us/op 21.970 us/op 1.23
Set add up to 256 items then delete middle 16.766 us/op 13.481 us/op 1.24
OrderedSet add up to 256 items then delete middle 60.680 us/op 45.765 us/op 1.33
transfer serialized Status (84 B) 3.0890 us/op 2.2740 us/op 1.36
copy serialized Status (84 B) 1.3190 us/op 1.2060 us/op 1.09
transfer serialized SignedVoluntaryExit (112 B) 2.4470 us/op 2.2720 us/op 1.08
copy serialized SignedVoluntaryExit (112 B) 1.3580 us/op 1.2010 us/op 1.13
transfer serialized ProposerSlashing (416 B) 3.5030 us/op 2.2920 us/op 1.53
copy serialized ProposerSlashing (416 B) 2.0710 us/op 1.5960 us/op 1.30
transfer serialized Attestation (485 B) 4.0560 us/op 3.1960 us/op 1.27
copy serialized Attestation (485 B) 1.9960 us/op 1.7610 us/op 1.13
transfer serialized AttesterSlashing (33232 B) 3.5900 us/op 3.0190 us/op 1.19
copy serialized AttesterSlashing (33232 B) 7.3710 us/op 4.9710 us/op 1.48
transfer serialized Small SignedBeaconBlock (128000 B) 4.0630 us/op 3.8850 us/op 1.05
copy serialized Small SignedBeaconBlock (128000 B) 19.413 us/op 13.080 us/op 1.48
transfer serialized Avg SignedBeaconBlock (200000 B) 5.8300 us/op 4.1070 us/op 1.42
copy serialized Avg SignedBeaconBlock (200000 B) 28.258 us/op 14.150 us/op 2.00
transfer serialized BlobsSidecar (524380 B) 6.8860 us/op 3.8860 us/op 1.77
copy serialized BlobsSidecar (524380 B) 97.065 us/op 116.29 us/op 0.83
transfer serialized Big SignedBeaconBlock (1000000 B) 7.9600 us/op 4.1830 us/op 1.90
copy serialized Big SignedBeaconBlock (1000000 B) 180.07 us/op 325.86 us/op 0.55
pass gossip attestations to forkchoice per slot 3.5830 ms/op 2.8909 ms/op 1.24
forkChoice updateHead vc 100000 bc 64 eq 0 512.18 us/op 451.75 us/op 1.13
forkChoice updateHead vc 600000 bc 64 eq 0 5.0295 ms/op 3.0330 ms/op 1.66
forkChoice updateHead vc 1000000 bc 64 eq 0 8.1963 ms/op 4.7678 ms/op 1.72
forkChoice updateHead vc 600000 bc 320 eq 0 4.2055 ms/op 3.1306 ms/op 1.34
forkChoice updateHead vc 600000 bc 1200 eq 0 4.7974 ms/op 2.9917 ms/op 1.60
forkChoice updateHead vc 600000 bc 7200 eq 0 6.8736 ms/op 3.1951 ms/op 2.15
forkChoice updateHead vc 600000 bc 64 eq 1000 11.306 ms/op 10.784 ms/op 1.05
forkChoice updateHead vc 600000 bc 64 eq 10000 11.408 ms/op 11.539 ms/op 0.99
forkChoice updateHead vc 600000 bc 64 eq 300000 31.267 ms/op 15.220 ms/op 2.05
computeDeltas 500000 validators 300 proto nodes 5.5823 ms/op 4.0630 ms/op 1.37
computeDeltas 500000 validators 1200 proto nodes 5.7946 ms/op 4.1195 ms/op 1.41
computeDeltas 500000 validators 7200 proto nodes 5.9523 ms/op 4.0644 ms/op 1.46
computeDeltas 750000 validators 300 proto nodes 9.5631 ms/op 6.2867 ms/op 1.52
computeDeltas 750000 validators 1200 proto nodes 9.3884 ms/op 6.1840 ms/op 1.52
computeDeltas 750000 validators 7200 proto nodes 9.0009 ms/op 5.8716 ms/op 1.53
computeDeltas 1400000 validators 300 proto nodes 17.470 ms/op 11.544 ms/op 1.51
computeDeltas 1400000 validators 1200 proto nodes 15.467 ms/op 11.371 ms/op 1.36
computeDeltas 1400000 validators 7200 proto nodes 17.747 ms/op 11.521 ms/op 1.54
computeDeltas 2100000 validators 300 proto nodes 25.433 ms/op 17.658 ms/op 1.44
computeDeltas 2100000 validators 1200 proto nodes 19.005 ms/op 17.189 ms/op 1.11
computeDeltas 2100000 validators 7200 proto nodes 16.630 ms/op 19.175 ms/op 0.87
altair processAttestation - 250000 vs - 7PWei normalcase 2.3919 ms/op 3.8882 ms/op 0.62
altair processAttestation - 250000 vs - 7PWei worstcase 3.0210 ms/op 4.6609 ms/op 0.65
altair processAttestation - setStatus - 1/6 committees join 123.77 us/op 163.06 us/op 0.76
altair processAttestation - setStatus - 1/3 committees join 263.39 us/op 273.70 us/op 0.96
altair processAttestation - setStatus - 1/2 committees join 355.78 us/op 373.31 us/op 0.95
altair processAttestation - setStatus - 2/3 committees join 450.12 us/op 465.23 us/op 0.97
altair processAttestation - setStatus - 4/5 committees join 624.46 us/op 646.22 us/op 0.97
altair processAttestation - setStatus - 100% committees join 747.66 us/op 738.98 us/op 1.01
altair processBlock - 250000 vs - 7PWei normalcase 5.5082 ms/op 4.5214 ms/op 1.22
altair processBlock - 250000 vs - 7PWei normalcase hashState 32.185 ms/op 33.564 ms/op 0.96
altair processBlock - 250000 vs - 7PWei worstcase 40.633 ms/op 37.583 ms/op 1.08
altair processBlock - 250000 vs - 7PWei worstcase hashState 70.553 ms/op 76.551 ms/op 0.92
phase0 processBlock - 250000 vs - 7PWei normalcase 2.1928 ms/op 1.6311 ms/op 1.34
phase0 processBlock - 250000 vs - 7PWei worstcase 28.827 ms/op 22.316 ms/op 1.29
altair processEth1Data - 250000 vs - 7PWei normalcase 354.26 us/op 347.12 us/op 1.02
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 9.6930 us/op 6.4050 us/op 1.51
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 48.105 us/op 41.114 us/op 1.17
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 14.592 us/op 11.326 us/op 1.29
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 10.531 us/op 7.3440 us/op 1.43
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 215.66 us/op 167.45 us/op 1.29
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 1.9382 ms/op 1.8569 ms/op 1.04
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 2.4461 ms/op 2.4003 ms/op 1.02
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 2.4000 ms/op 2.5262 ms/op 0.95
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 5.0672 ms/op 4.9110 ms/op 1.03
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 2.5692 ms/op 2.4325 ms/op 1.06
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 5.4322 ms/op 5.2210 ms/op 1.04
Tree 40 250000 create 624.45 ms/op 472.13 ms/op 1.32
Tree 40 250000 get(125000) 148.87 ns/op 145.21 ns/op 1.03
Tree 40 250000 set(125000) 1.7870 us/op 1.5430 us/op 1.16
Tree 40 250000 toArray() 19.986 ms/op 18.631 ms/op 1.07
Tree 40 250000 iterate all - toArray() + loop 24.691 ms/op 19.595 ms/op 1.26
Tree 40 250000 iterate all - get(i) 58.444 ms/op 59.043 ms/op 0.99
Array 250000 create 2.6960 ms/op 2.9869 ms/op 0.90
Array 250000 clone - spread 1.5433 ms/op 1.8773 ms/op 0.82
Array 250000 get(125000) 0.42400 ns/op 0.41800 ns/op 1.01
Array 250000 set(125000) 0.51100 ns/op 0.44000 ns/op 1.16
Array 250000 iterate all - loop 91.660 us/op 83.169 us/op 1.10
phase0 afterProcessEpoch - 250000 vs - 7PWei 42.191 ms/op 41.548 ms/op 1.02
Array.fill - length 1000000 4.0271 ms/op 4.1441 ms/op 0.97
Array push - length 1000000 18.880 ms/op 14.179 ms/op 1.33
Array.get 0.29723 ns/op 0.29051 ns/op 1.02
Uint8Array.get 0.47855 ns/op 0.45842 ns/op 1.04
phase0 beforeProcessEpoch - 250000 vs - 7PWei 20.813 ms/op 18.318 ms/op 1.14
altair processEpoch - mainnet_e81889 310.53 ms/op 308.26 ms/op 1.01
mainnet_e81889 - altair beforeProcessEpoch 19.546 ms/op 19.988 ms/op 0.98
mainnet_e81889 - altair processJustificationAndFinalization 6.2820 us/op 5.7300 us/op 1.10
mainnet_e81889 - altair processInactivityUpdates 4.6741 ms/op 5.1406 ms/op 0.91
mainnet_e81889 - altair processRewardsAndPenalties 41.138 ms/op 42.608 ms/op 0.97
mainnet_e81889 - altair processRegistryUpdates 745.00 ns/op 726.00 ns/op 1.03
mainnet_e81889 - altair processSlashings 199.00 ns/op 185.00 ns/op 1.08
mainnet_e81889 - altair processEth1DataReset 192.00 ns/op 172.00 ns/op 1.12
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.1945 ms/op 1.2204 ms/op 0.98
mainnet_e81889 - altair processSlashingsReset 922.00 ns/op 873.00 ns/op 1.06
mainnet_e81889 - altair processRandaoMixesReset 1.2800 us/op 1.1530 us/op 1.11
mainnet_e81889 - altair processHistoricalRootsUpdate 180.00 ns/op 181.00 ns/op 0.99
mainnet_e81889 - altair processParticipationFlagUpdates 585.00 ns/op 520.00 ns/op 1.13
mainnet_e81889 - altair processSyncCommitteeUpdates 149.00 ns/op 141.00 ns/op 1.06
mainnet_e81889 - altair afterProcessEpoch 44.565 ms/op 44.907 ms/op 0.99
capella processEpoch - mainnet_e217614 964.02 ms/op 893.60 ms/op 1.08
mainnet_e217614 - capella beforeProcessEpoch 70.788 ms/op 60.333 ms/op 1.17
mainnet_e217614 - capella processJustificationAndFinalization 5.6940 us/op 5.3960 us/op 1.06
mainnet_e217614 - capella processInactivityUpdates 15.784 ms/op 14.258 ms/op 1.11
mainnet_e217614 - capella processRewardsAndPenalties 206.39 ms/op 181.38 ms/op 1.14
mainnet_e217614 - capella processRegistryUpdates 7.4970 us/op 6.5030 us/op 1.15
mainnet_e217614 - capella processSlashings 249.00 ns/op 176.00 ns/op 1.41
mainnet_e217614 - capella processEth1DataReset 187.00 ns/op 215.00 ns/op 0.87
mainnet_e217614 - capella processEffectiveBalanceUpdates 4.2662 ms/op 4.2088 ms/op 1.01
mainnet_e217614 - capella processSlashingsReset 1.0840 us/op 881.00 ns/op 1.23
mainnet_e217614 - capella processRandaoMixesReset 1.2370 us/op 1.1780 us/op 1.05
mainnet_e217614 - capella processHistoricalRootsUpdate 194.00 ns/op 173.00 ns/op 1.12
mainnet_e217614 - capella processParticipationFlagUpdates 686.00 ns/op 507.00 ns/op 1.35
mainnet_e217614 - capella afterProcessEpoch 128.53 ms/op 124.81 ms/op 1.03
phase0 processEpoch - mainnet_e58758 314.39 ms/op 307.56 ms/op 1.02
mainnet_e58758 - phase0 beforeProcessEpoch 95.590 ms/op 74.734 ms/op 1.28
mainnet_e58758 - phase0 processJustificationAndFinalization 6.7680 us/op 5.4740 us/op 1.24
mainnet_e58758 - phase0 processRewardsAndPenalties 49.061 ms/op 37.612 ms/op 1.30
mainnet_e58758 - phase0 processRegistryUpdates 3.7100 us/op 3.1550 us/op 1.18
mainnet_e58758 - phase0 processSlashings 212.00 ns/op 175.00 ns/op 1.21
mainnet_e58758 - phase0 processEth1DataReset 223.00 ns/op 168.00 ns/op 1.33
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 2.7859 ms/op 1.1820 ms/op 2.36
mainnet_e58758 - phase0 processSlashingsReset 1.1250 us/op 968.00 ns/op 1.16
mainnet_e58758 - phase0 processRandaoMixesReset 1.4490 us/op 1.1910 us/op 1.22
mainnet_e58758 - phase0 processHistoricalRootsUpdate 192.00 ns/op 177.00 ns/op 1.08
mainnet_e58758 - phase0 processParticipationRecordUpdates 1.0570 us/op 906.00 ns/op 1.17
mainnet_e58758 - phase0 afterProcessEpoch 39.255 ms/op 35.635 ms/op 1.10
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.7278 ms/op 1.3149 ms/op 1.31
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 3.1892 ms/op 1.9465 ms/op 1.64
altair processInactivityUpdates - 250000 normalcase 21.919 ms/op 17.312 ms/op 1.27
altair processInactivityUpdates - 250000 worstcase 22.397 ms/op 17.759 ms/op 1.26
phase0 processRegistryUpdates - 250000 normalcase 7.5730 us/op 6.8300 us/op 1.11
phase0 processRegistryUpdates - 250000 badcase_full_deposits 348.80 us/op 263.46 us/op 1.32
phase0 processRegistryUpdates - 250000 worstcase 0.5 125.83 ms/op 103.46 ms/op 1.22
altair processRewardsAndPenalties - 250000 normalcase 32.349 ms/op 28.745 ms/op 1.13
altair processRewardsAndPenalties - 250000 worstcase 32.274 ms/op 27.358 ms/op 1.18
phase0 getAttestationDeltas - 250000 normalcase 9.6785 ms/op 6.6684 ms/op 1.45
phase0 getAttestationDeltas - 250000 worstcase 8.4314 ms/op 5.9843 ms/op 1.41
phase0 processSlashings - 250000 worstcase 122.71 us/op 92.413 us/op 1.33
altair processSyncCommitteeUpdates - 250000 13.162 ms/op 11.013 ms/op 1.20
BeaconState.hashTreeRoot - No change 241.00 ns/op 210.00 ns/op 1.15
BeaconState.hashTreeRoot - 1 full validator 82.530 us/op 72.637 us/op 1.14
BeaconState.hashTreeRoot - 32 full validator 843.73 us/op 863.92 us/op 0.98
BeaconState.hashTreeRoot - 512 full validator 11.483 ms/op 9.9298 ms/op 1.16
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 106.45 us/op 89.102 us/op 1.19
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 1.4357 ms/op 1.5244 ms/op 0.94
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 27.409 ms/op 24.472 ms/op 1.12
BeaconState.hashTreeRoot - 1 balances 81.718 us/op 88.950 us/op 0.92
BeaconState.hashTreeRoot - 32 balances 681.70 us/op 1.0535 ms/op 0.65
BeaconState.hashTreeRoot - 512 balances 7.5077 ms/op 9.1762 ms/op 0.82
BeaconState.hashTreeRoot - 250000 balances 163.18 ms/op 179.15 ms/op 0.91
aggregationBits - 2048 els - zipIndexesInBitList 21.765 us/op 21.799 us/op 1.00
byteArrayEquals 32 54.155 ns/op 53.145 ns/op 1.02
Buffer.compare 32 17.462 ns/op 16.996 ns/op 1.03
byteArrayEquals 1024 1.5954 us/op 1.5773 us/op 1.01
Buffer.compare 1024 25.856 ns/op 24.642 ns/op 1.05
byteArrayEquals 16384 25.469 us/op 25.169 us/op 1.01
Buffer.compare 16384 201.52 ns/op 195.11 ns/op 1.03
byteArrayEquals 123687377 192.87 ms/op 187.56 ms/op 1.03
Buffer.compare 123687377 7.1260 ms/op 7.1613 ms/op 1.00
byteArrayEquals 32 - diff last byte 52.584 ns/op 51.414 ns/op 1.02
Buffer.compare 32 - diff last byte 17.024 ns/op 16.740 ns/op 1.02
byteArrayEquals 1024 - diff last byte 1.5904 us/op 1.5542 us/op 1.02
Buffer.compare 1024 - diff last byte 24.947 ns/op 24.469 ns/op 1.02
byteArrayEquals 16384 - diff last byte 25.386 us/op 24.771 us/op 1.02
Buffer.compare 16384 - diff last byte 192.33 ns/op 181.71 ns/op 1.06
byteArrayEquals 123687377 - diff last byte 193.09 ms/op 189.21 ms/op 1.02
Buffer.compare 123687377 - diff last byte 8.8883 ms/op 7.3215 ms/op 1.21
byteArrayEquals 32 - random bytes 5.5270 ns/op 5.0990 ns/op 1.08
Buffer.compare 32 - random bytes 18.676 ns/op 17.044 ns/op 1.10
byteArrayEquals 1024 - random bytes 5.5670 ns/op 5.0970 ns/op 1.09
Buffer.compare 1024 - random bytes 18.061 ns/op 17.074 ns/op 1.06
byteArrayEquals 16384 - random bytes 5.3610 ns/op 5.0740 ns/op 1.06
Buffer.compare 16384 - random bytes 18.262 ns/op 17.269 ns/op 1.06
byteArrayEquals 123687377 - random bytes 6.6800 ns/op 6.4200 ns/op 1.04
Buffer.compare 123687377 - random bytes 20.500 ns/op 18.480 ns/op 1.11
regular array get 100000 times 36.088 us/op 37.636 us/op 0.96
wrappedArray get 100000 times 44.805 us/op 40.500 us/op 1.11
arrayWithProxy get 100000 times 12.967 ms/op 12.903 ms/op 1.00
ssz.Root.equals 47.478 ns/op 46.390 ns/op 1.02
byteArrayEquals 47.153 ns/op 45.499 ns/op 1.04
Buffer.compare 10.955 ns/op 10.433 ns/op 1.05
processSlot - 1 slots 10.784 us/op 10.100 us/op 1.07
processSlot - 32 slots 3.0080 ms/op 2.1054 ms/op 1.43
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 3.9545 ms/op 3.0017 ms/op 1.32
getCommitteeAssignments - req 1 vs - 250000 vc 2.3708 ms/op 2.1421 ms/op 1.11
getCommitteeAssignments - req 100 vs - 250000 vc 4.4533 ms/op 4.1538 ms/op 1.07
getCommitteeAssignments - req 1000 vs - 250000 vc 4.7382 ms/op 4.5169 ms/op 1.05
findModifiedValidators - 10000 modified validators 773.96 ms/op 763.84 ms/op 1.01
findModifiedValidators - 1000 modified validators 850.16 ms/op 707.53 ms/op 1.20
findModifiedValidators - 100 modified validators 358.63 ms/op 252.69 ms/op 1.42
findModifiedValidators - 10 modified validators 239.04 ms/op 146.35 ms/op 1.63
findModifiedValidators - 1 modified validators 224.63 ms/op 202.03 ms/op 1.11
findModifiedValidators - no difference 202.87 ms/op 188.24 ms/op 1.08
compare ViewDUs 7.7879 s/op 6.5202 s/op 1.19
compare each validator Uint8Array 1.7855 s/op 1.6578 s/op 1.08
compare ViewDU to Uint8Array 1.6024 s/op 1.7945 s/op 0.89
migrate state 1000000 validators, 24 modified, 0 new 1.0354 s/op 812.37 ms/op 1.27
migrate state 1000000 validators, 1700 modified, 1000 new 1.6242 s/op 1.1466 s/op 1.42
migrate state 1000000 validators, 3400 modified, 2000 new 1.6519 s/op 1.3045 s/op 1.27
migrate state 1500000 validators, 24 modified, 0 new 1.1304 s/op 994.46 ms/op 1.14
migrate state 1500000 validators, 1700 modified, 1000 new 1.3704 s/op 1.2375 s/op 1.11
migrate state 1500000 validators, 3400 modified, 2000 new 1.4195 s/op 1.4852 s/op 0.96
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 4.6000 ns/op 4.3500 ns/op 1.06
state getBlockRootAtSlot - 250000 vs - 7PWei 736.00 ns/op 479.34 ns/op 1.54
naive computeProposerIndex 100000 validators 62.378 ms/op 60.839 ms/op 1.03
computeProposerIndex 100000 validators 1.5790 ms/op 1.6966 ms/op 0.93
naiveGetNextSyncCommitteeIndices 1000 validators 9.2306 s/op 7.7649 s/op 1.19
getNextSyncCommitteeIndices 1000 validators 150.48 ms/op 115.53 ms/op 1.30
naiveGetNextSyncCommitteeIndices 10000 validators 8.8909 s/op 8.2021 s/op 1.08
getNextSyncCommitteeIndices 10000 validators 146.79 ms/op 113.21 ms/op 1.30
naiveGetNextSyncCommitteeIndices 100000 validators 8.6989 s/op 8.7595 s/op 0.99
getNextSyncCommitteeIndices 100000 validators 124.39 ms/op 123.27 ms/op 1.01
naive computeShuffledIndex 100000 validators 25.848 s/op 35.196 s/op 0.73
cached computeShuffledIndex 100000 validators 588.42 ms/op 631.66 ms/op 0.93
naive computeShuffledIndex 2000000 validators 550.38 s/op 598.38 s/op 0.92
cached computeShuffledIndex 2000000 validators 64.532 s/op 47.235 s/op 1.37
computeProposers - vc 250000 734.50 us/op 633.63 us/op 1.16
computeEpochShuffling - vc 250000 47.533 ms/op 42.467 ms/op 1.12
getNextSyncCommittee - vc 250000 11.815 ms/op 10.785 ms/op 1.10
computeSigningRoot for AttestationData 48.147 us/op 29.986 us/op 1.61
hash AttestationData serialized data then Buffer.toString(base64) 1.7642 us/op 1.6478 us/op 1.07
toHexString serialized data 1.8328 us/op 1.3457 us/op 1.36
Buffer.toString(base64) 168.94 ns/op 156.30 ns/op 1.08
nodejs block root to RootHex using toHex 147.50 ns/op 151.10 ns/op 0.98
nodejs block root to RootHex using toRootHex 94.283 ns/op 96.595 ns/op 0.98
nodejs fromhex(blob) 138.98 ms/op 120.07 ms/op 1.16
nodejs fromHexInto(blob) 101.28 ms/op 96.864 ms/op 1.05
browser block root to RootHex using the deprecated toHexString 234.26 ns/op 224.87 ns/op 1.04
browser block root to RootHex using toHex 202.72 ns/op 176.36 ns/op 1.15
browser block root to RootHex using toRootHex 177.35 ns/op 165.22 ns/op 1.07
browser fromHexInto(blob) 1.0112 ms/op 846.33 us/op 1.19
browser fromHex(blob) 954.50 ms/op 840.36 ms/op 1.14

by benchmarkbot/action

@wemeetagain wemeetagain merged commit 09716b4 into unstable Sep 23, 2025
18 of 20 checks passed
@wemeetagain wemeetagain deleted the cayman/update/gc-stats-import branch September 23, 2025 18:38
@wemeetagain
Copy link
Member Author

🎉 This PR is included in v1.35.0 🎉

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.

3 participants