11

clojure时不时地我认为使用shell 脚本会很好,但是大约 900 毫秒的启动时间太慢了。然后我会在谷歌起始页上搜索“nailgun clojure”,但唯一显示的结果是针对 vimclojure 等特殊情况。就在那时,我假装没有时间,转向更多awk启动速度更快的病房语言。

那么,怎么可以nailgun用来加快clojure的启动时间呢?

4

1 回答 1

22

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 script中,将其添加为第一行:

#!/usr/bin/env ng-clojure

然后使 clojure shell 脚本可执行并像这样运行它

path/to/myscript.clj

操作系统

brew install nailgun
ng-server 
ng ng-cp ~/.m2/repository/org/clojure/clojure/1.5.1/clojure-1.5.1.jar 

然后如上所述执行您的脚本。

更新:已经使用了一段时间,它似乎并没有完美地工作。有时我会遇到在没有 nailgun 的情况下运行时不会发生的随机错误,有时似乎存在内存泄漏,使 nailgun JVM 随着时间的推移消耗所有内存,最终使系统交换到磁盘。还没有记忆对此进行分析,但想添加此单挑。

于 2013-10-01T03:57:07.067 回答