[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