Skip to content

perf(levm): refactor CacheDB to use more efficient APIs #3259

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

Draft
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

azteca1998
Copy link
Contributor

Motivation

Description

Closes #issue_number

Copy link

github-actions bot commented Jun 20, 2025

Lines of code report

Total lines added: 14
Total lines removed: 26
Total lines changed: 40

Detailed view
+-----------------------------------------+-------+------+
| File                                    | Lines | Diff |
+-----------------------------------------+-------+------+
| ethrex/crates/vm/levm/src/call_frame.rs | 218   | +14  |
+-----------------------------------------+-------+------+
| ethrex/crates/vm/levm/src/db/gen_db.rs  | 235   | -26  |
+-----------------------------------------+-------+------+

Copy link

Benchmark Results Comparison

PR Results

Benchmark Results: Factorial

Command Mean [ms] Min [ms] Max [ms] Relative
revm_Factorial 232.6 ± 4.9 229.9 246.4 1.00
levm_Factorial 722.5 ± 4.1 718.8 732.5 3.11 ± 0.07

Benchmark Results: Factorial - Recursive

Command Mean [s] Min [s] Max [s] Relative
revm_FactorialRecursive 1.612 ± 0.034 1.547 1.658 1.00
levm_FactorialRecursive 3.818 ± 0.027 3.783 3.871 2.37 ± 0.05

Benchmark Results: Fibonacci

Command Mean [ms] Min [ms] Max [ms] Relative
revm_Fibonacci 206.8 ± 1.8 202.1 208.6 1.00
levm_Fibonacci 732.9 ± 11.2 726.0 759.7 3.54 ± 0.06

Benchmark Results: ManyHashes

Command Mean [ms] Min [ms] Max [ms] Relative
revm_ManyHashes 8.7 ± 0.1 8.6 8.8 1.00
levm_ManyHashes 15.8 ± 0.1 15.6 15.9 1.82 ± 0.02

Benchmark Results: BubbleSort

Command Mean [s] Min [s] Max [s] Relative
revm_BubbleSort 3.220 ± 0.024 3.199 3.259 1.00
levm_BubbleSort 5.346 ± 0.052 5.305 5.486 1.66 ± 0.02

Benchmark Results: ERC20 - Transfer

Command Mean [ms] Min [ms] Max [ms] Relative
revm_ERC20Transfer 243.2 ± 2.4 241.4 247.7 1.00
levm_ERC20Transfer 487.6 ± 3.4 483.8 492.9 2.00 ± 0.02

Benchmark Results: ERC20 - Mint

Command Mean [ms] Min [ms] Max [ms] Relative
revm_ERC20Mint 137.0 ± 0.6 136.4 138.3 1.00
levm_ERC20Mint 321.2 ± 7.2 317.7 341.4 2.34 ± 0.05

Benchmark Results: ERC20 - Approval

Command Mean [s] Min [s] Max [s] Relative
revm_ERC20Approval 1.041 ± 0.008 1.035 1.058 1.00
levm_ERC20Approval 1.839 ± 0.012 1.828 1.861 1.77 ± 0.02

Main Results

Benchmark Results: Factorial

Command Mean [ms] Min [ms] Max [ms] Relative
revm_Factorial 233.5 ± 0.8 232.8 235.4 1.00
levm_Factorial 723.4 ± 2.7 720.4 728.8 3.10 ± 0.02

Benchmark Results: Factorial - Recursive

Command Mean [s] Min [s] Max [s] Relative
revm_FactorialRecursive 1.618 ± 0.021 1.581 1.642 1.00
levm_FactorialRecursive 3.818 ± 0.041 3.772 3.887 2.36 ± 0.04

Benchmark Results: Fibonacci

Command Mean [ms] Min [ms] Max [ms] Relative
revm_Fibonacci 208.9 ± 0.5 208.4 209.8 1.00
levm_Fibonacci 746.3 ± 36.7 720.6 824.3 3.57 ± 0.18

Benchmark Results: ManyHashes

Command Mean [ms] Min [ms] Max [ms] Relative
revm_ManyHashes 9.7 ± 0.6 9.0 10.6 1.00
levm_ManyHashes 16.3 ± 0.2 16.1 16.8 1.69 ± 0.10

Benchmark Results: BubbleSort

Command Mean [s] Min [s] Max [s] Relative
revm_BubbleSort 3.179 ± 0.036 3.124 3.229 1.00
levm_BubbleSort 5.385 ± 0.026 5.362 5.453 1.69 ± 0.02

Benchmark Results: ERC20 - Transfer

Command Mean [ms] Min [ms] Max [ms] Relative
revm_ERC20Transfer 242.9 ± 2.9 240.5 250.9 1.00
levm_ERC20Transfer 494.7 ± 7.1 488.9 509.0 2.04 ± 0.04

Benchmark Results: ERC20 - Mint

Command Mean [ms] Min [ms] Max [ms] Relative
revm_ERC20Mint 137.6 ± 2.1 136.0 143.2 1.00
levm_ERC20Mint 321.9 ± 5.5 317.5 335.3 2.34 ± 0.05

Benchmark Results: ERC20 - Approval

Command Mean [s] Min [s] Max [s] Relative
revm_ERC20Approval 1.042 ± 0.007 1.032 1.054 1.00
levm_ERC20Approval 1.874 ± 0.013 1.860 1.905 1.80 ± 0.02

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.

1 participant