These benchmarks 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
du_balanced_tree[(5, 4, 10)]
src/uu/du/benches/du_bench.rs
Skipped
9.2 ms*
du_all_balanced_tree[(4, 3, 10)]
src/uu/du/benches/du_bench.rs
Skipped
1.6 ms*
factor_multiple_u128s[18446744073709551616]
src/uu/factor/benches/factor_bench.rs
Skipped
327.9 ms*
factor_multiple_big_uint
src/uu/factor/benches/factor_bench.rs
Skipped
18.6 ms*
du_human_balanced_tree[(5, 4, 10)]
src/uu/du/benches/du_bench.rs
Skipped
10.6 ms*
factor_table
src/uu/factor/benches/factor_bench.rs
Skipped
189.5 ms*
dd_copy_with_skip[48]
src/uu/dd/benches/dd_bench.rs
Skipped
2.2 ms*
dd_copy_1m_blocks[128]
src/uu/dd/benches/dd_bench.rs
Skipped
1.5 ms*
dd_copy_64k_blocks[64]
src/uu/dd/benches/dd_bench.rs
Skipped
609.9 µs*
dd_copy_8k_blocks[32]
src/uu/dd/benches/dd_bench.rs
Skipped
1 ms*
dd_copy_default[32]
src/uu/dd/benches/dd_bench.rs
Skipped
13.9 ms*
dd_copy_4k_blocks[24]
src/uu/dd/benches/dd_bench.rs
Skipped
1.3 ms*
dd_copy_with_seek[48]
src/uu/dd/benches/dd_bench.rs
Skipped
2.3 ms*
dd_copy_separate_blocks[48]
src/uu/dd/benches/dd_bench.rs
Skipped
44.1 ms*
dd_copy_partial[32]
src/uu/dd/benches/dd_bench.rs
Skipped
559.7 µs*
sort_german_c_locale
src/uu/sort/benches/sort_locale_bench.rs
Skipped
38.4 ms*
sort_numeric
src/uu/sort/benches/sort_locale_bench.rs
Skipped
23.9 ms*
sort_reverse_mixed
src/uu/sort/benches/sort_locale_bench.rs
Skipped
39.1 ms*
sort_ascii_utf8_locale
src/uu/sort/benches/sort_locale_bench.rs
Skipped
43.1 ms*
sort_mixed_c_locale
src/uu/sort/benches/sort_locale_bench.rs
Skipped
38.3 ms*
sort_unique_mixed
src/uu/sort/benches/sort_locale_bench.rs
Skipped
39.3 ms*
sort_ascii_c_locale
src/uu/sort/benches/sort_locale_bench.rs
Skipped
21.5 ms*
sort_mixed_utf8_locale
src/uu/sort/benches/sort_locale_bench.rs
Skipped
38.9 ms*
sort_german_locale
src/uu/sort/benches/sort_locale_bench.rs
Skipped
39.3 ms*
hashsum_md5
src/uu/hashsum/benches/hashsum_bench.rs
Skipped
32 ms*
hashsum_sha512
src/uu/hashsum/benches/hashsum_bench.rs
Skipped
110.8 ms*
hashsum_sha256_check
src/uu/hashsum/benches/hashsum_bench.rs
Skipped
172.9 ms*
hashsum_sha1
src/uu/hashsum/benches/hashsum_bench.rs
Skipped
72.5 ms*
hashsum_sha256
src/uu/hashsum/benches/hashsum_bench.rs
Skipped
172.9 ms*
hashsum_md5_check
src/uu/hashsum/benches/hashsum_bench.rs
Skipped
32 ms*
file_tz_abbreviations[1000]
src/uu/date/benches/date_bench.rs
Skipped
29.6 ms*
file_tz_abbreviations[10000]
src/uu/date/benches/date_bench.rs
Skipped
294.5 ms*
file_custom_format[1000]
src/uu/date/benches/date_bench.rs
Skipped
13.8 ms*
file_iso_dates[10000]
src/uu/date/benches/date_bench.rs
Skipped
143.5 ms*
file_tz_abbreviations[100]
src/uu/date/benches/date_bench.rs
Skipped
6.4 ms*
file_iso_dates[1000]
src/uu/date/benches/date_bench.rs
Skipped
14.5 ms*
file_iso_dates[100]
src/uu/date/benches/date_bench.rs
Skipped
1.6 ms*
Improved
tsort_input_parsing_heavy[5000]
src/uu/tsort/benches/tsort_bench.rs
+4%
73.1 ms70.2 ms
Passed
du_max_depth_balanced_tree[(6, 4, 10)]
src/uu/du/benches/du_bench.rs
+1%
33 ms32.7 ms
sort_mixed_data[500000]
src/uu/sort/benches/sort_bench.rs
+1%
317.3 ms314.8 ms
dd_copy_1m_blocks
src/uu/dd/benches/dd_bench.rs
+1%
1.5 ms1.5 ms
du_wide_tree[(5000, 500)]
src/uu/du/benches/du_bench.rs
+1%
11.2 ms11.2 ms
dd_copy_64k_blocks
src/uu/dd/benches/dd_bench.rs
0%
603.7 µs601.4 µs
dd_copy_8k_blocks
src/uu/dd/benches/dd_bench.rs
0%
1 ms1 ms
sort_unique_utf8_locale
src/uu/sort/benches/sort_locale_utf8_bench.rs
0%
37.7 ms37.7 ms
dd_copy_with_skip
src/uu/dd/benches/dd_bench.rs
0%
2.2 ms2.2 ms
dd_copy_4k_blocks
src/uu/dd/benches/dd_bench.rs
0%
1.3 ms1.3 ms
b64_decode_synthetic
src/uu/base64/benches/base64_bench.rs
0%
165.6 µs165.5 µs
cp_recursive_deep_tree[(120, 4)]
src/uu/cp/benches/cp_bench.rs
0%
13.6 ms13.6 ms
cp_recursive_balanced_tree[(5, 4, 10)]
src/uu/cp/benches/cp_bench.rs
0%
72.3 ms72.3 ms
cp_archive_balanced_tree[(5, 4, 10)]
src/uu/cp/benches/cp_bench.rs
0%
77.9 ms77.9 ms
b64_decode_ignore_garbage_synthetic
src/uu/base64/benches/base64_bench.rs
0%
162.6 µs162.5 µs
sort_mixed_utf8_locale
src/uu/sort/benches/sort_locale_utf8_bench.rs
0%
37.4 ms37.4 ms
factor_multiple_u64s[2]
src/uu/factor/benches/factor_bench.rs
0%
211.1 ms211 ms
shuf_lines[100000]
src/uu/shuf/benches/shuf_bench.rs
0%
31.6 ms31.6 ms
sort_german_de_locale
src/uu/sort/benches/sort_locale_de_bench.rs
0%
37.9 ms37.9 ms
tsort_complex_dag[50000]
src/uu/tsort/benches/tsort_bench.rs
0%
86.4 ms86.4 ms
sort_german_c_locale
src/uu/sort/benches/sort_locale_c_bench.rs
0%
37.9 ms37.9 ms
sort_case_insensitive[500000]
src/uu/sort/benches/sort_bench.rs
0%
265.9 ms265.9 ms
ls_recursive_deep_tree[(200, 2)]
src/uu/ls/benches/ls_bench.rs
0%
2.2 ms2.2 ms
ls_recursive_long_all_deep_tree[(100, 4)]
src/uu/ls/benches/ls_bench.rs
0%
3.2 ms3.2 ms
mv_force_overwrite
src/uu/mv/benches/mv_bench.rs
0%
143.8 ms143.8 ms
ls_recursive_long_all_mixed_tree
src/uu/ls/benches/ls_bench.rs
0%
2.8 ms2.8 ms
join_french_locale
src/uu/join/benches/join_bench.rs
0%
12.8 ms12.8 ms
uniq_case_insensitive[10000]
src/uu/uniq/benches/uniq_bench.rs
0%
1.6 ms1.6 ms
shuf_input_range[1000000]
src/uu/shuf/benches/shuf_bench.rs
0%
163.5 ms163.5 ms
ls_recursive_balanced_tree[(6, 4, 15)]
src/uu/ls/benches/ls_bench.rs
0%
55.3 ms55.3 ms
cksum_sha3
src/uu/cksum/benches/cksum_bench.rs
0%
1.8 s1.8 s
split_lines
src/uu/split/benches/split_bench.rs
0%
5.7 ms5.7 ms
uniq_heavy_duplicates[10000]
src/uu/uniq/benches/uniq_bench.rs
0%
1.9 ms1.9 ms
uniq_with_count[10000]
src/uu/uniq/benches/uniq_bench.rs
0%
1.8 ms1.8 ms
ls_recursive_wide_tree[(10000, 1000)]
src/uu/ls/benches/ls_bench.rs
0%
51.5 ms51.5 ms
numfmt_to_iec[10000]
src/uu/numfmt/benches/numfmt_bench.rs
0%
33.8 ms33.8 ms
numfmt_to_si[10000]
src/uu/numfmt/benches/numfmt_bench.rs
0%
33.8 ms33.8 ms
dd_copy_default
src/uu/dd/benches/dd_bench.rs
0%
14 ms14 ms
sort_long_line[160000]
src/uu/sort/benches/sort_bench.rs
0%
1.7 ms1.7 ms
cut_fields_tab
src/uu/cut/benches/cut_bench.rs
0%
34.1 ms34.1 ms
numfmt_from_si[10000]
src/uu/numfmt/benches/numfmt_bench.rs
0%
32.8 ms32.8 ms
numfmt_round_modes[("down", 10000)]
src/uu/numfmt/benches/numfmt_bench.rs
0%
34.3 ms34.3 ms
cut_fields_custom_delim
src/uu/cut/benches/cut_bench.rs
0%
40.8 ms40.8 ms
sort_numeric[500000]
src/uu/sort/benches/sort_bench.rs
0%
1.2 s1.2 s
numfmt_round_modes[("up", 10000)]
src/uu/numfmt/benches/numfmt_bench.rs
0%
34.3 ms34.3 ms
numfmt_round_modes[("towards-zero", 10000)]
src/uu/numfmt/benches/numfmt_bench.rs
0%
34.3 ms34.3 ms
numfmt_large_numbers_si[10000]
src/uu/numfmt/benches/numfmt_bench.rs
0%
32.5 ms32.5 ms
cksum_sha2
src/uu/cksum/benches/cksum_bench.rs
0%
1.7 s1.7 s
numfmt_to_si_precision[10000]
src/uu/numfmt/benches/numfmt_bench.rs
0%
35.3 ms35.3 ms
join_partial_overlap
src/uu/join/benches/join_bench.rs
0%
10.5 ms10.5 ms
numfmt_padding[(10000, 50)]
src/uu/numfmt/benches/numfmt_bench.rs
0%
48 ms48 ms
expand_many_lines[100000]
src/uu/expand/benches/expand_bench.rs
0%
148.6 ms148.6 ms
sort_dictionary_order[500000]
src/uu/sort/benches/sort_bench.rs
0%
1.1 s1.1 s
cksum_shake256
src/uu/cksum/benches/cksum_bench.rs
0%
1.9 s1.9 s
cksum_shake128
src/uu/cksum/benches/cksum_bench.rs
0%
1.5 s1.5 s
wc_words_synthetic[2000]
src/uu/wc/benches/wc_bench.rs
0%
11.4 s11.4 s
nl_many_lines[100000]
src/uu/nl/benches/nl_bench.rs
0%
44.9 ms44.9 ms
unexpand_large_file[10]
src/uu/unexpand/benches/unexpand_bench.rs
0%
529 ms529 ms
unexpand_many_lines[100000]
src/uu/unexpand/benches/unexpand_bench.rs
0%
252.3 ms252.3 ms
wc_bytes_lines_synthetic[2000]
src/uu/wc/benches/wc_bench.rs
0%
120.2 ms120.2 ms
expand_custom_tabstops[50000]
src/uu/expand/benches/expand_bench.rs
0%
36.9 ms36.9 ms
sort_reverse_utf8_locale
src/uu/sort/benches/sort_locale_utf8_bench.rs
0%
37.6 ms37.6 ms
fold_many_lines[100000]
src/uu/fold/benches/fold_bench.rs
0%
80.4 ms80.4 ms
fold_custom_width[50000]
src/uu/fold/benches/fold_bench.rs
0%
33 ms33 ms
wc_words_large_line_count[100000]
src/uu/wc/benches/wc_bench.rs
0%
48 ms48 ms
sort_mixed_c_locale
src/uu/sort/benches/sort_locale_c_bench.rs
0%
37.2 ms37.2 ms
wc_default_large_line_count[100000]
src/uu/wc/benches/wc_bench.rs
0%
50.4 ms50.4 ms
nl_large_file[10]
src/uu/nl/benches/nl_bench.rs
0%
57.1 ms57.1 ms
seq_formatted
src/uu/seq/benches/seq_bench.rs
0%
96.1 ms96.1 ms
cksum_sha256
src/uu/cksum/benches/cksum_bench.rs
0%
1.7 s1.7 s
seq_custom_separator
src/uu/seq/benches/seq_bench.rs
0%
28.7 ms28.7 ms
cut_characters
src/uu/cut/benches/cut_bench.rs
0%
7.4 ms7.4 ms
join_custom_separator
src/uu/join/benches/join_bench.rs
0%
12.1 ms12.1 ms
file_custom_format
src/uu/date/benches/date_bench.rs
0%
13.3 ms13.3 ms
file_iso_dates
src/uu/date/benches/date_bench.rs
0%
13.9 ms13.9 ms
seq_integers
src/uu/seq/benches/seq_bench.rs
0%
26.1 ms26.1 ms
cksum_sha512
src/uu/cksum/benches/cksum_bench.rs
0%
1.1 s1.1 s
cksum_sha384
src/uu/cksum/benches/cksum_bench.rs
0%
1.1 s1.1 s
sort_ascii_c_locale
src/uu/sort/benches/sort_locale_c_bench.rs
0%
20.3 ms20.3 ms
mv_single_file
src/uu/mv/benches/mv_bench.rs
0%
135 ms135 ms
wc_lines_variable_length[(50, 500)]
src/uu/wc/benches/wc_bench.rs
0%
3.4 ms3.4 ms
sort_ascii_utf8_locale
src/uu/sort/benches/sort_locale_utf8_bench.rs
0%
20.1 ms20.1 ms
file_tz_abbreviations
src/uu/date/benches/date_bench.rs
0%
18.6 ms18.6 ms
seq_with_step
src/uu/seq/benches/seq_bench.rs
0%
13.3 ms13.3 ms
mv_directory
src/uu/mv/benches/mv_bench.rs
0%
3.5 ms3.5 ms
wc_lines_large_line_count[500000]
src/uu/wc/benches/wc_bench.rs
0%
2.9 ms2.9 ms
cksum_sha224
src/uu/cksum/benches/cksum_bench.rs
0%
1.7 s1.7 s
wc_lines_extreme_line_lengths[(100000, 200)]
src/uu/wc/benches/wc_bench.rs
0%
1.6 ms1.6 ms
ls_recursive_long_all_wide_tree[(15000, 1500)]
src/uu/ls/benches/ls_bench.rs
0%
139.5 ms139.5 ms
cksum_sm3
src/uu/cksum/benches/cksum_bench.rs
0%
1.6 s1.6 s
ls_recursive_mixed_tree
src/uu/ls/benches/ls_bench.rs
0%
1.4 ms1.4 ms
cut_bytes
src/uu/cut/benches/cut_bench.rs
0%
8.4 ms8.4 ms
sort_accented_data[500000]
src/uu/sort/benches/sort_bench.rs
0%
351.8 ms351.8 ms
tsort_tree_dag[(10, 3)]
src/uu/tsort/benches/tsort_bench.rs
0%
34.7 ms34.7 ms
rm_multiple_files
src/uu/rm/benches/rm_bench.rs
0%
2.2 ms2.2 ms
join_full_match
src/uu/join/benches/join_bench.rs
0%
12.8 ms12.8 ms
sort_numeric_utf8_locale
src/uu/sort/benches/sort_locale_utf8_bench.rs
0%
22.8 ms22.8 ms
split_bytes
src/uu/split/benches/split_bench.rs
0%
508.9 µs509 µs
split_number_chunks
src/uu/split/benches/split_bench.rs
0%
293.8 µs293.8 µs
rm_force_files
src/uu/rm/benches/rm_bench.rs
0%
2 ms2 ms
seq_large_integers
src/uu/seq/benches/seq_bench.rs
0%
2.2 ms2.2 ms
cksum_sha1
src/uu/cksum/benches/cksum_bench.rs
0%
723 ms723.1 ms
split_numeric_suffix
src/uu/split/benches/split_bench.rs
0%
5.9 ms5.9 ms
wc_chars_large_line_count[100000]
src/uu/wc/benches/wc_bench.rs
0%
1 ms1 ms
tsort_wide_dag[100000]
src/uu/tsort/benches/tsort_bench.rs
0%
131.7 ms131.7 ms
tsort_linear_chain[1000000]
src/uu/tsort/benches/tsort_bench.rs
0%
1.6 s1.6 s
sort_ascii_only[500000]
src/uu/sort/benches/sort_bench.rs
0%
343 ms343 ms
b64_encode_synthetic
src/uu/base64/benches/base64_bench.rs
0%
161.2 µs161.2 µs
rm_single_file
src/uu/rm/benches/rm_bench.rs
0%
118.9 ms118.9 ms
shuf_repeat_sampling[50000]
src/uu/shuf/benches/shuf_bench.rs
0%
5.1 ms5.1 ms
cksum_md5
src/uu/cksum/benches/cksum_bench.rs
0%
317.9 ms318 ms
sort_key_field[500000]
src/uu/sort/benches/sort_bench.rs
0%
690.4 ms690.6 ms
cksum_bsd
src/uu/cksum/benches/cksum_bench.rs
0%
128.3 ms128.3 ms
mv_multiple_to_dir
src/uu/mv/benches/mv_bench.rs
0%
12.9 ms12.9 ms
cp_preserve_metadata[(5, 4, 10)]
src/uu/cp/benches/cp_bench.rs
0%
74.9 ms74.9 ms
ls_recursive_long_all_balanced_tree[(6, 4, 15)]
src/uu/ls/benches/ls_bench.rs
0%
129.7 ms129.7 ms
wc_bytes_synthetic[500]
src/uu/wc/benches/wc_bench.rs
0%
185.7 µs185.8 µs
complex_relative_date
src/uu/date/benches/date_bench.rs
0%
243.4 µs243.5 µs
cksum_blake2b
src/uu/cksum/benches/cksum_bench.rs
0%
192.7 ms192.8 ms
single_date_now
src/uu/date/benches/date_bench.rs
0%
184.4 µs184.5 µs
cp_recursive_wide_tree[(6000, 800)]
src/uu/cp/benches/cp_bench.rs
0%
189.4 ms189.5 ms
cksum_blake3
src/uu/cksum/benches/cksum_bench.rs
0%
224.9 µs225.1 µs
cksum_sysv
src/uu/cksum/benches/cksum_bench.rs
0%
48.2 ms48.3 ms
dd_copy_separate_blocks
src/uu/dd/benches/dd_bench.rs
0%
43.9 ms43.9 ms
sort_case_sensitive[500000]
src/uu/sort/benches/sort_bench.rs
0%
163 ms163.1 ms
rm_recursive_tree
src/uu/rm/benches/rm_bench.rs
0%
11.7 ms11.8 ms
sort_reverse_locale[500000]
src/uu/sort/benches/sort_bench.rs
0%
350.9 ms351.4 ms
du_all_wide_tree[(5000, 500)]
src/uu/du/benches/du_bench.rs
0%
18 ms18.1 ms
sort_unique_locale[500000]
src/uu/sort/benches/sort_bench.rs
0%
483.3 ms484.4 ms
du_summarize_balanced_tree[(5, 4, 10)]
src/uu/du/benches/du_bench.rs
0%
8.4 ms8.4 ms
cksum_default
src/uu/cksum/benches/cksum_bench.rs
0%
16.8 ms16.8 ms
cksum_raw_output
src/uu/cksum/benches/cksum_bench.rs
0%
16.8 ms16.8 ms
du_deep_tree[(100, 3)]
src/uu/du/benches/du_bench.rs
0%
1.2 ms1.2 ms
cp_large_file[16]
src/uu/cp/benches/cp_bench.rs
0%
361.8 µs363 µs
cksum_crc32b
src/uu/cksum/benches/cksum_bench.rs
0%
13.2 ms13.2 ms
cksum_multiple_files
src/uu/cksum/benches/cksum_bench.rs
0%
25.2 ms25.3 ms
dd_copy_with_seek
src/uu/dd/benches/dd_bench.rs
0%
2.3 ms2.3 ms
cksum_crc
src/uu/cksum/benches/cksum_bench.rs
0%
16.8 ms16.9 ms
dd_copy_partial
src/uu/dd/benches/dd_bench.rs
-1%
550.5 µs558 µs
Commits
Click on a commit to change the comparison range
Base
main
130f780
-0.03%
cut: fix -s flag ignored when delimiter is newline
When using newline as the delimiter (-d $'\n') with -s (only-delimited),
cut should suppress lines that do not contain the delimiter. However,
cut_fields_newline_char_delim() was not checking the only_delimited flag,
causing it to always output even when -s was specified.
The fix uses read_until() instead of split() to read segments. Unlike
split(), read_until() includes the delimiter in the buffer when found,
allowing us to detect whether a delimiter was actually present or if
we just hit EOF.
This commit:
- Adds only_delimited parameter to cut_fields_newline_char_delim()
- Uses read_until() to detect delimiter presence while reading
- If no delimiter found and only_delimited is true, returns early
- Adds test case for newline delimiter with -s flag
Fixes #10012
3e15738
6 days ago
by rynewang
+0.03%
cut: simplify newline delimiter handling
- Use read_to_end + split instead of read_until loop
- Use Vec<&[u8]> instead of Vec<Vec<u8>> (no extra allocations)
- Rename found_delimiter to has_delimiter
- Check has_delimiter before removing trailing empty segment
- Only write trailing newline if we output something
- Remove unused BufRead import
- Add tests for edge cases: just newline, empty input
526b5d8
5 days ago
by rynewang
+4.1%
cut: use streaming DelimReader for newline delimiter
Address PR review comments:
- Replace read_to_end() with streaming DelimReader iterator
- DelimReader uses read_until() and tracks delimiter per segment
- Only collect selected fields, not entire input
- Remove b"".as_slice() check (DelimReader doesn't create trailing empties)
- Simplify output with split_first() join pattern