Performance differences?

I’m tracking down the source of a major performance degradation in my program, one part of which is SWI-Prolog. Lots of things have changed recently so it’s hard to pin.

Is there any reason to suspect changing from 8.1.3 to 8.1.13? Not saying there is, just checking all angles.

Without any hint where the performance degradation is this is hard to tell. Overall, over time, performance on specific programs may drop a few percent (say < 10), while others may get much faster. Anything else is a bug. I do not recall changes that should explain more than tiny slowdowns. It depends a little on the versions though. Changes to stack growing/GC scheduling have caused problems and the same is true for scheduling clause GC. Both are fixed (well, on the programs they showed up). I’d give 8.1.13 a try. I think practically the only incompatibility is a more uniform and stricter implementation of the command line arguments.

Otherwise, comparing a profile/1 run is the easiest way to get a clue.

Tested, there seems to be virtually the same profile. Thanks.

?? Between what and what? You say you experience a slow-down. That implies the profile output should differ, no? One should hope this points at some predicate or garbage collection being the culprit.

Read the start. The overall program, of which SWI is one fraction, is slower. Tests show SWI performance is not changed.

Alan Baljeu

Ok. So, SWI-Prolog wise this is false alarm. Success finding the cause!