每一次,我认为对于
shell脚本来说使用clojure是件好事,但是大约900ms的启动时间太慢了.然后我将google
startpage用于“nailgun clojure”,但是出现的唯一结果是像vimclojure这样的特殊情况.那就是当我假装没有时间的时候,转向更加尴尬的语言,开始更快.
那么,如何使用指甲枪来加快启动时间呢?
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
在我的情况下,实际脚本的启动时间下降到80ms,而没有指甲枪的是900ms.
要使运行实际的脚本更方便,请创建一个包含以下行的可执行文件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
然后执行你的脚本如上.
更新:使用它一段时间,似乎没有完美的工作.有时候我会收到随机错误,而不会在没有指甲枪的情况下运行,有时候似乎有一个内存泄漏,使得指甲枪JVM随着时间的推移消耗所有内存,最终使系统交换到磁盘.没有内存分析这个,但是想添加这个单挑.