Managed to test also Jinni Prolog. This Prolog system was the most difficult to test. On a Mac, there some problem with memory management, and one gets constantly "autoreleased with no pool in place" error messages. With the result that the GUI stops working. When we tested we found further errors:

1) The rem/1 evaluable function is not yet supported: Had to replace rem/1 by mod/1 in our test cases.
2) The -/1 is not a predefined prefix operator: Had to replace -U etc.. by -(U) etc.. in our test cases.
3) Don't call your predicate move/3: It will be accepted without error during consult, but when you try to invoke it, it will lookup some GUI library move command. Had to replace move/3 by moveit/3.
4) The queens test case hung. Don't know why, but it didn't finish after 1 minute or so. Instead the CPU started frying.
5) The query test case aborted. Got some strange GC error message, namely bad data in val/3=>_3934: <0,_3934>.

I tested with JDK 1.7 and not with JDK 1.6 as in our previous JVM tests. JDK 1.7 should be faster. Since queens and query failed we could not run the full test suite. From the experience with the other JVM Prolog systems we didn't give a try to mtak and calc. The test results were very disappointing:

nrev: 3'003 ms
crypt: 5'344 ms
deriv: 5'411 ms
poly: 2'539 ms
qsort: 3'052 ms
tictac: 1'223 ms
perfect: 8'746 ms

If I compare with Jekejeke Prolog on the corresponding test cases, I see that Jekejeke Prolog would do these test cases in 739 ms. The total time spent by Jinni Prolog on the other hand is 29318 ms. This is a factor of around 40 times slower.

If I have time, should also check whether all tests were running correctly, the tictac 1'223 ms look suspicious. Last but not least was using the consult/1 command, maybe there is some compile option which delivers better results. Not sure.

Previous Post on Testing JVM Prolog Systems

Jekejeke Runtime: Runtime Benchmarks

#prolog #jvm #benchmark  
Shared publiclyView activity