shell - 使用钉枪加快 clojure 启动时间

标签 shell clojure startup nailgun

我时不时地认为使用 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/

相关文章:

bash - 将多个参数传递给 UNIX shell 脚本

clojure - 为什么算?在一种情况下返回 true 而在另一种情况下返回 false?

Cassandra启动

wpf - App OnStartup 永远不会被调用

linux - 带有参数的 shell 脚本

shell - GnuPG Shell 脚本 - 拒绝读取密码

linux - 如何在shell中使用命令 "at"在ubuntu中调用zenity

java - Clojure 中的编译问题

testing - clojure 中用于端到端测试或 api 测试的库?

python - Windows 10在启动时运行python程序