I upgraded my SWI-Prolog version 8.1.19 to version 8.1.26.
I witness increases in execution times for certain executions of the program, while the rest is pretty much stable.
The most notable execution-time differences are:
From 012s to 042s
From 012s to 020s
From 154s to 205s
From 069s to 086s
From 005s to 016s
From 042s to 145s
The following is a graph that shows them all (SVG: open in new tab and zoom in).
Other than the usual Prolog predicates, I use tabling. What could have possibly given rise to these differences?
Hard to say. That is a lot of releases. I don’t really know what happened since 8.1.19. Surely there is some slow down in some tabling related code as the first aim was to get all the semantics right. I don’t think anything major has happened.
To make progress, either share (part of) the code or run both versions using the profiler and see whether you can spot the difference.
Because of time constraints, I have downgraded my SWI-Prolog (from 8.1.26) to the former version (8.1.19) I have been using as it amply satisfies my needs. Therefore, my problem is on hold temporarily.
I reported this issue so that perhaps somebody on top of their head might be like “Oh yeah! there was still that unresolved performance issue” or something like this.
If I ever encounter this problem again in a future upgrade, I will do the profiling comparison and submit the findings.