clojure
时不时地我认为使用shell 脚本会很好,但是大约 900 毫秒的启动时间太慢了。然后我会在谷歌起始页上搜索“nailgun clojure”,但唯一显示的结果是针对 vimclojure 等特殊情况。就在那时,我假装没有时间,转向更多awk
启动速度更快的病房语言。
那么,怎么可以nailgun
用来加快clojure的启动时间呢?
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 随着时间的推移消耗所有内存,最终使系统交换到磁盘。还没有记忆对此进行分析,但想添加此单挑。