我时不时地认为使用 clojure
会很好对于 shell 脚本,但是大约 900 毫秒的启动时间太慢了。然后我会谷歌 startpage对于“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 毫秒,而没有钉枪的情况下则为 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
然后像上面一样执行你的脚本。
更新 : 用了一段时间了,感觉不是很好用。有时我会收到 随机误差 在没有钉枪的情况下运行时不会发生这种情况,有时似乎会出现 内存泄漏 这使得钉枪 JVM 随着时间的推移消耗所有内存,最终使系统交换到磁盘。尚未对此进行内存分析,但想添加此提示。
关于shell - 使用钉枪加快 clojure 启动时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19107683/