Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Optimize TryCalculateFeePerBlobGas #8173

Merged
merged 1 commit into from
Feb 6, 2025
Merged

Optimize TryCalculateFeePerBlobGas #8173

merged 1 commit into from
Feb 6, 2025

Conversation

benaadams
Copy link
Member

Changes

  • Skip expensive 256bit multiplication when factor is 1 (which it is currently)
  • Use ulong iterator rather than UInt256 iterator which has much more expensive increments
  • Use .IsZero rather than > 0 which is faster as it just vector checks everything is 0

Types of changes

What types of changes does your code introduce?

  • Optimization

Testing

Requires testing

  • No

{
feePerBlobGas = UInt256.MaxValue;
return true;
}

for (UInt256 i = 1; numAccum > 0; i++)
UInt256 output = default;
for (ulong i = 1; !accumulator.IsZero; i++)
Copy link
Member

Choose a reason for hiding this comment

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

in practice accumulator should never go pass ulong, should we have separate path for it?

@benaadams benaadams merged commit 83c72fa into master Feb 6, 2025
79 of 80 checks passed
@benaadams benaadams deleted the feeperblobgas branch February 6, 2025 13:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants