From 1a90f4f52f41288614648a43487fed16ffcef215 Mon Sep 17 00:00:00 2001 From: Loric ANDRE Date: Thu, 19 Feb 2026 14:57:44 +0100 Subject: [PATCH] bench: add filter --- Cargo.toml | 4 +++ benches/filter.rs | 62 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 66 insertions(+) create mode 100644 benches/filter.rs diff --git a/Cargo.toml b/Cargo.toml index 49584272..589cdd20 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -90,3 +90,7 @@ unexpected_cfgs = { level = "warn", check-cfg = ['cfg(feature, values("test-util [[bench]] name = "read_and_match" harness = false + +[[bench]] +name = "filter" +harness = false diff --git a/benches/filter.rs b/benches/filter.rs new file mode 100644 index 00000000..d4433fda --- /dev/null +++ b/benches/filter.rs @@ -0,0 +1,62 @@ +use criterion::{Criterion, criterion_group, criterion_main}; + +use skim::prelude::*; + +fn criterion_benchmark(c: &mut Criterion) { + c.bench_function("default", |b| { + b.iter(|| { + let opts = SkimOptionsBuilder::default() + .cmd("cat bench_data.txt") + .filter("test") + .build()?; + Skim::run_with(opts, None) + }); + }); + c.bench_function("regex", |b| { + b.iter(|| { + let opts = SkimOptionsBuilder::default() + .cmd("cat bench_data.txt") + .filter("test") + .regex(true) + .build()?; + Skim::run_with(opts, None) + }); + }); + c.bench_function("frizbee", |b| { + b.iter(|| { + let opts = SkimOptionsBuilder::default() + .cmd("cat bench_data.txt") + .filter("test") + .algorithm(FuzzyAlgorithm::Frizbee) + .build()?; + Skim::run_with(opts, None) + }); + }); + c.bench_function("clangd", |b| { + b.iter(|| { + let opts = SkimOptionsBuilder::default() + .cmd("cat bench_data.txt") + .filter("test") + .algorithm(FuzzyAlgorithm::Clangd) + .build()?; + Skim::run_with(opts, None) + }); + }); + c.bench_function("ansi", |b| { + b.iter(|| { + let opts = SkimOptionsBuilder::default() + .cmd("cat bench_data.txt") + .filter("test") + .ansi(true) + .build()?; + Skim::run_with(opts, None) + }); + }); +} + +criterion_group!( + name = benches; + config = Criterion::default().sample_size(10); + targets = criterion_benchmark +); +criterion_main!(benches);