On 9/24/09 2:11 PM, Žiga Lenarčič wrote:
I've tested Maxima with ABCL. While it runs, which is rather cool, it's fairly slow!
[…]
My question is, is performance ever increase dramatically (perhaps with java 7?) or is ABCL inherently slower because of the JVM? Clojure performs better than ABCL usually and is also running on JVM.
But Clojure cannot run Maxima now can it?
I don't know about KAWA. Is JVM bytecode not flexible enough to perhaps reuse some compilation techniques of native compilers (CCL, SBCL) ?
Since the JVM has 8-bit opcodes and is stack based there are certainly less options to write bytecode than a modern, register-based processor. But don't forget that the bytecode itself gets transformed by the JVM to native code, so there is actually quite a bit of compilation going on "after" we compile to bytecode.
We (mainly Erik?) have used Maxima as a test for understanding how to improve ABCL performance and compliance. At this point we're happy that you are wondering about speed rather than if ABCL can run Maxima. We continue to work on optimization but as a part-time volunteer effort progress is uneven.