[Issue 18114] dmd 2.078-beta1: regex performance regression

d-bugmail at puremagic.com d-bugmail at puremagic.com
Sat Dec 23 20:51:10 UTC 2017


https://issues.dlang.org/show_bug.cgi?id=18114

--- Comment #4 from Jon Degenhardt <jrdemail2000-dlang at yahoo.com> ---
The two programs attached can be used to compare regex match performance.
Compile find_regex.d with both DMD 2.077.1 and DMD 2.078.0-beta1. eg.

$ dmd2.078.0-beta1 -release -O -inline -boundscheck=off find_regex.d
-of=find_regex.dmd2.078.0-beta1

$dmd2.077.1 -release -O -inline -boundscheck=off find_regex.d
-of=find_regex.dmd2.077.1

Build gen_strings also. Then run like:

$ ./gen_strings 10000000 | ./find_regex.dmd2.077.1 'abc'
106438 matches; 3780.769 milliseconds

$ ./gen_strings 10000000 | ./find_regex.dmd2.078.0-beta1 'abc'
106438 matches; 6315.638 milliseconds

Times on my MacBook Pro for a couple of regexes (replace 'abc' in the commands
above):
| Regex                 |   2.077.1   | 2.078.0-beta1 |
| 'abc'                 | 3780.769 ms |   6315.638 ms |
| '(aa)+(cc)+g'         | 5306.169 ms |   7753.435 ms |
| '(aa|ax).+[gxb][cyw]' | 9888.508 ms |  12324.285 ms |

--


More information about the Digitalmars-d-bugs mailing list