• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 use regex_syntax::Parser;
2 use test::Bencher;
3 
4 use regex::internal::Compiler;
5 
6 #[bench]
compile_simple(b: &mut Bencher)7 fn compile_simple(b: &mut Bencher) {
8     b.iter(|| {
9         let re = Parser::new().parse(r"^bc(d|e)*$").unwrap();
10         Compiler::new().compile(&[re]).unwrap()
11     });
12 }
13 
14 #[bench]
compile_simple_bytes(b: &mut Bencher)15 fn compile_simple_bytes(b: &mut Bencher) {
16     b.iter(|| {
17         let re = Parser::new().parse(r"^bc(d|e)*$").unwrap();
18         Compiler::new().bytes(true).compile(&[re]).unwrap()
19     });
20 }
21 
22 #[bench]
compile_simple_full(b: &mut Bencher)23 fn compile_simple_full(b: &mut Bencher) {
24     b.iter(|| regex!(r"^bc(d|e)*$"));
25 }
26 
27 #[bench]
compile_small(b: &mut Bencher)28 fn compile_small(b: &mut Bencher) {
29     b.iter(|| {
30         let re = Parser::new().parse(r"\p{L}|\p{N}|\s|.|\d").unwrap();
31         Compiler::new().compile(&[re]).unwrap()
32     });
33 }
34 
35 #[bench]
compile_small_bytes(b: &mut Bencher)36 fn compile_small_bytes(b: &mut Bencher) {
37     b.iter(|| {
38         let re = Parser::new().parse(r"\p{L}|\p{N}|\s|.|\d").unwrap();
39         Compiler::new().bytes(true).compile(&[re]).unwrap()
40     });
41 }
42 
43 #[bench]
compile_small_full(b: &mut Bencher)44 fn compile_small_full(b: &mut Bencher) {
45     b.iter(|| regex!(r"\p{L}|\p{N}|\s|.|\d"));
46 }
47 
48 #[bench]
compile_huge(b: &mut Bencher)49 fn compile_huge(b: &mut Bencher) {
50     b.iter(|| {
51         let re = Parser::new().parse(r"\p{L}{50}").unwrap();
52         Compiler::new().size_limit(1 << 30).compile(&[re]).unwrap()
53     });
54 }
55 
56 #[bench]
compile_huge_bytes(b: &mut Bencher)57 fn compile_huge_bytes(b: &mut Bencher) {
58     b.iter(|| {
59         let re = Parser::new().parse(r"\p{L}{50}").unwrap();
60         Compiler::new().size_limit(1 << 30).bytes(true).compile(&[re]).unwrap()
61     });
62 }
63 
64 #[bench]
compile_huge_full(b: &mut Bencher)65 fn compile_huge_full(b: &mut Bencher) {
66     b.iter(|| regex!(r"\p{L}{50}"));
67 }
68