diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index b89d833254..6aa5646a6f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -397,12 +397,18 @@ which makes it a good target for benchmarking. git clone --branch 3.10 https://github.com/python/cpython.git crates/ruff_linter/resources/test/cpython ``` +Install `hyperfine`: + +```shell +cargo install hyperfine +``` + To benchmark the release build: ```shell cargo build --release && hyperfine --warmup 10 \ - "./target/release/ruff ./crates/ruff_linter/resources/test/cpython/ --no-cache -e" \ - "./target/release/ruff ./crates/ruff_linter/resources/test/cpython/ -e" + "./target/release/ruff check ./crates/ruff_linter/resources/test/cpython/ --no-cache -e" \ + "./target/release/ruff check ./crates/ruff_linter/resources/test/cpython/ -e" Benchmark 1: ./target/release/ruff ./crates/ruff_linter/resources/test/cpython/ --no-cache Time (mean ± σ): 293.8 ms ± 3.2 ms [User: 2384.6 ms, System: 90.3 ms] @@ -421,7 +427,7 @@ To benchmark against the ecosystem's existing tools: ```shell hyperfine --ignore-failure --warmup 5 \ - "./target/release/ruff ./crates/ruff_linter/resources/test/cpython/ --no-cache" \ + "./target/release/ruff check ./crates/ruff_linter/resources/test/cpython/ --no-cache" \ "pyflakes crates/ruff_linter/resources/test/cpython" \ "autoflake --recursive --expand-star-imports --remove-all-unused-imports --remove-unused-variables --remove-duplicate-keys resources/test/cpython" \ "pycodestyle crates/ruff_linter/resources/test/cpython" \ @@ -467,7 +473,7 @@ To benchmark a subset of rules, e.g. `LineTooLong` and `DocLineTooLong`: ```shell cargo build --release && hyperfine --warmup 10 \ - "./target/release/ruff ./crates/ruff_linter/resources/test/cpython/ --no-cache -e --select W505,E501" + "./target/release/ruff check ./crates/ruff_linter/resources/test/cpython/ --no-cache -e --select W505,E501" ``` You can run `poetry install` from `./scripts/benchmarks` to create a working environment for the