In this section we will present the figures that were obtained from our test runs. Figures for various versions of the Jekejeke Prolog system will be given. We were running our test harness on the following machine:
We used the following Jekejeke Prolog system version. The test harness was started from the runtime library via the Java Class Harness. We did not use the development environment to run the test harness:
We were then comparing the Jekejeke Prolog system under various optimization settings. In particular we were running our test harness for the following different settings, gradually increasing the number of optimizations:
|2) Discussion Choice Point
|3) Discussion Clause Indexing
|4) Discussion Body Variable
|5) Discussion Stack Frame
|6) Discussion Head Variable
We were running the test suite two times in a row, and were only measuring the second run. The first run would be a cold start with incomplete caching of the predicate references. The second run is a warm start which we wanted to measure.
Measuring warm start means also that we will not see some costs incurred by class loading or by un-optimized Java code. The Java runtime had enough time to load classes and to apply just in time compilation and as well adaptive optimizations.
On the other hand the memory might already be fragmented. To avoid seeing a severe degradation because of constant garbage collection we use a memory allocation that is larger than the default of the Java virtual machine.
The absolute raw results measured in milliseconds are displayed in the table below:
The picture below shows the total results relative to their previous discussion:
We did not subtract the execution time for a dummy test from the results. Our measuring of a dummy test revealed that its execution time is in the range of 2 milliseconds. Therefore all our test results also measure the slight overhead of the test harness itself.