ruff/crates/ruff_benchmark
Alex Waygood 44f2f77748
[ty] Add a `DateType` benchmark (#19148)
## Summary

The [`DateType`](https://github.com/glyph/DateType) library has some
very large protocols in it. Currently we type-check it quite quickly,
but the current version of https://github.com/astral-sh/ruff/pull/18659
makes our execution time on this library pathologically slow. That PR
doesn't seem to have a big impact on any of our current benchmarks,
however, so it seems we have some missing coverage in this area; I
therefore propose that we add `DateType` as a benchmark.

Currently the benchmark runs pretty quickly (about half the runtime of
attrs, which is our fastest real-world benchmark currently), and the
library has 0 third-party dependencies, so the benchmark is quick to
setup.

## Test Plan

`cargo bench -p ruff_benchmark --bench=ty`
2025-07-04 21:11:47 +01:00
..
benches [ty] Add a `DateType` benchmark (#19148) 2025-07-04 21:11:47 +01:00
resources Fixing more spelling errors (#16926) 2025-03-23 10:55:14 -07:00
src [ty] Move venv and conda env discovery to `SearchPath::from_settings` (#18938) 2025-06-26 16:39:27 +02:00
Cargo.toml [ty] Add more benchmarks (#18714) 2025-06-18 13:41:38 +02:00
README.md Update contributing docs to use `cargo bench -p ruff_benchmark` (#9535) 2024-01-15 14:57:30 -05:00

README.md

Ruff Benchmarks

The ruff_benchmark crate benchmarks the linter and the formatter on individual files:

# Run once on the "baseline".
cargo bench -p ruff_benchmark -- --save-baseline=main

# Compare against the "baseline".
cargo bench -p ruff_benchmark -- --baseline=main

# Run the lexer benchmarks.
cargo bench -p ruff_benchmark lexer -- --baseline=main

See CONTRIBUTING.md on how to use these benchmarks.