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