Skip to content

Conversation

@mmastrac
Copy link
Owner

Enable the PCRE2 crate which seems to be significantly faster than onig (3x-8x faster):

With pcre2:

     Running benches/apache.rs (target/release/deps/apache-f30e9c1766c85071)

running 8 tests
test bench_apache_log_match                  ... bench:         450.01 ns/iter (+/- 32.01)
test bench_apache_log_match_anchor           ... bench:         453.31 ns/iter (+/- 29.71)
test bench_apache_log_no_match_end           ... bench:       3,472.72 ns/iter (+/- 457.27)
test bench_apache_log_no_match_end_anchor    ... bench:         665.03 ns/iter (+/- 81.74)
test bench_apache_log_no_match_middle        ... bench:         461.27 ns/iter (+/- 20.25)
test bench_apache_log_no_match_middle_anchor ... bench:         449.36 ns/iter (+/- 22.09)
test bench_apache_log_no_match_start         ... bench:       1,884.20 ns/iter (+/- 121.71)
test bench_apache_log_no_match_start_anchor  ... bench:         249.02 ns/iter (+/- 8.20)

test result: ok. 0 passed; 0 failed; 0 ignored; 8 measured; 0 filtered out; finished in 13.38s

     Running benches/log.rs (target/release/deps/log-1fc987d2bf71525c)

running 4 tests
test bench_log_match                 ... bench:         168.32 ns/iter (+/- 8.42)
test bench_log_match_with_anchors    ... bench:         166.24 ns/iter (+/- 9.23)
test bench_log_no_match              ... bench:         261.31 ns/iter (+/- 20.63)
test bench_log_no_match_with_anchors ... bench:         138.88 ns/iter (+/- 14.65)

test result: ok. 0 passed; 0 failed; 0 ignored; 4 measured; 0 filtered out; finished in 12.31s

     Running benches/simple.rs (target/release/deps/simple-ef7a70d8b21688bc)

running 4 tests
test bench_simple_pattern_match                ... bench:          78.32 ns/iter (+/- 11.66)
test bench_simple_pattern_match_with_anchor    ... bench:          81.64 ns/iter (+/- 3.53)
test bench_simple_pattern_no_match             ... bench:          78.53 ns/iter (+/- 10.32)
test bench_simple_pattern_no_match_with_anchor ... bench:          73.62 ns/iter (+/- 11.34)

test result: ok. 0 passed; 0 failed; 0 ignored; 4 measured; 0 filtered out; finished in 4.36s

With onig:

     Running benches/apache.rs (target/release/deps/apache-b74c62eeadec2425)

running 8 tests
test bench_apache_log_match                  ... bench:       1,159.12 ns/iter (+/- 72.14)
test bench_apache_log_match_anchor           ... bench:       1,144.51 ns/iter (+/- 34.72)
test bench_apache_log_no_match_end           ... bench:      22,726.43 ns/iter (+/- 1,024.36)
test bench_apache_log_no_match_end_anchor    ... bench:       4,372.33 ns/iter (+/- 171.75)
test bench_apache_log_no_match_middle        ... bench:       1,151.09 ns/iter (+/- 38.32)
test bench_apache_log_no_match_middle_anchor ... bench:       1,150.05 ns/iter (+/- 47.56)
test bench_apache_log_no_match_start         ... bench:      13,002.12 ns/iter (+/- 491.51)
test bench_apache_log_no_match_start_anchor  ... bench:       1,995.72 ns/iter (+/- 42.47)

test result: ok. 0 passed; 0 failed; 0 ignored; 8 measured; 0 filtered out; finished in 4.69s

     Running benches/log.rs (target/release/deps/log-c28f491c1fb11aff)

running 4 tests
test bench_log_match                 ... bench:         491.83 ns/iter (+/- 68.70)
test bench_log_match_with_anchors    ... bench:         463.17 ns/iter (+/- 44.47)
test bench_log_no_match              ... bench:         760.29 ns/iter (+/- 35.32)
test bench_log_no_match_with_anchors ... bench:         502.67 ns/iter (+/- 44.28)

test result: ok. 0 passed; 0 failed; 0 ignored; 4 measured; 0 filtered out; finished in 3.19s

     Running benches/simple.rs (target/release/deps/simple-70842287ce6bfb68)

running 4 tests
test bench_simple_pattern_match                ... bench:         187.28 ns/iter (+/- 37.28)
test bench_simple_pattern_match_with_anchor    ... bench:         204.94 ns/iter (+/- 51.67)
test bench_simple_pattern_no_match             ... bench:         106.57 ns/iter (+/- 6.22)
test bench_simple_pattern_no_match_with_anchor ... bench:         101.38 ns/iter (+/- 8.25)

@mmastrac mmastrac merged commit 6a1bf47 into main May 29, 2025
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants