graalvm

Discuss GraalVM related topics. Use clojure 1.10.2 or newer for all new projects. Contribute to https://github.com/clj-easy/graal-docs and https://github.com/BrunoBonacci/graalvm-clojure. GraalVM slack: https://www.graalvm.org/slack-invitation/.
borkdude 2020-09-24T10:47:34.000200Z

@alexmiller I don't see any meaningful changes when using clojure.pprint AOT-ed:

$ mvn clean
$ mvn compile
$ rlwrap java -cp target/classes:$(clojure -Spath) clojure.main

(def sw (java.io.StringWriter.))

;; current master:
user=> (time (dotimes [i 10000] (require '[clojure.pprint :refer [write]] :reload)))
"Elapsed time: 2307.649138 msecs"

user=> (time (dotimes [i 100000] (write {} :stream sw)))
"Elapsed time: 1542.609558 msecs"
nil

;; pprint_base.clj, write-option-table, keywords -> vars, avoiding find-var in table-ize
user=> (time (dotimes [i 10000] (require '[clojure.pprint :refer [write]] :reload)))
"Elapsed time: 2334.667132 msecs"

user=> (time (dotimes [i 100000] (write {} :stream sw)))
"Elapsed time: 1541.441623 msecs"
nil

borkdude 2020-09-24T18:30:10.000800Z

That's master compared to going to keywords -> vars.

alexmiller 2020-09-24T20:29:07.001200Z

thx