编译时Clojurescript非常慢

时间:2012-10-20 05:33:16

标签: clojure clojurescript

我正在尝试clojurescript并发现将一个非常简单的clojurescript源文件编译成js需要很长时间。我简直不敢相信。

time cljsc hello.cljs '{:optimizations :advanced}' > hello.js

real    1m27.324s
user    1m2.412s
sys     0m0.676s

该片段来自Clojurescript的github快速入门页面:

(ns hello)
(defn ^:export greet [n]
  (str "Hello " n))

退出:optimizations选项,我仍然觉得需要很长时间:

time cljsc hello.cljs > hello.js

real    0m10.867s
user    0m22.301s
sys 0m0.412s

这是正常的吗?或者我怎样才能加快速度呢?

2 个答案:

答案 0 :(得分:1)

通过调用cljsc,每次编译时都会启动JVM,这需要加载大量代码,然后进行实际编译。仅JVM启动时间就很痛苦。

一般的工作流程是不使用cljsc,而是保持JVM打开并每次都使用它进行编译。一种常见的方法是使用lein-cljsbuild,我强烈推荐。

答案 1 :(得分:0)

花费十秒钟编译对我来说似乎并不完全疯狂,因为它必须将所有标准cljs库编译为javascript以及你的琐碎程序。至于高级优化,可能需要多长时间才能完成任务。它正在阅读和优化成千上万行的cljs.core javascript,也可能是我认为cljs.core使用的谷歌闭包库。