> On 3/20/07, gga <GGarram...@aol.com> wrote:
> > On Mar 19, 4:07 pm, "Tim Pease" <tim.pe...@gmail.com> wrote:
> > > ruby -wle 'puts "Prime" unless ("1" * ARGV[0].to_i) =~
> /^1$|^(11+?)\1+$/' 42
> > This is pretty cool. Particularly as a simple benchmark for regex
> > backtracking.
> > It highlites some of the performance issues of backtracking in ruby1.8
> > and 1.9.
> > And it also highlites issues with Perl's backtracking.
> > Speed issues:
> > > time ruby1.9 -wle 'puts "Prime" unless ("1" * ARGV[0].to_i) =~
> /^1$|^(11+?)\1+$/' 22441
> > Prime
> > real 0m2.111s
> > user 0m2.084s
> > sys 0m0.024s
> > > time perl -wle 'print "Prime" if (1 x shift) !~ /^1$|^(11+?)\1+$/'
> 22441
> > Prime
> > real 0m0.230s
> > user 0m0.208s
> > sys 0m0.020s
> > But... on larger numbers...
> > > ruby1.9 -wle 'puts "Prime" unless ("1" * ARGV[0].to_i) =~
> /^1$|^(11+?)\1+$/' 104729
> > Prime
> > > perl -wle 'print "Prime" if (1 x shift) !~ /^1$|^(11+?)\1+$/' 104729
> > Segmentation fault
> > > perl -v
> > This is perl, v5.8.8 built for x86_64-linux-gnu-thread-multi
> Now that is very interesting. Do you know if Ruby 1.9 is running
> Onigurma <sp?>, the new regexp handler?
For those of us on Windows command line: That's cool.