我觉得将clojure
用于 shell脚本会很好,但是大约900ms的启动时间太慢了。然后我会 google startpage获取“nailgun clojure”,但显示的唯一结果是针对特殊情况,例如vimclojure。那时我假装没有时间,转向更快启动的awk
种语言。
那么,nailgun
怎样才能加快clojure的启动时间呢?
答案 0 :(得分:21)
<强>的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毫秒,相比之下没有钉枪的启动时间为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随着时间消耗所有内存,最终使系统交换到磁盘。还没有内存描述这个,但想要添加这个单挑。