astral-sh
ruff
Blog
Docs
Changelog
Blog
Docs
Changelog
Overview
Branches
Benchmarks
Runs
[ty] Track narrowing unions to prevent exponential blowup
#22066
Closed
Comparing
zb/narrow-track
(
fd525e8
) with
main
(
1a18ada
)
CodSpeed Performance Gauge
+73%
Untouched
13
Skipped
30
Archived
9
Benchmarks
Mode
CPU Simulation
Wall Time
Memory
Status
Untouched
Skipped
Archived
52 total
Uses the
CPU Simulation instrument
to collect CPU performance metrics.
DateType
crates/ruff_benchmark/benches/ty.rs::project::datetype::project
CodSpeed Performance Gauge
-1%
229.4 ms
230.6 ms
Uses the
CPU Simulation instrument
to collect CPU performance metrics.
anyio
crates/ruff_benchmark/benches/ty.rs::project::anyio::project
CodSpeed Performance Gauge
0%
1.3 s
1.3 s
Uses the
CPU Simulation instrument
to collect CPU performance metrics.
attrs
crates/ruff_benchmark/benches/ty.rs::project::attrs::project
CodSpeed Performance Gauge
0%
424.8 ms
426.2 ms
Uses the
CPU Simulation instrument
to collect CPU performance metrics.
ty_micro[complex_constrained_attributes_3]
crates/ruff_benchmark/benches/ty.rs::micro::benchmark_complex_constrained_attributes_3
CodSpeed Performance Gauge
0%
70.9 ms
71.1 ms
Uses the
CPU Simulation instrument
to collect CPU performance metrics.
ty_micro[many_tuple_assignments]
crates/ruff_benchmark/benches/ty.rs::micro::benchmark_many_tuple_assignments
CodSpeed Performance Gauge
0%
65.9 ms
66 ms
Uses the
CPU Simulation instrument
to collect CPU performance metrics.
ty_micro[complex_constrained_attributes_2]
crates/ruff_benchmark/benches/ty.rs::micro::benchmark_complex_constrained_attributes_2
CodSpeed Performance Gauge
0%
67.7 ms
67.9 ms
Uses the
CPU Simulation instrument
to collect CPU performance metrics.
hydra-zen
crates/ruff_benchmark/benches/ty.rs::project::hydra::project
CodSpeed Performance Gauge
0%
1.2 s
1.2 s
Uses the
CPU Simulation instrument
to collect CPU performance metrics.
ty_check_file[cold]
crates/ruff_benchmark/benches/ty.rs::check_file::benchmark_cold
CodSpeed Performance Gauge
0%
130.8 ms
131 ms
Uses the
CPU Simulation instrument
to collect CPU performance metrics.
ty_micro[complex_constrained_attributes_1]
crates/ruff_benchmark/benches/ty.rs::micro::benchmark_complex_constrained_attributes_1
CodSpeed Performance Gauge
0%
68.2 ms
68.1 ms
Uses the
CPU Simulation instrument
to collect CPU performance metrics.
ty_micro[many_string_assignments]
crates/ruff_benchmark/benches/ty.rs::micro::benchmark_many_string_assignments
CodSpeed Performance Gauge
0%
80.1 ms
80.1 ms
Uses the
CPU Simulation instrument
to collect CPU performance metrics.
ty_micro[many_enum_members]
crates/ruff_benchmark/benches/ty.rs::micro::benchmark_many_enum_members
CodSpeed Performance Gauge
0%
121.6 ms
121.6 ms
Uses the
CPU Simulation instrument
to collect CPU performance metrics.
ty_micro[many_tuple_assignments]
crates/ruff_benchmark/benches/ty.rs::micro::benchmark_tuple_implicit_instance_attributes
CodSpeed Performance Gauge
0%
67.9 ms
67.9 ms
Uses the
CPU Simulation instrument
to collect CPU performance metrics.
ty_check_file[incremental]
crates/ruff_benchmark/benches/ty.rs::check_file::benchmark_incremental
CodSpeed Performance Gauge
0%
6.3 ms
6.3 ms
The benchmarks below were skipped, so their baseline results are used instead. If they were deleted in your codebase, archive them to remove them from the performance reports.
Learn more about archiving benchmarks
Uses the
CPU Simulation instrument
to collect CPU performance metrics.
lexer[numpy/ctypeslib.py]
crates/ruff_benchmark/benches/lexer.rs::lexer::benchmark_lexer
Skipped
228 µs
*
Uses the
CPU Simulation instrument
to collect CPU performance metrics.
formatter[numpy/globals.py]
crates/ruff_benchmark/benches/formatter.rs::formatter::benchmark_formatter
Skipped
247 µs
*
Uses the
CPU Simulation instrument
to collect CPU performance metrics.
linter/all-rules[numpy/globals.py]
crates/ruff_benchmark/benches/linter.rs::all_rules::benchmark_all_rules
Skipped
731.4 µs
*
Uses the
CPU Simulation instrument
to collect CPU performance metrics.
lexer[large/dataset.py]
crates/ruff_benchmark/benches/lexer.rs::lexer::benchmark_lexer
Skipped
1.2 ms
*
Uses the
CPU Simulation instrument
to collect CPU performance metrics.
lexer[numpy/globals.py]
crates/ruff_benchmark/benches/lexer.rs::lexer::benchmark_lexer
Skipped
30.4 µs
*
Uses the
CPU Simulation instrument
to collect CPU performance metrics.
lexer[unicode/pypinyin.py]
crates/ruff_benchmark/benches/lexer.rs::lexer::benchmark_lexer
Skipped
79.2 µs
*
Uses the
CPU Simulation instrument
to collect CPU performance metrics.
formatter[unicode/pypinyin.py]
crates/ruff_benchmark/benches/formatter.rs::formatter::benchmark_formatter
Skipped
687.4 µs
*
Uses the
CPU Simulation instrument
to collect CPU performance metrics.
formatter[pydantic/types.py]
crates/ruff_benchmark/benches/formatter.rs::formatter::benchmark_formatter
Skipped
3.6 ms
*
Uses the
CPU Simulation instrument
to collect CPU performance metrics.
linter/default-rules[large/dataset.py]
crates/ruff_benchmark/benches/linter.rs::default_rules::benchmark_default_rules
Skipped
4.3 ms
*
Uses the
CPU Simulation instrument
to collect CPU performance metrics.
formatter[numpy/ctypeslib.py]
crates/ruff_benchmark/benches/formatter.rs::formatter::benchmark_formatter
Skipped
1.9 ms
*
Uses the
CPU Simulation instrument
to collect CPU performance metrics.
linter/default-rules[numpy/globals.py]
crates/ruff_benchmark/benches/linter.rs::default_rules::benchmark_default_rules
Skipped
209.5 µs
*
Uses the
CPU Simulation instrument
to collect CPU performance metrics.
linter/all-rules[unicode/pypinyin.py]
crates/ruff_benchmark/benches/linter.rs::all_rules::benchmark_all_rules
Skipped
2 ms
*
1
2
3
Commits
Click on a commit to change the comparison range
Base
main
1a18ada
×2
[ty] Track narrowing unions to prevent exponential blowup
2fd90af
7 months ago
by zanieb
-30.8%
propagate the narrowed element instead of skipping narrowing entirely
3cf876e
7 months ago
by zanieb
+1.12%
review
fd525e8
7 months ago
by zanieb
© 2026 CodSpeed Technology
Home
Terms
Privacy
Docs