From 698f8c2f01ea549d77d7dc3338a12e04c11057b9 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Wed, 17 Apr 2024 14:02:58 +0200 Subject: Adding upstream version 1.64.0+dfsg1. Signed-off-by: Daniel Baumann --- vendor/pulldown-cmark/benches/lib.rs | 51 ++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 vendor/pulldown-cmark/benches/lib.rs (limited to 'vendor/pulldown-cmark/benches/lib.rs') diff --git a/vendor/pulldown-cmark/benches/lib.rs b/vendor/pulldown-cmark/benches/lib.rs new file mode 100644 index 000000000..f084fe283 --- /dev/null +++ b/vendor/pulldown-cmark/benches/lib.rs @@ -0,0 +1,51 @@ +use criterion::{criterion_group, criterion_main}; + +mod to_html { + use criterion::{BenchmarkId, Criterion, Throughput}; + use pulldown_cmark::{html, Options, Parser}; + + pub fn pathological_codeblocks1(c: &mut Criterion) { + let mut group = c.benchmark_group("pathological_codeblocks1"); + let mut buf = String::new(); + for i in 1..10 { + buf.push_str(&"`".repeat(i * 100)); + buf.push(' '); + group.throughput(Throughput::Bytes(buf.len() as u64)); + group.bench_with_input(BenchmarkId::from_parameter(i), &buf, |b, buf| { + b.iter(|| render_html(&buf, Options::empty())); + }); + } + group.finish(); + } + + pub fn advanced_pathological_codeblocks(c: &mut Criterion) { + let mut group = c.benchmark_group("advanced_pathological_codeblocks"); + let mut buf = String::new(); + let mut i = 1; + while buf.len() < 1250 { + buf.push_str(&"`".repeat(i)); + buf.push(' '); + i += 1; + buf.push_str(&"*a* ".repeat(buf.len())); + group.throughput(Throughput::Bytes(buf.len() as u64)); + group.bench_with_input(BenchmarkId::from_parameter(i), &buf, |b, buf| { + b.iter(|| render_html(&buf, Options::empty())); + }); + } + group.finish(); + } + + fn render_html(text: &str, opts: Options) -> String { + let mut s = String::with_capacity(text.len() * 3 / 2); + let p = Parser::new_ext(text, opts); + html::push_html(&mut s, p); + s + } +} + +criterion_group!( + benches, + to_html::pathological_codeblocks1, + to_html::advanced_pathological_codeblocks +); +criterion_main!(benches); -- cgit v1.2.3