mirror of
https://git.proxmox.com/git/rustc
synced 2025-08-24 15:02:19 +00:00
60 lines
1.7 KiB
Rust
60 lines
1.7 KiB
Rust
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);
|