Skip to content

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

RepositoryForge TestForge Fuzz TestForge Test (Isolated)Forge Build (No Cache)Forge Build (With Cache)Forge Coverage
Uniswap-v4-core8.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-account3.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%
solady2.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-psm57.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.