[ic] Iterations slow with mv_matchlimit incrementations

Grant emailgrant at gmail.com
Mon May 11 23:26:23 UTC 2009


>>> I have a somewhat complex chunk of IC code about 500 lines long.
>>> If I
>>> set the mv_matchlimit of the main loop to a small number, each
>>> iteration takes less than a second to execute.  However, as I
>>> increase
>>> the mv_matchlimit, each iteration takes longer to execute until it's
>>> quite slow.  I've been over my code again and again but I can't
>>> find a
>>> cause for this behavior.  The only clue I have is that each iteration
>>> executes much faster when the loop is almost done with all of its
>>> iterations.
>>>
>>> I'm wondering if the problem is "under the hood" of IC.  Does this
>>> scenario ring a bell for anyone?
>>>
>>> Thanks,
>>> Grant
>>
>> I'm baffled by this.  I have no idea why increasing mv_matchlimit
>> would drastically increase the amount of time required for *each* loop
>> iteration.  Please let me know if you have any ideas.
>
> Is there any way you can post the relevant piece of code?  Without
> knowing what's being iterated over, it's hard to offer suggestions.
> In particular, are there any parts which are perl blocks of any
> particular flavor (calc, calcn, perl, prefix-exec, etc)?  Are there
> perhaps multiple nested loop constructs?
>
> Regards,
>
> David

Hi David,

I do have a little bit of [perl] and definitely multiple nested loop
constructs, but should that cause *each* iteration of the main loop to
take a lot longer as the number of iterations is increased?  I thought
ml=10 would take 10X time and ml=100 would take 100X time but I'm not
seeing that at all, even with the first iteration.  The first
iteration might take .2 seconds if ml=10, and 5 seconds if ml=100.
That's where I'm confused.  It's going over the exact same code!  Can
[perl] and multiple nested loop constructs cause this type of
behavior?

I've been using IC for about 7 years and I've never run into this before.

- Grant



More information about the interchange-users mailing list