Wanted: Faster JVM Load Times

java-logo-thumb.png

This morning I was working on a simple addition to a suite of applications that does some experimental analysis on data streams, and it was all written in clojure. Wonderful language. The problem is that it's based on the JVM, so if I want to do something small, I still have a relatively long load time due to the JVM.

JRuby had this as well, but then there was RMI Ruby that was very fast to load, and it was great for smaller tasks. JRuby is great for larger projects where you need the JIT and speed you can get with the JVM.

I've seen ideas where you spin up a JVM, and have it sitting there, and then load up a new class loader and load up the code. But that means you have a JVM just sitting there all the time. That's not the answer. And I can understand the case of GUI apps - those are building up lots of buffers, etc. that you don't have to have with a simple command-line app.

Boy... that would be as useful as a really great Garbage Collector. Sure wish it was faster to launch clojure apps.

UPDATE: I have read a few blog posts about this, and I have to say that I've changed my mind on the subject - Java's JVM loader is just fine. It's the clojure loader on the JVM that's bad. So very bad. Tests on my MacBook Pro confirm that Java itself is not bad at all - very fast, once it's compiled. But clojure is still slow. Plenty of reasons for the slowness, but no clear answers.