[armedbear-devel] Performance of ABCL?
Žiga Lenarčič
ziga.lenarcic at gmail.com
Thu Sep 24 12:11:09 UTC 2009
Hi!
I've tested Maxima with ABCL. While it runs, which is rather cool,
it's fairly slow! On my computer (with -server) Maxima on ABCL is
about 10x - 20x slower than SBCL for various operations in Maxima
(and using 3-4x more RAM). I don't know much about implementation
details - but as far as I know, every lisp object is encapsulated in
a Java object, so there is a lot of allocation going on. Compiler is
also very slow (compared to SBCL).
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.
I don't know about KAWA. Is JVM bytecode not flexible enough to
perhaps reuse some compilation techniques of native compilers (CCL,
SBCL) ?
I was thinking about writing a GUI for maxima in java, using ABCL to
run Maxima. This way the gui could interact directly with the lisp
functions of Maxima. But the main advantage of Maxima is IMO that it
can be easily extended via Lisp, which can compile to near C speed on
native compilers such as SBCL and CCL. Using ABCL (if it is as slow
as it is now), this would not be true and the only fast extensions to
Maxima could be written in Java perhaps, which is fine, but is not
portable to other CLs and Java code is verbose.
Regards,
Ziga
More information about the armedbear-devel
mailing list