summaryrefslogtreecommitdiff
path: root/bench
diff options
context:
space:
mode:
authorLaurenz <laurmaedje@gmail.com>2020-11-27 22:35:42 +0100
committerLaurenz <laurmaedje@gmail.com>2020-11-27 22:35:42 +0100
commit475ca7a62ec99f0b4d8319410b7ee3134a5fcfec (patch)
tree75037761e1da5681b2971e79e605f95903ba6032 /bench
parentbc997b7c3380d5f516f0aa58efc3dd513d75fafb (diff)
Basic environment and resource loader 🏞
Diffstat (limited to 'bench')
-rw-r--r--bench/src/bench.rs23
1 files changed, 13 insertions, 10 deletions
diff --git a/bench/src/bench.rs b/bench/src/bench.rs
index bc13ed01..c232d4bf 100644
--- a/bench/src/bench.rs
+++ b/bench/src/bench.rs
@@ -4,6 +4,7 @@ use std::rc::Rc;
use criterion::{criterion_group, criterion_main, Criterion};
use fontdock::fs::{FsIndex, FsSource};
+use typst::env::{Env, ResourceLoader};
use typst::eval::{eval, State};
use typst::export::pdf;
use typst::font::FontLoader;
@@ -25,23 +26,25 @@ fn benchmarks(c: &mut Criterion) {
index.search_dir(FONT_DIR);
let (files, descriptors) = index.into_vecs();
- let loader = Rc::new(RefCell::new(FontLoader::new(
- Box::new(FsSource::new(files)),
- descriptors,
- )));
+ let env = Rc::new(RefCell::new(Env {
+ fonts: FontLoader::new(Box::new(FsSource::new(files)), descriptors),
+ resources: ResourceLoader::new(),
+ }));
// Prepare intermediate results and run warm.
let state = State::default();
let tree = parse(COMA).output;
- let document = eval(&tree, state.clone()).output;
- let layouts = layout(&document, Rc::clone(&loader));
+ let document = eval(&tree, Rc::clone(&env), state.clone()).output;
+ let layouts = layout(&document, Rc::clone(&env));
// Bench!
bench!("parse-coma": parse(COMA));
- bench!("eval-coma": eval(&tree, state.clone()));
- bench!("layout-coma": layout(&document, Rc::clone(&loader)));
- bench!("typeset-coma": typeset(COMA, state.clone(), Rc::clone(&loader)));
- bench!("export-pdf-coma": pdf::export(&layouts, &loader.borrow()));
+ bench!("eval-coma": eval(&tree, Rc::clone(&env), state.clone()));
+ bench!("layout-coma": layout(&document, Rc::clone(&env)));
+ bench!("typeset-coma": typeset(COMA, Rc::clone(&env), state.clone()));
+
+ let env = env.borrow();
+ bench!("export-pdf-coma": pdf::export(&layouts, &env));
}
criterion_group!(benches, benchmarks);