[ic] Iterations slow with mv_matchlimit incrementations
Gert van der Spoel
gert at 3edge.com
Tue May 12 05:49:18 UTC 2009
> -----Original Message-----
> From: interchange-users-bounces at icdevgroup.org [mailto:interchange-
> users-bounces at icdevgroup.org] On Behalf Of Grant
> Sent: Tuesday, May 12, 2009 2:26 AM
> To: interchange-users at icdevgroup.org
> Subject: Re: [ic] Iterations slow with mv_matchlimit incrementations
> >>> 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
> >>> 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
> >>> 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*
> >> 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
> I've been using IC for about 7 years and I've never run into this
Have you pinpointed an exact point in your 500 lines of code where the delay
starts to occur? Perhaps by printing some timestamp to debug in your loops
and see if there s a point where time starts to increase drastically... You
might be able to find the line that causes the problem this way.
More information about the interchange-users