Is Effekt Fast Yet

Alle Programmiersprachen besitzen eine gemeinsame Schnittmenge der grundlegenden Abstraktionen. Durch einen Kompiler oder Interpreter werden die Abstraktionen in Maschinencode umgesetzt und dann ausgeführt. Je besser diese Umsetzung optimiert ist, desto performanter ist die Ausführung des Programmes. Im Paper Are-We-Fast-Yet [ 5 ] werden 9 Microbenchmarks entwickelt, welche in moderat komplexen Programmen jeweils bestimmte Bereiche dieser Core Language testen. Die Benchmarks werden in verschiedene Programmiersprachen implementiert und die Ausführung auf Zeit gemessen. Anhand der Ergebnisse lässt sich eine generelle Aussage über die Performanz einer Programmiersprache, beziehungsweise Kompilers/Interpreters machen.

Effekt ist eine neue Programmiersprache, entwickelt an der Universität Tübingen. In dieser Arbeit messen wir die Performanz von Effekt in 4 Backends (JavaScript, Chez-Lift, Chez-Monadic, Chez-Callcc) sowie für eine Implementation der Benchmarks in JavaScript. Dazu nutzen wir 9 Microbenchmarks, von uns nach Effekt übersetzt und implementiert. Wir beschreiben das von uns zum Benchmarking entwicklete Kommandozeilenwerkzeug FastEffekt und analysieren die gemessenen Laufzeiten der einzelen Backends, Benchmarks und Iterationen.

Dabei finden wir heraus, dass Effekt deutlich langsamer ist als die reine JavaScript Implementation, allerdings mit Unterschieden zwischen den einzelnen Benchmarks und deutlichen Unterschieden zwischen den Backends. Effekt-JavaScript ist das langsamste Backend, gefolgt von Chez-Lift und Chez-Monadic. Das schnellste Effekt Backend ist Chez-Callcc, das in einigen Benchmarks an die Performanz von JavaScript heranreicht. Wir finden Hinweise auf Bottlenecks und Anzeichen für Bugs, welche in 2 Benchmarks massiv die Performanz von Effekt einschränken. Weiterhin beschreiben wir technische Herausforderungen, die Effekt für die Programmierung mitbringt und schätzen ein, dass Effekt unter bestimmten Voraussetzungen weit genug entwickelt ist um damit moderat komplexe Programme umzusetzen.

Contact

Jonathan Brachthäuser

Philipp Schuster