perf(levm): improve load_range by returning a Bytes directly, avoding a vec #1974
Workflow file for this run
This file contains hidden or 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
name: Benchmark LEVM vs REVM | |
on: | |
pull_request: | |
branches: ["**"] | |
paths: | |
- "crates/vm/levm/**" | |
- ".github/workflows/pr_perf_levm.yaml" | |
workflow_dispatch: | |
permissions: | |
pull-requests: write | |
jobs: | |
benchmark-pr: | |
name: Benchmark for PR | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@v4 | |
- name: Setup Rust Environment | |
uses: ./.github/actions/setup-rust | |
with: | |
components: rustfmt, clippy | |
- name: Build main benchmark | |
run: | | |
cd crates/vm/levm | |
make build-revm-comparison | |
- name: Upload main benchmark binary | |
uses: actions/upload-artifact@v4 | |
with: | |
name: pr-binary | |
path: crates/vm/levm/target/release/benchmark | |
benchmark-main: | |
name: Benchmark for Main | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@v4 | |
- name: Setup Rust Environment | |
uses: ./.github/actions/setup-rust | |
with: | |
components: rustfmt, clippy | |
- name: Build main benchmark | |
run: | | |
cd crates/vm/levm | |
make build-revm-comparison | |
- name: Upload main benchmark binary | |
uses: actions/upload-artifact@v4 | |
with: | |
name: main-binary | |
path: crates/vm/levm/target/release/benchmark | |
combine-results: | |
name: Combine Benchmark Results | |
runs-on: ubuntu-latest | |
needs: [benchmark-pr, benchmark-main] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Install hyperfine | |
uses: taiki-e/install-action@v2 | |
with: | |
tool: hyperfine@1.19 | |
- name: Install solc | |
uses: pontem-network/get-solc@master | |
with: | |
version: v0.8.29 | |
token: ${{ secrets.GITHUB_TOKEN || '' }} | |
- name: Download PR binaries | |
uses: actions/download-artifact@v4 | |
with: | |
name: pr-binary | |
path: ./pr | |
- name: Download main binaries | |
uses: actions/download-artifact@v4 | |
with: | |
name: main-binary | |
path: ./main | |
- name: Run benchmarks | |
run: | | |
chmod +x ./main/benchmark | |
chmod +x ./pr/benchmark | |
cd crates/vm/levm | |
make revm-comparison-ci | |
bash ../../../.github/scripts/compare_levm_and_revm_benchmarks.sh | |
- name: Find comment | |
continue-on-error: true | |
uses: peter-evans/find-comment@v3 | |
id: fc | |
with: | |
issue-number: ${{ github.event.pull_request.number }} | |
comment-author: "github-actions[bot]" | |
body-includes: "Benchmark Results Comparison" | |
- name: Create or update comment | |
uses: peter-evans/create-or-update-comment@v4 | |
with: | |
comment-id: ${{ steps.fc.outputs.comment-id }} | |
token: ${{ secrets.GITHUB_TOKEN }} | |
issue-number: ${{ github.event.pull_request.number }} | |
body-path: result.md | |
edit-mode: replace |