[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