3 ms·
Nitpick, but Clojure's startup time isn't JVM startup time it's clojure.core startup time
by whateveracct 12y ago
Nitpick, but Clojure's startup time isn't JVM startup time it's clojure.core startup time
- i_am_so_tired 12y agoAh, that is why Kawa Scheme starts up faster then.
- e12e 12y agoThis appears to be true, eg: cat <<eof > Hello.java public class Hello { public static void main(String[] args) { System.out.println("Hello, world!"); }} eof javac Hello.java echo "Main-Class: Hello" > manifest.mf jar cvfm hello.jar manifest.mf Hello.class time java -jar hello.jar Hello, world! real 0m0.153s user 0m0.132s sys 0m0.020s vs: lein new hello cd hello # Pesty s-expressions, so hard to work with... ;-) cat <<eof|patch -p0 --- project.clj 2015-04-16 04:13:09.734160136 +0200 +++ project.clj.patch 2015-04-16 04:09:33.809504079 +0200 @@ -3,4 +3,5 @@ :url "http://example.com/FIXME" :license {:name "Eclipse Public License" :url "http://www.eclipse.org/legal/epl-v10.html"} + :main hello.core :dependencies [[org.clojure/clojure "1.6.0"]]) eof cat<<eof > src/hello/core.clj (ns hello.core (:gen-class)) (defn -main "I don't do a whole lot." [] (println "Hello, World!")) eof lein uberjar time java -jar target/hello-0.1.0-SNAPSHOT-standalone.jar Hello, World! real 0m1.060s user 0m1.400s sys 0m0.040s (Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz, SSD drive)
- e12e 12y agoKawa: wget ftp://ftp.gnu.org/pub/gnu/kawa/kawa-2.0.jar wget ftp://ftp.gnu.org/pub/gnu/kawa/kawa-2.0.jar.sig gpg --recv-key D269E756 gpg --verify kawa-2.0.jar.sig echo '(format #t "Hello, world!\n")' > hello.scm # Not sure how to bundle up a scheme script with kawa # to a stand-alone jar... java -jar kawa-2.0.jar --main -C hello.scm time java -cp kawa-2.0.jar:. hello Hello, world! real 0m0.284s user 0m0.296s sys 0m0.020s
- e12e 12y agoAnd, for the record, with the same hello.scm, and guile (2.0.5 as found in Debian stable): # First run: time guile hello.scm ;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0 (...) Hello, world! real 0m0.066s user 0m0.044s sys 0m0.020s #Ed: with precompiled code under $HOME/.cache/guile (?) time guile hello.scm Hello, world! real 0m0.040s user 0m0.036s sys 0m0.004s
- lispm 12y agoLisp on my Raspberry Pi is faster: pi@raspberrypi ~/lisp/ccl $ time ./armcl -n -Q -e '(progn (princ "hello") (quit))' hello real 0m0.112s user 0m0.020s sys 0m0.080s And the expression is first compiled to native code...