mirror of
https://github.com/uutils/coreutils.git
synced 2025-12-23 08:47:37 +00:00
bench: only keep the big values
This commit is contained in:
parent
70828009a4
commit
0431ea37b4
5 changed files with 32 additions and 32 deletions
|
|
@ -145,7 +145,7 @@ fn create_mixed_tree(base_dir: &Path) -> std::io::Result<()> {
|
|||
}
|
||||
|
||||
/// Benchmark ls -R on balanced directory tree
|
||||
#[divan::bench(args = [(3, 4, 8), (4, 3, 6), (5, 2, 10)])]
|
||||
#[divan::bench(args = [(5, 2, 10)])]
|
||||
fn ls_recursive_balanced_tree(
|
||||
bencher: Bencher,
|
||||
(depth, dirs_per_level, files_per_dir): (usize, usize, usize),
|
||||
|
|
@ -156,7 +156,7 @@ fn ls_recursive_balanced_tree(
|
|||
}
|
||||
|
||||
/// Benchmark ls -R -a -l on balanced directory tree (tests PR #8728 optimization)
|
||||
#[divan::bench(args = [(3, 4, 8), (4, 3, 6), (5, 2, 10)])]
|
||||
#[divan::bench(args = [(5, 2, 10)])]
|
||||
fn ls_recursive_long_all_balanced_tree(
|
||||
bencher: Bencher,
|
||||
(depth, dirs_per_level, files_per_dir): (usize, usize, usize),
|
||||
|
|
@ -167,7 +167,7 @@ fn ls_recursive_long_all_balanced_tree(
|
|||
}
|
||||
|
||||
/// Benchmark ls -R on wide directory structures
|
||||
#[divan::bench(args = [(1000, 200), (5000, 500), (10000, 1000)])]
|
||||
#[divan::bench(args = [(10000, 1000)])]
|
||||
fn ls_recursive_wide_tree(bencher: Bencher, (total_files, total_dirs): (usize, usize)) {
|
||||
let temp_dir = TempDir::new().unwrap();
|
||||
create_wide_tree(temp_dir.path(), total_files, total_dirs).unwrap();
|
||||
|
|
@ -175,7 +175,7 @@ fn ls_recursive_wide_tree(bencher: Bencher, (total_files, total_dirs): (usize, u
|
|||
}
|
||||
|
||||
/// Benchmark ls -R -a -l on wide directory structures
|
||||
#[divan::bench(args = [(1000, 200), (5000, 500)])]
|
||||
#[divan::bench(args = [(5000, 500)])]
|
||||
fn ls_recursive_long_all_wide_tree(bencher: Bencher, (total_files, total_dirs): (usize, usize)) {
|
||||
let temp_dir = TempDir::new().unwrap();
|
||||
create_wide_tree(temp_dir.path(), total_files, total_dirs).unwrap();
|
||||
|
|
@ -183,7 +183,7 @@ fn ls_recursive_long_all_wide_tree(bencher: Bencher, (total_files, total_dirs):
|
|||
}
|
||||
|
||||
/// Benchmark ls -R on deep directory structures
|
||||
#[divan::bench(args = [(20, 3), (50, 2), (100, 1)])]
|
||||
#[divan::bench(args = [(100, 1)])]
|
||||
fn ls_recursive_deep_tree(bencher: Bencher, (depth, files_per_level): (usize, usize)) {
|
||||
let temp_dir = TempDir::new().unwrap();
|
||||
create_deep_tree(temp_dir.path(), depth, files_per_level).unwrap();
|
||||
|
|
@ -191,7 +191,7 @@ fn ls_recursive_deep_tree(bencher: Bencher, (depth, files_per_level): (usize, us
|
|||
}
|
||||
|
||||
/// Benchmark ls -R -a -l on deep directory structures
|
||||
#[divan::bench(args = [(20, 3), (50, 2)])]
|
||||
#[divan::bench(args = [(50, 2)])]
|
||||
fn ls_recursive_long_all_deep_tree(bencher: Bencher, (depth, files_per_level): (usize, usize)) {
|
||||
let temp_dir = TempDir::new().unwrap();
|
||||
create_deep_tree(temp_dir.path(), depth, files_per_level).unwrap();
|
||||
|
|
|
|||
|
|
@ -79,7 +79,7 @@ fn numfmt_large_numbers_si(bencher: Bencher, count: usize) {
|
|||
}
|
||||
|
||||
/// Benchmark different padding widths
|
||||
#[divan::bench(args = [(1_000_000, 5), (1_000_000, 50)])]
|
||||
#[divan::bench(args = [(1_000_000, 50)])]
|
||||
fn numfmt_padding(bencher: Bencher, (count, padding): (usize, usize)) {
|
||||
let data = text_data::generate_numbers(count);
|
||||
let file_path = setup_test_file(data.as_bytes());
|
||||
|
|
@ -95,7 +95,7 @@ fn numfmt_padding(bencher: Bencher, (count, padding): (usize, usize)) {
|
|||
}
|
||||
|
||||
/// Benchmark round modes with SI formatting
|
||||
#[divan::bench(args = [("up", 100_000), ("down", 1_000_000), ("towards-zero", 1_000_000)])]
|
||||
#[divan::bench(args = [("up", 1_000_000), ("down", 1_000_000), ("towards-zero", 1_000_000)])]
|
||||
fn numfmt_round_modes(bencher: Bencher, (round_mode, count): (&str, usize)) {
|
||||
let data = text_data::generate_numbers(count);
|
||||
let file_path = setup_test_file(data.as_bytes());
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ use uu_sort::uumain;
|
|||
use uucore::benchmark::{run_util_function, setup_test_file, text_data};
|
||||
|
||||
/// Benchmark sorting ASCII-only data
|
||||
#[divan::bench(args = [100_000, 500_000])]
|
||||
#[divan::bench(args = [500_000])]
|
||||
fn sort_ascii_only(bencher: Bencher, num_lines: usize) {
|
||||
let data = text_data::generate_ascii_data(num_lines);
|
||||
let file_path = setup_test_file(&data);
|
||||
|
|
@ -19,7 +19,7 @@ fn sort_ascii_only(bencher: Bencher, num_lines: usize) {
|
|||
}
|
||||
|
||||
/// Benchmark sorting accented/non-ASCII data
|
||||
#[divan::bench(args = [100_000, 500_000])]
|
||||
#[divan::bench(args = [500_000])]
|
||||
fn sort_accented_data(bencher: Bencher, num_lines: usize) {
|
||||
let data = text_data::generate_accented_data(num_lines);
|
||||
let file_path = setup_test_file(&data);
|
||||
|
|
@ -30,7 +30,7 @@ fn sort_accented_data(bencher: Bencher, num_lines: usize) {
|
|||
}
|
||||
|
||||
/// Benchmark sorting mixed ASCII/non-ASCII data
|
||||
#[divan::bench(args = [100_000, 500_000])]
|
||||
#[divan::bench(args = [500_000])]
|
||||
fn sort_mixed_data(bencher: Bencher, num_lines: usize) {
|
||||
let data = text_data::generate_mixed_data(num_lines);
|
||||
let file_path = setup_test_file(&data);
|
||||
|
|
@ -41,7 +41,7 @@ fn sort_mixed_data(bencher: Bencher, num_lines: usize) {
|
|||
}
|
||||
|
||||
/// Benchmark case-sensitive sorting with mixed case data
|
||||
#[divan::bench(args = [100_000, 500_000])]
|
||||
#[divan::bench(args = [500_000])]
|
||||
fn sort_case_sensitive(bencher: Bencher, num_lines: usize) {
|
||||
let data = text_data::generate_case_sensitive_data(num_lines);
|
||||
let file_path = setup_test_file(&data);
|
||||
|
|
@ -52,7 +52,7 @@ fn sort_case_sensitive(bencher: Bencher, num_lines: usize) {
|
|||
}
|
||||
|
||||
/// Benchmark case-insensitive sorting (fold case)
|
||||
#[divan::bench(args = [100_000, 500_000])]
|
||||
#[divan::bench(args = [500_000])]
|
||||
fn sort_case_insensitive(bencher: Bencher, num_lines: usize) {
|
||||
let data = text_data::generate_case_sensitive_data(num_lines);
|
||||
let file_path = setup_test_file(&data);
|
||||
|
|
@ -66,7 +66,7 @@ fn sort_case_insensitive(bencher: Bencher, num_lines: usize) {
|
|||
}
|
||||
|
||||
/// Benchmark dictionary order sorting (only blanks and alphanumeric)
|
||||
#[divan::bench(args = [100_000, 500_000])]
|
||||
#[divan::bench(args = [500_000])]
|
||||
fn sort_dictionary_order(bencher: Bencher, num_lines: usize) {
|
||||
let data = text_data::generate_mixed_data(num_lines);
|
||||
let file_path = setup_test_file(&data);
|
||||
|
|
@ -80,7 +80,7 @@ fn sort_dictionary_order(bencher: Bencher, num_lines: usize) {
|
|||
}
|
||||
|
||||
/// Benchmark numeric sorting with mixed data
|
||||
#[divan::bench(args = [100_000, 500_000])]
|
||||
#[divan::bench(args = [500_000])]
|
||||
fn sort_numeric(bencher: Bencher, num_lines: usize) {
|
||||
let mut data = Vec::new();
|
||||
|
||||
|
|
@ -101,7 +101,7 @@ fn sort_numeric(bencher: Bencher, num_lines: usize) {
|
|||
}
|
||||
|
||||
/// Benchmark reverse sorting with locale-aware data
|
||||
#[divan::bench(args = [100_000, 500_000])]
|
||||
#[divan::bench(args = [500_000])]
|
||||
fn sort_reverse_locale(bencher: Bencher, num_lines: usize) {
|
||||
let data = text_data::generate_accented_data(num_lines);
|
||||
let file_path = setup_test_file(&data);
|
||||
|
|
@ -115,7 +115,7 @@ fn sort_reverse_locale(bencher: Bencher, num_lines: usize) {
|
|||
}
|
||||
|
||||
/// Benchmark sorting with specific key field
|
||||
#[divan::bench(args = [100_000, 500_000])]
|
||||
#[divan::bench(args = [500_000])]
|
||||
fn sort_key_field(bencher: Bencher, num_lines: usize) {
|
||||
let mut data = Vec::new();
|
||||
|
||||
|
|
@ -140,7 +140,7 @@ fn sort_key_field(bencher: Bencher, num_lines: usize) {
|
|||
}
|
||||
|
||||
/// Benchmark unique sorting with locale-aware data
|
||||
#[divan::bench(args = [100_000, 500_000])]
|
||||
#[divan::bench(args = [500_000])]
|
||||
fn sort_unique_locale(bencher: Bencher, num_lines: usize) {
|
||||
let data = text_data::generate_accented_data(num_lines);
|
||||
let file_path = setup_test_file(&data);
|
||||
|
|
|
|||
|
|
@ -136,7 +136,7 @@ fn generate_input_parsing_heavy(num_edges: usize) -> Vec<u8> {
|
|||
|
||||
/// Benchmark linear chain graphs of different sizes
|
||||
/// This tests the performance improvements mentioned in PR #8694
|
||||
#[divan::bench(args = [1_000, 10_000, 100_000, 1_000_000])]
|
||||
#[divan::bench(args = [1_000_000])]
|
||||
fn tsort_linear_chain(bencher: Bencher, num_nodes: usize) {
|
||||
let data = generate_linear_chain(num_nodes);
|
||||
let file_path = setup_test_file(&data);
|
||||
|
|
@ -148,7 +148,7 @@ fn tsort_linear_chain(bencher: Bencher, num_nodes: usize) {
|
|||
}
|
||||
|
||||
/// Benchmark tree-like DAG structures
|
||||
#[divan::bench(args = [(4, 3), (5, 3), (6, 2), (7, 2)])]
|
||||
#[divan::bench(args = [(7, 2)])]
|
||||
fn tsort_tree_dag(bencher: Bencher, (depth, branching): (usize, usize)) {
|
||||
let data = generate_tree_dag(depth, branching);
|
||||
let file_path = setup_test_file(&data);
|
||||
|
|
@ -160,7 +160,7 @@ fn tsort_tree_dag(bencher: Bencher, (depth, branching): (usize, usize)) {
|
|||
}
|
||||
|
||||
/// Benchmark complex DAG with cross-dependencies
|
||||
#[divan::bench(args = [1_000, 5_000, 10_000, 50_000])]
|
||||
#[divan::bench(args = [50_000])]
|
||||
fn tsort_complex_dag(bencher: Bencher, num_nodes: usize) {
|
||||
let data = generate_complex_dag(num_nodes);
|
||||
let file_path = setup_test_file(&data);
|
||||
|
|
@ -173,7 +173,7 @@ fn tsort_complex_dag(bencher: Bencher, num_nodes: usize) {
|
|||
|
||||
/// Benchmark wide DAG with many parallel chains
|
||||
/// This should stress the hashmap optimizations from PR #8694
|
||||
#[divan::bench(args = [10_000, 50_000, 100_000])]
|
||||
#[divan::bench(args = [100_000])]
|
||||
fn tsort_wide_dag(bencher: Bencher, num_nodes: usize) {
|
||||
let data = generate_wide_dag(num_nodes);
|
||||
let file_path = setup_test_file(&data);
|
||||
|
|
@ -185,7 +185,7 @@ fn tsort_wide_dag(bencher: Bencher, num_nodes: usize) {
|
|||
}
|
||||
|
||||
/// Benchmark input parsing vs computation by using files with different edge densities
|
||||
#[divan::bench(args = [10_000, 50_000])]
|
||||
#[divan::bench(args = [50_000])]
|
||||
fn tsort_input_parsing_heavy(bencher: Bencher, num_edges: usize) {
|
||||
let data = generate_input_parsing_heavy(num_edges);
|
||||
let file_path = setup_test_file(&data);
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ use uu_wc::uumain;
|
|||
use uucore::benchmark::{create_test_file, run_util_function, text_data};
|
||||
|
||||
/// Benchmark different file sizes for byte counting
|
||||
#[divan::bench(args = [10, 50, 100])]
|
||||
#[divan::bench(args = [100])]
|
||||
fn wc_bytes_synthetic(bencher: Bencher, size_mb: usize) {
|
||||
let temp_dir = tempfile::tempdir().unwrap();
|
||||
let data = text_data::generate_by_size(size_mb, 80);
|
||||
|
|
@ -20,7 +20,7 @@ fn wc_bytes_synthetic(bencher: Bencher, size_mb: usize) {
|
|||
});
|
||||
}
|
||||
|
||||
#[divan::bench(args = [10, 100, 1_000])]
|
||||
#[divan::bench(args = [1_000])]
|
||||
fn wc_words_synthetic(bencher: Bencher, size_mb: usize) {
|
||||
let temp_dir = tempfile::tempdir().unwrap();
|
||||
let data = text_data::generate_by_size(size_mb, 80);
|
||||
|
|
@ -33,7 +33,7 @@ fn wc_words_synthetic(bencher: Bencher, size_mb: usize) {
|
|||
}
|
||||
|
||||
/// Benchmark combined byte+line counting
|
||||
#[divan::bench(args = [10, 100, 1_000])]
|
||||
#[divan::bench(args = [1_000])]
|
||||
fn wc_bytes_lines_synthetic(bencher: Bencher, size_mb: usize) {
|
||||
let temp_dir = tempfile::tempdir().unwrap();
|
||||
let data = text_data::generate_by_size(size_mb, 80);
|
||||
|
|
@ -46,7 +46,7 @@ fn wc_bytes_lines_synthetic(bencher: Bencher, size_mb: usize) {
|
|||
}
|
||||
|
||||
/// Test different line lengths impact on performance
|
||||
#[divan::bench(args = [(5, 50), (5, 100), (5, 200), (5, 500)])]
|
||||
#[divan::bench(args = [(5, 500)])]
|
||||
fn wc_lines_variable_length(bencher: Bencher, (size_mb, avg_line_len): (usize, usize)) {
|
||||
let temp_dir = tempfile::tempdir().unwrap();
|
||||
let data = text_data::generate_by_size(size_mb, avg_line_len);
|
||||
|
|
@ -59,7 +59,7 @@ fn wc_lines_variable_length(bencher: Bencher, (size_mb, avg_line_len): (usize, u
|
|||
}
|
||||
|
||||
/// Benchmark large files by line count - up to 500K lines!
|
||||
#[divan::bench(args = [10_000, 50_000, 100_000, 500_000])]
|
||||
#[divan::bench(args = [500_000])]
|
||||
fn wc_lines_large_line_count(bencher: Bencher, num_lines: usize) {
|
||||
let temp_dir = tempfile::tempdir().unwrap();
|
||||
let data = text_data::generate_by_lines(num_lines, 80);
|
||||
|
|
@ -72,7 +72,7 @@ fn wc_lines_large_line_count(bencher: Bencher, num_lines: usize) {
|
|||
}
|
||||
|
||||
/// Benchmark character counting on large line counts
|
||||
#[divan::bench(args = [10_000, 50_000, 100_000])]
|
||||
#[divan::bench(args = [100_000])]
|
||||
fn wc_chars_large_line_count(bencher: Bencher, num_lines: usize) {
|
||||
let temp_dir = tempfile::tempdir().unwrap();
|
||||
let data = text_data::generate_by_lines(num_lines, 80);
|
||||
|
|
@ -85,7 +85,7 @@ fn wc_chars_large_line_count(bencher: Bencher, num_lines: usize) {
|
|||
}
|
||||
|
||||
/// Benchmark word counting on large line counts
|
||||
#[divan::bench(args = [10_000, 50_000, 100_000])]
|
||||
#[divan::bench(args = [100_000])]
|
||||
fn wc_words_large_line_count(bencher: Bencher, num_lines: usize) {
|
||||
let temp_dir = tempfile::tempdir().unwrap();
|
||||
let data = text_data::generate_by_lines(num_lines, 80);
|
||||
|
|
@ -98,7 +98,7 @@ fn wc_words_large_line_count(bencher: Bencher, num_lines: usize) {
|
|||
}
|
||||
|
||||
/// Benchmark default wc (lines, words, bytes) on large line counts
|
||||
#[divan::bench(args = [10_000, 50_000, 100_000])]
|
||||
#[divan::bench(args = [100_000])]
|
||||
fn wc_default_large_line_count(bencher: Bencher, num_lines: usize) {
|
||||
let temp_dir = tempfile::tempdir().unwrap();
|
||||
let data = text_data::generate_by_lines(num_lines, 80);
|
||||
|
|
@ -111,7 +111,7 @@ fn wc_default_large_line_count(bencher: Bencher, num_lines: usize) {
|
|||
}
|
||||
|
||||
/// Benchmark very short vs very long lines with 100K lines
|
||||
#[divan::bench(args = [(100_000, 10), (100_000, 200)])]
|
||||
#[divan::bench(args = [(100_000, 200)])]
|
||||
fn wc_lines_extreme_line_lengths(bencher: Bencher, (num_lines, line_len): (usize, usize)) {
|
||||
let temp_dir = tempfile::tempdir().unwrap();
|
||||
let data = text_data::generate_by_lines(num_lines, line_len);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue