Debian
执行以下操作一次:
apt-get install nailgun # install nailgun
java -server -jar /usr/share/java/nailgun.jar& # run nailgun server
ng-nailgun ng-cp /usr/share/java/clojure-1.4.jar # add clj to classpath
现在服务器正在运行和配置,您可以在其上运行您的 clojure 脚本:
ng-nailgun clojure.main path/to/myscript.clj
在我的例子中,实际脚本的启动时间降至 80 毫秒,而没有 nailgun 的启动时间为 900 毫秒。
为了更方便地运行实际脚本,请创建一个包含以下行的可执行文件ng-clojure,并将其放在路径中的某个位置:
ng-nailgun clojure.main "$@"
在您的 clojure shell 脚本中,将其添加为第一行:
#!/usr/bin/env ng-clojure
然后使 clojure shell 脚本可执行并像这样运行它
path/to/myscript.clj
OSX
brew install nailgun
ng-server
ng ng-cp ~/.m2/repository/org/clojure/clojure/1.5.1/clojure-1.5.1.jar
然后像上面那样执行你的脚本。
更新:使用了一段时间后,它似乎并没有完美运行。有时我会遇到在没有 nailgun 的情况下运行时不会发生的 随机错误,有时似乎存在 内存泄漏,这使得 nailgun JVM 会随着时间的推移消耗所有内存,最终使系统交换到磁盘。尚未对此进行内存分析,但想添加此提示。