New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Win32 /regexp/i performance degradation in fork'd code #9652
Comments
From alex.davies@talktalk.netCreated by alex@AmelieThis is on Win32... I noticed a slowdown in performance of C< /pat/i > case The following testcase shows an interesting difference in behaviour # %< use re qw(Debug All); my $pid = fork; defined $pid or die; if ($pid == 0) { print STDERR "\n## 1 ##\n\n"; print STDERR "\n## 2 ##\n\n"; exit; while (wait() != -1) {} $_ = "abcNEEDLE123\n"; print STDERR "\n## 3 ##\n\n"; # >% And here is the output: # %< Compiling REx "needle" ## 1 ## Matching REx "needle" against "abcNEEDLE123%n" ## 2 ## Compiling REx "needle" ## 3 ## Matching REx "needle" against "abcNEEDLE123%n" # >% So it appears the /regexp/i is 'run' differently within the child Additionally, running the testcase on my Strawberry 5.10 perl Assertion ((svtype)((_svi)->sv_flags & 0xff)) >= SVt_PV failed: file Is this a bug, or simply a necesary change in the code path taken Thanks for taking a look. Cheers, alex. Perl Info
|
From @iabynOn Tue, Feb 17, 2009 at 10:35:44AM -0800, alex.davies@talktalk.net (via RT) wrote:
I can confirm this is reproducible in bleed using Linux and threads: use threads; use re qw(Debug All); print STDERR "\n## 2 ##\n\n"; which outputs: Compiling REx "needle" ## 1 ## Matching REx "needle" against "abcNEEDLE123%n" ## 2 ## Compiling REx "needle" I see the same behaviour under 5.8.8, so this isn't a 5.10.0 regression. -- |
The RT System itself - Status changed from 'new' to 'open' |
This persists in 5.35.10. I suspect it is one case doesn't use boyers-moore |
Migrated from rt.perl.org#63284 (status was 'open')
Searchable as RT63284$
The text was updated successfully, but these errors were encountered: