zola/components/site/benches/site.rs

70 lines
2 KiB
Rust
Raw Normal View History

2017-07-04 23:27:27 +00:00
#![feature(test)]
extern crate test;
extern crate site;
2018-09-03 17:05:24 +00:00
extern crate pagination;
2018-04-25 08:28:23 +00:00
extern crate tempfile;
2017-07-04 23:27:27 +00:00
use std::env;
2018-04-25 08:28:23 +00:00
use tempfile::tempdir;
2017-07-04 23:27:27 +00:00
use site::Site;
2018-09-03 17:05:24 +00:00
use pagination::Paginator;
2017-07-04 23:27:27 +00:00
fn setup_site(name: &str) -> Site {
let mut path = env::current_dir().unwrap().to_path_buf();
path.push("benches");
path.push(name);
let mut site = Site::new(&path, "config.toml").unwrap();
site.load().unwrap();
site
}
#[bench]
fn bench_render_aliases(b: &mut test::Bencher) {
2018-09-03 17:05:24 +00:00
let mut site = setup_site("small-blog");
let tmp_dir = tempdir().expect("create temp dir");
2017-07-04 23:27:27 +00:00
let public = &tmp_dir.path().join("public");
site.set_output_path(&public);
b.iter(|| site.render_aliases().unwrap());
}
#[bench]
fn bench_render_sitemap(b: &mut test::Bencher) {
2018-09-03 17:05:24 +00:00
let mut site = setup_site("small-blog");
let tmp_dir = tempdir().expect("create temp dir");
2017-07-04 23:27:27 +00:00
let public = &tmp_dir.path().join("public");
site.set_output_path(&public);
b.iter(|| site.render_sitemap().unwrap());
}
#[bench]
fn bench_render_rss_feed(b: &mut test::Bencher) {
2018-09-03 17:05:24 +00:00
let mut site = setup_site("small-blog");
let tmp_dir = tempdir().expect("create temp dir");
let public = &tmp_dir.path().join("public");
site.set_output_path(&public);
2018-09-03 17:05:24 +00:00
b.iter(|| site.render_rss_feed(None, None).unwrap());
}
2017-07-05 10:34:41 +00:00
#[bench]
2018-09-03 17:05:24 +00:00
fn bench_render_taxonomies(b: &mut test::Bencher) {
let mut site = setup_site("small-blog");
let tmp_dir = tempdir().expect("create temp dir");
2017-07-05 10:34:41 +00:00
let public = &tmp_dir.path().join("public");
site.set_output_path(&public);
2018-09-03 17:05:24 +00:00
b.iter(|| site.render_taxonomies().unwrap());
2017-07-05 10:34:41 +00:00
}
#[bench]
fn bench_render_paginated(b: &mut test::Bencher) {
2018-09-03 17:05:24 +00:00
let mut site = setup_site("small-blog");
let tmp_dir = tempdir().expect("create temp dir");
let public = &tmp_dir.path().join("public");
site.set_output_path(&public);
let section = site.sections.values().collect::<Vec<_>>()[0];
2018-09-03 17:05:24 +00:00
let paginator = Paginator::from_section(&section.pages, section);
2018-09-03 17:05:24 +00:00
b.iter(|| site.render_paginated(public, &paginator));
}