1 mod parser;
2 mod parser_streaming;
3 
one_test(c: &mut criterion::Criterion)4 fn one_test(c: &mut criterion::Criterion) {
5     let data = &b"GET / HTTP/1.1
6 Host: www.reddit.com
7 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:15.0) Gecko/20100101 Firefox/15.0.1
8 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
9 Accept-Language: en-us,en;q=0.5
10 Accept-Encoding: gzip, deflate
11 Connection: keep-alive
12 
13 "[..];
14 
15     let mut http_group = c.benchmark_group("http");
16     http_group.throughput(criterion::Throughput::Bytes(data.len() as u64));
17     http_group.bench_with_input(
18         criterion::BenchmarkId::new("complete", data.len()),
19         data,
20         |b, data| {
21             b.iter(|| parser::parse(data).unwrap());
22         },
23     );
24     http_group.bench_with_input(
25         criterion::BenchmarkId::new("streaming", data.len()),
26         data,
27         |b, data| {
28             b.iter(|| parser_streaming::parse(data).unwrap());
29         },
30     );
31 
32     http_group.finish();
33 }
34 
35 criterion::criterion_group!(http, one_test);
36 criterion::criterion_main!(http);
37