Most of the time there are going to be several additional forks from
within the predicate, so the speedup may not be that large even on Cygwin.
On the other hand, many of my predicate scripts are extremely
fork-happy, for example spawning multiple grep processes. Using Perl's
native regexes would be better.
I'm currently doing some work on Csmith's drivers. Perhaps I should get
this all working on Windows...
John
On 6/21/12 9:33 AM, Eric Eide wrote:
Kirk> It's dangerous to admit to being a Windows/Cygwin expert, and I
Kirk> don't know that I qualify, but here is a possibility: IIRC,
Kirk> C-Reduce forks a bunch to do its work. fork() isn't directly
Kirk> supported by Windows, so Cygwin has to fake it and it is an
Kirk> expensive operation. My guess is that this is where the
Kirk> performance hit is coming from.
FWIW, this lends support to Konstantin Tokarev's idea that C-Reduce should
support Perl-based predicates in addition to shell-based (fork-fork-fork) ones.
If C-Reduce on Windows is going to be slow because of Cygwin's fork, and we
care about this, we should perhaps avoid either fork or Cygwin altogether.
Eric.