3

我正在尝试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

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

4

2 回答 2

1

通过调用 cljsc,您每次编译时都会启动一个 JVM,它必须加载大量代码,然后进行实际编译。仅 JVM 启动时间就很痛苦。

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

于 2012-10-20T07:49:48.717 回答
0

花 10 秒时间编译对我来说似乎并不完全疯狂,因为它必须将所有标准 cljs 库编译为 javascript 以及你的琐碎程序。至于高级优化,这可能就是做任何事情需要多长时间。它正在读取和优化数千行 cljs.core javascript,可能还有(我认为)cljs.core 使用的 google 闭包库。

于 2012-10-20T21:04:36.930 回答