blob: 80394b399966de83d8c81b2b452ffddc5f019645 [file] [log] [blame]
#[macro_use]
extern crate criterion;
extern crate syntect;
use criterion::{Bencher, Criterion};
use syntect::parsing::SyntaxSet;
use syntect::highlighting::ThemeSet;
fn bench_load_internal_dump(b: &mut Bencher) {
b.iter(|| {
SyntaxSet::load_defaults_newlines()
});
}
fn bench_load_internal_themes(b: &mut Bencher) {
b.iter(|| {
ThemeSet::load_defaults()
});
}
fn bench_load_theme(b: &mut Bencher) {
b.iter(|| {
ThemeSet::get_theme("testdata/spacegray/base16-ocean.dark.tmTheme")
});
}
fn bench_load_syntaxes(b: &mut Bencher) {
b.iter(|| {
let mut ps = SyntaxSet::new();
ps.load_syntaxes("testdata/Packages", false).unwrap()
});
}
fn bench_link_syntaxes(b: &mut Bencher) {
let mut ps = SyntaxSet::new();
ps.load_syntaxes("testdata/Packages", false).unwrap();
b.iter(|| {
ps.link_syntaxes();
});
}
fn loading_benchmark(c: &mut Criterion) {
c.bench_function("load_internal_dump", bench_load_internal_dump);
c.bench_function("load_internal_themes", bench_load_internal_themes);
c.bench_function("load_theme", bench_load_theme);
c.bench_function("load_syntaxes", bench_load_syntaxes);
c.bench_function("link_syntaxes", bench_link_syntaxes);
}
criterion_group! {
name = benches;
config = Criterion::default().sample_size(50);
targets = loading_benchmark
}
criterion_main!(benches);