我認爲現在和以後使用clojure
代替shell腳本會很好,但啓動時間大約爲900ms太慢了。我會然後
谷歌
startpage爲「nailgun clojure」,但唯一的結果顯示是像vimclojure特殊情況。那時我假裝沒有時間,轉而採用更快速的起步語言awk
。用nailgun加速clojure啓動時間
那麼,nailgun
怎麼能用來加速clojure的啓動時間呢?
我認爲現在和以後使用clojure
代替shell腳本會很好,但啓動時間大約爲900ms太慢了。我會然後
谷歌
startpage爲「nailgun clojure」,但唯一的結果顯示是像vimclojure特殊情況。那時我假裝沒有時間,轉而採用更快速的起步語言awk
。用nailgun加速clojure啓動時間
那麼,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
在我情況下,實際腳本的啓動時間降低到80ms,而沒有釘槍的啓動時間爲900ms。
要化妝實際運行的腳本更方便,創建包含以下行的一個可執行文件ng-clojure
,並把它放在您的路徑:
ng-nailgun clojure.main "[email protected]"
在你Clojure的shell腳本,添加此作爲第一行:
#!/usr/bin/env ng-clojure
然後使Clojure的shell腳本的可執行文件和類似
0123運行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隨着時間消耗所有內存,最終使系統交換到磁盤。還沒有記憶描述這一點,但想要添加這個單挑。
海量!有人應該在Planet Clojure博客上分享這一點。 – progo
嘗試在一臺Java服務器上運行不同的事情時,不會出現代碼衝突問題?還是我誤解了一些東西? – rvirding
@rvirding我不確定你的意思是「代碼衝突」,但如果這不起作用,我不會感到驚訝。例如,可能存在靜態全局狀態等問題。 –