mirror of
https://github.com/astral-sh/ruff.git
synced 2025-07-19 02:55:20 +00:00
![]() ## Summary This refactors the top entry in terms of llvm lines, `RuleCodePrefix::iter()`. It's only used for generating the schema and the clap completion so no effect on performance. I've confirmed with ``` CARGO_TARGET_DIR=target-llvm-lines RUSTFLAGS="-Csymbol-mangling-version=v0" cargo llvm-lines -p ruff --lib | head -n 20 ``` that this indeed remove the method from the list of heaviest symbols in terms of llvm-lines Before: ``` Lines Copies Function name ----- ------ ------------- 1768469 40538 (TOTAL) 10391 (0.6%, 0.6%) 1 (0.0%, 0.0%) <ruff[fa0f2e8ef07114da]::codes::RuleCodePrefix>::iter 8250 (0.5%, 1.1%) 1 (0.0%, 0.0%) <ruff[fa0f2e8ef07114da]::codes::Rule>::noqa_code 7427 (0.4%, 1.5%) 1 (0.0%, 0.0%) <ruff[fa0f2e8ef07114da]::checkers::ast::Checker as ruff_python_ast[c4c9eadfa5741dd4]::visitor::Visitor>::visit_stmt 6536 (0.4%, 1.8%) 1 (0.0%, 0.0%) <<ruff[fa0f2e8ef07114da]::settings::options::Options as serde[1a28808d63625aed]:🇩🇪:Deserialize>::deserialize::__Visitor as serde[1a28808d63625aed]:🇩🇪:Visitor>::visit_map::<toml_edit[de4ca26332d39787]:🇩🇪:spanned::SpannedDeserializer<toml_edit[de4ca26332d39787]:🇩🇪:value::ValueDeserializer>> 6536 (0.4%, 2.2%) 1 (0.0%, 0.0%) <<ruff[fa0f2e8ef07114da]::settings::options::Options as serde[1a28808d63625aed]:🇩🇪:Deserialize>::deserialize::__Visitor as serde[1a28808d63625aed]:🇩🇪:Visitor>::visit_map::<toml_edit[de4ca26332d39787]:🇩🇪:table::TableMapAccess> 6533 (0.4%, 2.6%) 1 (0.0%, 0.0%) <<ruff[fa0f2e8ef07114da]::settings::options::Options as serde[1a28808d63625aed]:🇩🇪:Deserialize>::deserialize::__Visitor as serde[1a28808d63625aed]:🇩🇪:Visitor>::visit_map::<toml_edit[de4ca26332d39787]:🇩🇪:datetime::DatetimeDeserializer> 5727 (0.3%, 2.9%) 1 (0.0%, 0.0%) <ruff[fa0f2e8ef07114da]::checkers::ast::Checker as ruff_python_ast[c4c9eadfa5741dd4]::visitor::Visitor>::visit_expr 4453 (0.3%, 3.2%) 1 (0.0%, 0.0%) ruff[fa0f2e8ef07114da]::flake8_to_ruff::converter::convert 3790 (0.2%, 3.4%) 1 (0.0%, 0.0%) <&ruff[fa0f2e8ef07114da]::registry::Linter as core[da82827a87f140f9]::iter::traits::collect::IntoIterator>::into_iter 3416 (0.2%, 3.6%) 1 (0.0%, 0.0%) <ruff[fa0f2e8ef07114da]::registry::Linter>::code_for_rule 3187 (0.2%, 3.7%) 1 (0.0%, 0.0%) <ruff[fa0f2e8ef07114da]::codes::Rule as core[da82827a87f140f9]::fmt::Debug>::fmt 3185 (0.2%, 3.9%) 1 (0.0%, 0.0%) <&str as core[da82827a87f140f9]::convert::From<&ruff[fa0f2e8ef07114da]::codes::Rule>>::from 3185 (0.2%, 4.1%) 1 (0.0%, 0.0%) <&str as core[da82827a87f140f9]::convert::From<ruff[fa0f2e8ef07114da]::codes::Rule>>::from 3185 (0.2%, 4.3%) 1 (0.0%, 0.0%) <ruff[fa0f2e8ef07114da]::codes::Rule as core[da82827a87f140f9]::convert::AsRef<str>>::as_ref 3183 (0.2%, 4.5%) 1 (0.0%, 0.0%) <ruff[fa0f2e8ef07114da]::codes::RuleIter>::get 2718 (0.2%, 4.6%) 1 (0.0%, 0.0%) <<ruff[fa0f2e8ef07114da]::settings::options::Options as serde[1a28808d63625aed]:🇩🇪:Deserialize>::deserialize::__Visitor as serde[1a28808d63625aed]:🇩🇪:Visitor>::visit_seq::<toml_edit[de4ca26332d39787]:🇩🇪:array::ArraySeqAccess> 2706 (0.2%, 4.8%) 1 (0.0%, 0.0%) <&ruff[fa0f2e8ef07114da]::codes::Pylint as core[da82827a87f140f9]::iter::traits::collect::IntoIterator>::into_iter ``` After: ``` Lines Copies Function name ----- ------ ------------- 1763380 40806 (TOTAL) 8250 (0.5%, 0.5%) 1 (0.0%, 0.0%) <ruff[fa0f2e8ef07114da]::codes::Rule>::noqa_code 7427 (0.4%, 0.9%) 1 (0.0%, 0.0%) <ruff[fa0f2e8ef07114da]::checkers::ast::Checker as ruff_python_ast[c4c9eadfa5741dd4]::visitor::Visitor>::visit_stmt 6536 (0.4%, 1.3%) 1 (0.0%, 0.0%) <<ruff[fa0f2e8ef07114da]::settings::options::Options as serde[1a28808d63625aed]:🇩🇪:Deserialize>::deserialize::__Visitor as serde[1a28808d63625aed]:🇩🇪:Visitor>::visit_map::<toml_edit[de4ca26332d39787]:🇩🇪:spanned::SpannedDeserializer<toml_edit[de4ca26332d39787]:🇩🇪:value::ValueDeserializer>> 6536 (0.4%, 1.6%) 1 (0.0%, 0.0%) <<ruff[fa0f2e8ef07114da]::settings::options::Options as serde[1a28808d63625aed]:🇩🇪:Deserialize>::deserialize::__Visitor as serde[1a28808d63625aed]:🇩🇪:Visitor>::visit_map::<toml_edit[de4ca26332d39787]:🇩🇪:table::TableMapAccess> 6533 (0.4%, 2.0%) 1 (0.0%, 0.0%) <<ruff[fa0f2e8ef07114da]::settings::options::Options as serde[1a28808d63625aed]:🇩🇪:Deserialize>::deserialize::__Visitor as serde[1a28808d63625aed]:🇩🇪:Visitor>::visit_map::<toml_edit[de4ca26332d39787]:🇩🇪:datetime::DatetimeDeserializer> 5727 (0.3%, 2.3%) 1 (0.0%, 0.0%) <ruff[fa0f2e8ef07114da]::checkers::ast::Checker as ruff_python_ast[c4c9eadfa5741dd4]::visitor::Visitor>::visit_expr 4453 (0.3%, 2.6%) 1 (0.0%, 0.0%) ruff[fa0f2e8ef07114da]::flake8_to_ruff::converter::convert 3790 (0.2%, 2.8%) 1 (0.0%, 0.0%) <&ruff[fa0f2e8ef07114da]::registry::Linter as core[da82827a87f140f9]::iter::traits::collect::IntoIterator>::into_iter 3416 (0.2%, 3.0%) 1 (0.0%, 0.0%) <ruff[fa0f2e8ef07114da]::registry::Linter>::code_for_rule 3187 (0.2%, 3.2%) 1 (0.0%, 0.0%) <ruff[fa0f2e8ef07114da]::codes::Rule as core[da82827a87f140f9]::fmt::Debug>::fmt 3185 (0.2%, 3.3%) 1 (0.0%, 0.0%) <&str as core[da82827a87f140f9]::convert::From<&ruff[fa0f2e8ef07114da]::codes::Rule>>::from 3185 (0.2%, 3.5%) 1 (0.0%, 0.0%) <&str as core[da82827a87f140f9]::convert::From<ruff[fa0f2e8ef07114da]::codes::Rule>>::from 3185 (0.2%, 3.7%) 1 (0.0%, 0.0%) <ruff[fa0f2e8ef07114da]::codes::Rule as core[da82827a87f140f9]::convert::AsRef<str>>::as_ref 3183 (0.2%, 3.9%) 1 (0.0%, 0.0%) <ruff[fa0f2e8ef07114da]::codes::RuleIter>::get 2718 (0.2%, 4.0%) 1 (0.0%, 0.0%) <<ruff[fa0f2e8ef07114da]::settings::options::Options as serde[1a28808d63625aed]:🇩🇪:Deserialize>::deserialize::__Visitor as serde[1a28808d63625aed]:🇩🇪:Visitor>::visit_seq::<toml_edit[de4ca26332d39787]:🇩🇪:array::ArraySeqAccess> 2706 (0.2%, 4.2%) 1 (0.0%, 0.0%) <&ruff[fa0f2e8ef07114da]::codes::Pylint as core[da82827a87f140f9]::iter::traits::collect::IntoIterator>::into_iter 2573 (0.1%, 4.3%) 1 (0.0%, 0.0%) <<ruff[fa0f2e8ef07114da]::rules::isort::settings::Options as serde[1a28808d63625aed]:🇩🇪:Deserialize>::deserialize::__Visitor as serde[1a28808d63625aed]:🇩🇪:Visitor>::visit_map::<toml_edit[de4ca26332d39787]:🇩🇪:spanned::SpannedDeserializer<toml_edit[de4ca26332d39787]:🇩🇪:value::ValueDeserializer>> ``` I didn't measure the effect on binary size this time. ## Testing `cargo test` which uses this to generate the schema didn't change |
||
---|---|---|
.. | ||
src | ||
Cargo.toml |