Foundry Benchmarks
This page shows the latest performance benchmarks for Foundry across different repositories. The benchmarks are automatically updated from the Foundry repository.
Performance Overview
The table below shows benchmark results comparing different versions of Foundry. Each cell displays the baseline time / latest release time, followed by the percentage change.
Baseline: v1.2.3
Latest: v1.3.0
Learn more about what went into the latest release here
Repository | Forge Test | Forge Fuzz Test | Forge Test (Isolated) | Forge Build (No Cache) | Forge Build (With Cache) | Forge Coverage |
---|---|---|---|---|---|---|
Uniswap-v4-core | 8.14s / 7.14s ↓12.29% | 8.20s / 6.90s ↓15.85% | 8.61s / 7.72s ↓10.34% | 2m 3.5s / 2m 4.0s ↑0.40% | 0.131s / 0.132s ↑0.76% | 1m 36.6s / 1m 35.2s ↓1.45% |
ithacaxyz-account | 3.53s / 3.15s ↓10.76% | 3.88s / 3.05s ↓21.39% | – | 9.25s / 9.27s ↑0.22% | 0.195s / 0.198s ↑1.54% | 15.79s / 15.63s ↓1.01% |
solady | 2.72s / 2.30s ↓15.44% | 2.93s / 2.46s ↓16.04% | 2.98s / 2.57s ↓13.76% | 14.59s / 14.65s ↑0.41% | 0.086s / 0.089s ↑3.49% | – |
sparkdotfi-spark-psm | 57.18s / 47.27s ↓17.33% | 3.81s / 2.99s ↓21.52% | 53.01s / 45.94s ↓13.34% | 13.24s / 13.21s ↓0.23% | 0.181s / 0.171s ↓5.52% | 3m 38.4s / 3m 50.0s ↑5.31% |
Benchmark Types
Forge Test
Command: forge test
Measures the standard test execution time. Runs all the tests in the repository.
Forge Fuzz Test
Command: forge test --match-test "test[^(]*\([^)]+\)"
Measure the execution time for fuzz tests.
Forge Test Isolated
Command: forge test --isolate
Measures the execution time of tests in isolate
mode.
In isolation mode all top-level calls are executed as a separate transaction in a separate EVM context, enabling more precise gas accounting and transaction state changes.
Forge Build (No Cache)
Command: forge build
Measures compilation time on a clean repository i.e no cache available.
Forge Build (With Cache)
Command: forge build
Measures execution time for forge build
in presense of full cache. In this case, compilation is skipped and forge
only check whether the cache is clean or marked as dirty.
Forge Coverage
Command: forge coverage --ir-minimum
Measures the time taken to analyze and collect test coverage reports.
It is important to note that this time includes compilation time as well. Before analyzing for coverage every project is recompiled with configuration that will result in accurate coverage reports.