Skip to content

Most time consuming test files #12188

Closed
Closed
@blyxyas

Description

@blyxyas

Recently, I've run an experiment using SPEEDTEST of, benchmarking each test file 100 times and getting the average time, then recollecting all that data into a single file containing average of milliseconds + number of lines in that test file (+ filename), and using a Python script (had to de-rust here, I can now see why people use Python for data science hehe :3)

So, now we have a list of the top 150 most consuming lints out there.

Milliseconds Lines File
108 11 tests/ui/print_stderr.rs
1012 103 tests/ui/default_trait_access.rs
1209 122 tests/ui/shadow.rs
825 82 tests/ui/mut_mut.rs
930 92 tests/ui/almost_complete_range.rs
912 89 tests/ui/redundant_field_names.rs
902 88 tests/ui/min_ident_chars.rs
205 20 tests/ui/unnested_or_patterns2.rs
205 20 tests/ui/vec_resize_to_zero.rs
205 20 tests/ui/default_instead_of_iter_empty.rs
206 20 tests/ui/tabs_in_doc_comments.rs
207 20 tests/ui/ptr_offset_with_cast.rs
306 29 tests/ui/reversed_empty_ranges_fixable.rs
203 19 tests/ui/tests_outside_test_module.rs
107 10 tests/ui/double_neg.rs
312 29 tests/ui/skip_while_next.rs
410 38 tests/ui/iter_skip_next.rs
206 19 tests/ui/reversed_empty_ranges_unfixable.rs
206 19 tests/ui/string_add_assign.rs
206 19 tests/ui/zero_ptr_no_std.rs
207 19 tests/ui/floating_point_exp.rs
1018 91 tests/ui/equatable_if_let.rs
213 19 tests/ui/filter_map_next.rs
852 75 tests/ui/single_call_fn.rs
205 18 tests/ui/inline_fn_without_body.rs
205 18 tests/ui/writeln_empty_string.rs
915 80 tests/ui/manual_rem_euclid.rs
206 18 tests/ui/borrow_as_ptr.rs
288 25 tests/ui/bind_instead_of_map.rs
105 9 tests/ui/deprecated_old.rs
247 21 tests/ui/filter_map_next_fixable.rs
106 9 tests/ui/str_to_string.rs
107 9 tests/ui/builtin_type_shadow.rs
1980 166 tests/ui/format_args.rs
920 77 tests/ui/inconsistent_struct_constructor.rs
205 17 tests/ui/println_empty_string.rs
956 79 tests/ui/needless_return_with_question_mark.rs
209 17 tests/ui/floating_point_logbase.rs
911 74 tests/ui/iter_over_hash_type.rs
137 11 tests/ui/if_not_else_bittest.rs
918 73 tests/ui/borrow_deref_ref.rs
954 75 tests/ui/let_underscore_untyped.rs
217 17 tests/ui/filter_map_identity.rs
205 16 tests/ui/entry_btree.rs
205 16 tests/ui/is_digit_ascii_radix.rs
205 16 tests/ui/unchecked_duration_subtraction.rs
206 16 tests/ui/unknown_clippy_lints.rs
206 16 tests/ui/unused_rounding.rs
207 16 tests/ui/short_circuit_statement.rs
104 8 tests/ui/non_minimal_cfg2.rs
406 31 tests/ui/uninlined_format_args_panic.rs
106 8 tests/ui/exit3.rs
214 16 tests/ui/create_dir.rs
108 8 tests/ui/string_to_string.rs
405 30 tests/ui/thread_local_initializer_can_be_made_const.rs
205 15 tests/ui/int_plus_one.rs
205 15 tests/ui/len_zero_ranges.rs
205 15 tests/ui/reversed_empty_ranges_loops_unfixable.rs
206 15 tests/ui/map_collect_result_unit.rs
206 15 tests/ui/repeat_once.rs
207 15 tests/ui/flat_map_identity.rs
207 15 tests/ui/transmute_int_to_char.rs
838 59 tests/ui/single_range_in_vec_init.rs
1213 85 tests/ui/useless_attribute.rs
229 16 tests/ui/iter_next_loop.rs
960 67 tests/ui/needless_arbitrary_self_type.rs
1195 81 tests/ui/filter_map_bool_then.rs
828 56 tests/ui/manual_float_methods.rs
224 15 tests/ui/non_minimal_cfg.rs
912 61 tests/ui/ptr_cast_constness.rs
105 7 tests/ui/empty_enum_without_never_type.rs
1108 73 tests/ui/std_instead_of_core.rs
914 59 tests/ui/deref_addrof.rs
1198 76 tests/ui/literals.rs
205 13 tests/ui/floating_point_hypot.rs
206 13 tests/ui/needless_parens_on_range_literals.rs
206 13 tests/ui/suspicious_command_arg_space.rs
206 13 tests/ui/trailing_zeros.rs
206 13 tests/ui/zero_ptr.rs
209 13 tests/ui/needless_option_take.rs
561 34 tests/ui/find_map.rs
216 13 tests/ui/types.rs
1419 85 tests/ui/manual_assert.rs
875 51 tests/ui/empty_loop.rs
206 12 tests/ui/flat_map_option.rs
920 53 tests/ui/unneeded_wildcard_pattern.rs
838 48 tests/ui/arc_with_non_send_sync.rs
1258 71 tests/ui/impl.rs
911 51 tests/ui/reserve_after_initialization.rs
890 49 tests/ui/allow_attributes.rs
820 44 tests/ui/allow_attributes_without_reason.rs
205 11 tests/ui/track-diagnostics.rs
914 49 tests/ui/string_lit_chars_any.rs
909 48 tests/ui/mistyped_literal_suffix.rs
211 11 tests/ui/as_underscore.rs
826 43 tests/ui/unnecessary_fallible_conversions_unfixable.rs
511 26 tests/ui/manual_find.rs
914 45 tests/ui/manual_slice_size_calculation.rs
204 10 tests/ui/methods_fixable.rs
874 42 tests/ui/let_with_type_underscore.rs
105 5 tests/ui/missing_doc_crate_missing.rs
105 5 tests/ui/missing_inline_executable.rs
993 46 tests/ui/needless_arbitrary_self_type_unfixable.rs
1037 48 tests/ui/four_forward_slashes.rs
1263 56 tests/ui/ignored_unit_patterns.rs
204 9 tests/ui/unnecessary_self_imports.rs
205 9 tests/ui/to_digit_is_some.rs
1162 51 tests/ui/macro_use_imports_expect.rs
206 9 tests/ui/bytes_nth.rs
921 39 tests/ui/toplevel_ref_arg.rs
900 38 tests/ui/pub_with_shorthand.rs
809 34 tests/ui/unneeded_field_pattern.rs
906 38 tests/ui/pub_without_shorthand.rs
1135 47 tests/ui/patterns.rs
2344 92 tests/ui/format.rs
205 8 tests/ui/char_lit_as_u8_suggestions.rs
206 8 tests/ui/empty_enum.rs
207 8 tests/ui/to_string_in_format_args_incremental.rs
208 8 tests/ui/char_lit_as_u8.rs
864 33 tests/ui/needless_pub_self.rs
1261 48 tests/ui/macro_use_imports.rs
106 4 tests/ui/missing_doc_crate.rs
107 4 tests/ui/unknown_attribute.rs
1110 41 tests/ui/unseparated_prefix_literals.rs
824 29 tests/ui/string_add.rs
205 7 tests/ui/open_options_fixable.rs
205 7 tests/ui/path_buf_push_overwrite.rs
326 11 tests/ui/map_unit_fn.rs
208 7 tests/ui/option_map_or_err_ok.rs
812 27 tests/ui/toplevel_ref_arg_non_rustfix.rs
850 28 tests/ui/must_use_unit.rs
403 13 tests/ui/unwrap_or.rs
817 26 tests/ui/proc_macro.rs
205 6 tests/ui/four_forward_slashes_first_line.rs
911 26 tests/ui/redundant_at_rest_pattern.rs
809 23 tests/ui/as_conversions.rs
106 3 tests/ui/issue-3145.rs
951 24 tests/ui/iter_skip_zero.rs
205 5 tests/ui/obfuscated_if_else.rs
211 5 tests/ui/string_from_utf8_as_bytes.rs
887 21 tests/ui/unwrap.rs
828 17 tests/ui/option_env_unwrap.rs
210 4 tests/ui/author.rs
1010 19 tests/ui/range.rs
1137 21 tests/ui/expect.rs
813 13 tests/ui/deref_addrof_macro.rs
809 12 tests/ui/mem_replace_macro.rs
3431 35 tests/ui/large_const_arrays.rs
205 2 tests/ui/renamed_builtin_attr.rs
827 6 tests/ui/unnecessary_fallible_conversions.rs

I'll do some inspection in these lints (primarily seeing which function calls are repeated between them) and then... Fix them (?)
If you want to optimize some of these lints, you're free to do so! (we probably won't collide in the same lint hehe :3)

Metadata

Metadata

Assignees

No one assigned

    Labels

    C-an-interesting-projectCategory: Interesting projects, that usually are more involved design/code wise.performance-projectFor issues and PRs related to the Clippy Performance Project

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions