| use criterion::{Bencher, Criterion, criterion_group, criterion_main}; |
| use syntect::parsing::{SyntaxSet, SyntaxSetBuilder}; |
| 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_add_from_folder(b: &mut Bencher) { |
| b.iter(|| { |
| let mut builder = SyntaxSetBuilder::new(); |
| builder.add_from_folder("testdata/Packages", false).unwrap() |
| }); |
| } |
| |
| fn bench_link_syntaxes(b: &mut Bencher) { |
| let mut builder = SyntaxSetBuilder::new(); |
| builder.add_from_folder("testdata/Packages", false).unwrap(); |
| b.iter(|| { |
| builder.clone().build(); |
| }); |
| } |
| |
| fn bench_from_dump_file(b: &mut Bencher) { |
| b.iter(|| { |
| let _: SyntaxSet = syntect::dumps::from_uncompressed_dump_file("assets/default_newlines.packdump").unwrap(); |
| }) |
| } |
| |
| 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("add_from_folder", bench_add_from_folder); |
| c.bench_function("link_syntaxes", bench_link_syntaxes); |
| c.bench_function("from_dump_file", bench_from_dump_file); |
| } |
| |
| criterion_group! { |
| name = benches; |
| config = Criterion::default().sample_size(50); |
| targets = loading_benchmark |
| } |
| criterion_main!(benches); |