Jekejeke Prolog 0.8.4: Leistungsverbesserung

Datum: 26. July 2010

Einleitung

Über die letzten Monate haben wir eine Leistungsverbesserung für den Jekejeke Prolog Interpreter realisiert. Diese Verbesserung ist nun verfügbar als Ausgabe 0.8.4. Die Ausgabe kann als Teil des Beta-Testprogramms heruntergeladen werden. Im Folgenden werden wir die Optimierungen hervorheben die in der neuen Ausgabe eingeführt wurden. Wir werden auch einen kurzen Abriss zu den internen und externen Auswirkungen geben.                   

Optimierungen

Eine Optimierung war schon seit langer Zeit in Jekejeke Prolog implementiert. Der Interpreter war schon fähig Entscheidungspunkte zu beseitigen als wir den Geschäftsplan angefangen haben. Die aktuelle Leistungsverbesserung basiert nun auf der Einsicht dass die Beseitigung von Entscheidungspunkten für weitere Optimierungen benutzt werden kann. Namentlich die Regelkörpervariablen- und die Kellerspeicherblockbeseitigung benutzen die Entscheidungspunktbeseitigung um Determiniertheit zu erkennen. Auf der anderen Seite ist die Beseitigung von Regelkopfvariablen nicht von der Determiniertheit abhängig.

Interner Vergleich

Wir haben zuerst den Einfluss der Optimierungen intern gemessen. Zu diesem Zweck haben wir ein Set von Testprogrammen benutzt und die Optimierungen an- und ausgeschaltet. Wir haben unsere Optimierungen einer logischen Reihenfolge unterworfen sodass wir unseren Vergleich zu der Messung einer Verbesserungskette vereinfachen konnten. Unsere Befunde zeigten dass die Beseitigungen der Regelkörpervariablen die stärkste Verbesserung zeigt, wohingegen die Beseitigung der Regelkopfvariablen die kleinste Verbesserung zeigt.


Abbildung 1: Interner Vergleich Ergebnisse

Externer Vergleich

Wir vervollständigten unsere Produktstudie mit einem externen Vergleich. Wir verglichen die optimierte Version mit einer Anzahl von verfügbaren Prologsystemen. Wir haben nur einen Vergleich mit dem Interpretermode dieser Prologsysteme durchgeführt, da wir mit dem Compilermode dieser Prologsysteme nicht mithalten können. Unser Befund war dass der schnellste Interpreter immer noch 3-mal schneller ist als unser Interpreter. Besonders die deterministischen Testprogramme in unserer Folge zeigen eine höhere Leistung in den getesteten Prologsystemen. Trotzdem sind die Ergebnisse vielversprechend da wir ein System übertreffen konnten.


Abbildung 2: Externer Vergleich Ergebnisse

Der vollständige Bericht zur Produktstudie kann von der Website www.jekejeke.ch heruntergeladen werden. Die Ausgabe 0.8.4 der Laufzeitbibliothek und der Entwicklungsumgebung sind ebenfalls über diese Website verfügbar. Beide Produktvarianten sind 100% Java und sind daher unverändert auf einer Vielzahl von Plattformen ausführbar. Es braucht nicht mehr als einige Klicks, dann steht Ihnen der Download nach der Registrierung mit der Website zur Verfügung. Da das Beta-Testprogramm noch läuft, ist die Entwicklungsumgebung nur als Evaluationslizenz verfügbar.

Jan Burse
Geschäftsführer