konstin
763d38cafb
Refactor top llvm-lines entry ( #5147 )
...
## 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
2023-06-18 12:39:06 +02:00