This commit is contained in:
Edgar 2021-07-23 16:13:03 +02:00
parent 92f439c69b
commit 91a1ead43c
No known key found for this signature in database
GPG key ID: 8731E6C0166EAA85
2 changed files with 71 additions and 0 deletions

View file

@ -16,3 +16,10 @@ chrono = "0.4.19"
derive_builder = "0.10.0"
quick-xml = "0.22.0"
url = "2.2.1"
[dev-dependencies]
criterion = { version = "0.3.4", features = ["html_reports"] }
[[bench]]
name = "benchmark"
harness = false

64
benches/benchmark.rs Normal file
View file

@ -0,0 +1,64 @@
use criterion::{black_box, criterion_group, criterion_main, Criterion};
use sitewriter::*;
fn benchmark(c: &mut Criterion) {
use chrono::Utc;
let urls = vec![
// Builder pattern
UrlEntryBuilder::default()
.loc("https://domain.com".parse().unwrap())
.priority(0.2)
.build()
.unwrap(),
// Using new
UrlEntry::new(
"https://domain.com/some_url".parse().unwrap(),
None,
None,
None,
),
// Initializing the struct.
UrlEntry {
loc: "https://domain.com/another".parse().unwrap(),
priority: None,
changefreq: Some(ChangeFreq::Always),
lastmod: None,
},
UrlEntry {
loc: "https://domain.com/url".parse().unwrap(),
changefreq: Some(ChangeFreq::Daily),
priority: Some(0.8),
lastmod: Some(Utc::now()),
},
UrlEntry {
loc: "https://domain.com/aa".parse().unwrap(),
changefreq: Some(ChangeFreq::Monthly),
priority: None,
lastmod: None,
},
UrlEntry {
loc: "https://domain.com/bb".parse().unwrap(),
changefreq: None,
priority: None,
lastmod: None,
},
UrlEntry {
loc: "https://domain.com/bb&id='<test>'".parse().unwrap(),
changefreq: None,
priority: Some(0.4),
lastmod: None,
},
];
c.bench_function("generate_str", |b| {
b.iter(|| Sitemap::generate_str(black_box(&urls)))
});
c.bench_function("generate_bytes", |b| {
b.iter(|| Sitemap::generate_bytes(black_box(&urls)))
});
}
criterion_group!(benches, benchmark);
criterion_main!(benches);