diff options
| author | Laurenz <laurmaedje@gmail.com> | 2021-05-29 15:45:57 +0200 |
|---|---|---|
| committer | Laurenz <laurmaedje@gmail.com> | 2021-05-31 22:33:40 +0200 |
| commit | e023bf2ac9f5796355d9485afc16781196bf212b (patch) | |
| tree | 26d4487de0c4e2d0f69182483301de867cb5fa34 /bench | |
| parent | 9f77f09aacd1fb0fd6138a6d16ed2755f6bfae3f (diff) | |
Module loading system
Detects cyclic imports and loads each module only once per compilation.
Diffstat (limited to 'bench')
| -rw-r--r-- | bench/src/bench.rs | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/bench/src/bench.rs b/bench/src/bench.rs index 8563f115..2a901490 100644 --- a/bench/src/bench.rs +++ b/bench/src/bench.rs @@ -24,8 +24,8 @@ fn benchmarks(c: &mut Criterion) { let state = typst::exec::State::default(); for case in CASES { - let case = Path::new(case); - let name = case.file_stem().unwrap().to_string_lossy(); + let path = Path::new(TYP_DIR).join(case); + let name = path.file_stem().unwrap().to_string_lossy(); macro_rules! bench { ($step:literal: $code:expr) => { @@ -39,18 +39,18 @@ fn benchmarks(c: &mut Criterion) { } // Prepare intermediate results, run warm and fill caches. - let src = std::fs::read_to_string(Path::new(TYP_DIR).join(case)).unwrap(); - let parsed = Rc::new(parse(&src).output); - let evaluated = eval(&mut loader, &mut cache, parsed.clone(), &scope).output; - let executed = exec(&evaluated.template, state.clone()).output; - let layouted = layout(&mut loader, &mut cache, &executed); + let src = std::fs::read_to_string(&path).unwrap(); + let tree = Rc::new(parse(&src).output); + let evaluated = eval(&mut loader, &mut cache, &path, tree.clone(), &scope); + let executed = exec(&evaluated.output.template, state.clone()); + let layouted = layout(&mut loader, &mut cache, &executed.output); // Bench! bench!("parse": parse(&src)); - bench!("eval": eval(&mut loader, &mut cache, parsed.clone(), &scope)); - bench!("exec": exec(&evaluated.template, state.clone())); - bench!("layout": layout(&mut loader, &mut cache, &executed)); - bench!("typeset": typeset(&mut loader, &mut cache, &src, &scope, state.clone())); + bench!("eval": eval(&mut loader, &mut cache, &path, tree.clone(), &scope)); + bench!("exec": exec(&evaluated.output.template, state.clone())); + bench!("layout": layout(&mut loader, &mut cache, &executed.output)); + bench!("typeset": typeset(&mut loader, &mut cache, &path, &src, &scope, state.clone())); bench!("pdf": pdf(&cache, &layouted)); } } |
