Jekejeke
Prolog 0.8.4: Performance Update
Datum: 26. July 2010
Introduction
Over the last months we have realized a performance update of the
Jekejeke Prolog interpreter. This update is now available as release
0.8.4. The release can be downloaded as part of the beta-testing
program. In the following we will highlight the optimizations that have
introduced into the new release. We will also give a brief account of
the internal and external impact.
Optimizations
One optimization was already implemented for a long time in Jekejeke
Prolog. Namely the interpreter was already able to eliminate choice
points when we started the business plan. The current performance
update is based on the insight that choice point elimination can form
the basis for further optimizations. Namely the new body variable and
stack frame elimination dynamically use the choice point elimination to
detect determinacy. On the other hand the head variable elimination is
not dependent on determinacy.
Internal Comparison
We first measured the impact of the optimizations internally. For this
purpose we took a set of test programs and switched on and off the
optimizations. We put the optimizations into a logical order so that we
could simplify our comparison into the measurement of an improvement
chain. Our findings were that the body variable elimination
optimization has currently the greatest impact, whereas the head
variable elimination optimization has current the smallest impact.
Picture
1:
Internal
Comparison Results
External Comparison
We complemented our product study by an external comparison. We
compared the optimized version to a number of available Prolog systems.
We did only a comparison with interpreter mode of the Prolog systems,
since we cannot compete with the compiler mode of these systems. Our
finding was that the fastest interpreter system is still roughly 3
times faster than our interpreter. Especially the deterministic test
programs in our suite do perform better for the tested Prolog systems.
Nevertheless the results are promising, since we were even able to
outperform one system.
Picture
2:
External
Comparison Results
The full report of the product study can be downloaded from our web
site www.jekejeke.ch. The release
0.8.4 of the runtime library and the
development environment is also available via this web site. Both
product variants are 100% Java and will thus run unchanged on a variety
of platforms. The download is only some clicks away after registering
with the web site. Since the beta-test campaign is still in place, the
development environment is provided with an evaluation license only.
Jan
Burse
Managing Director