Skip to content

1.3.1

Choose a tag to compare

@le0pard le0pard released this 02 Apr 22:04
· 364 commits to main since this release
277d5d6

What's Changed

  • Finished DFA implementation
  • Added high-performance boolean testing test() and testExact() methods
--- Benchmarking "Simple Literal": /damage/ ---
Legacy (.matcher.find) : 27.84 ms | 1,077,514 ops/sec
Fast-Path (.test)      : 15.54 ms | 1,930,297 ops/sec
Result                 : 1.79x faster

--- Benchmarking "Wildcard": /enters.*battlefield/ ---
Legacy (.matcher.find) : 48.54 ms | 618,117 ops/sec
Fast-Path (.test)      : 17.01 ms | 1,763,611 ops/sec
Result                 : 2.85x faster

--- Benchmarking "Alternation": /damage|life|mana/ ---
Legacy (.matcher.find) : 315.79 ms | 95,003 ops/sec
Fast-Path (.test)      : 11.51 ms | 2,605,780 ops/sec
Result                 : 27.43x faster

--- Benchmarking "Character Class + Repetition": /[0-9]+ mana/ ---
Legacy (.matcher.find) : 173.44 ms | 172,972 ops/sec
Fast-Path (.test)      : 11.73 ms | 2,557,012 ops/sec
Result                 : 14.78x faster

--- Benchmarking "Complex Char Classes": /[A-Z][a-z]+, [a-z]+/ ---
Legacy (.matcher.find) : 207.45 ms | 144,618 ops/sec
Fast-Path (.test)      : 11.19 ms | 2,680,625 ops/sec
Result                 : 18.54x faster

--- Benchmarking "Case Insensitive": /(?i)swamp/ ---
Legacy (.matcher.find) : 266.78 ms | 112,455 ops/sec
Fast-Path (.test)      : 14.79 ms | 2,028,162 ops/sec
Result                 : 18.04x faster

--- Benchmarking "ReDoS Attempt (Catastrophic Backtracking)": /(a+)+!/ ---
Legacy (.matcher.find) : 76.15 ms | 393,958 ops/sec
Fast-Path (.test)      : 16.52 ms | 1,815,977 ops/sec
Result                 : 4.61x faster

Full Changelog: 1.3.0...1.3.1