I won't have time to look at this until this weekend.
I will respond with at least an  explanation sometime this weekend.
--
Mike


On Thu, Apr 27, 2000 at 10:36:24AM +0200, Akim Demaille wrote:
> 
> |    From: Akim Demaille <[EMAIL PROTECTED]>
> |    Date: 26 Apr 2000 18:41:32 +0200
> | 
> |    If you concentrate the measure on this very script, the performance
> |    penalty is frightening:
> | 
> | It certainly is.  This is a performance bug in mawk.
> | I observed the bug in mawk 1.3.3.
> | 
> | To work around the problem somewhat, please try replacing this:
> | 
> |   while (sub(/__oline__/, oline))
> |     continue
> | 
> | with this:
> | 
> |   if ($0 ~ /__oline__/)
> |     while (sub(/__oline__/, oline))
> |       continue
> 
> !!!
> 
> I don't understand this at all.  The performance loss is precisely
> there, you don't even have to apply the same transformation to the
> other patterns.
> 
> 
> Hm, I see, what's really expensive is the fact that `oline' is
> changing: if you remove `oline++' it flies again.  I suppose it means
> it has to recompile something for each value of `oline', but I don't
> understand why recompiling a regex or something is needed when the lhs
> of a s/// is changed.
> 
> Thanks for the cure, I'll apply it right now.
> 
>         Akim

-- 
Mike Brennan
[EMAIL PROTECTED]

Reply via email to