我正在尝试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
这是正常的吗?或者我怎样才能加快速度呢?
答案 0 :(得分:1)
通过调用cljsc,每次编译时都会启动JVM,这需要加载大量代码,然后进行实际编译。仅JVM启动时间就很痛苦。
一般的工作流程是不使用cljsc,而是保持JVM打开并每次都使用它进行编译。一种常见的方法是使用lein-cljsbuild,我强烈推荐。
答案 1 :(得分:0)
花费十秒钟编译对我来说似乎并不完全疯狂,因为它必须将所有标准cljs库编译为javascript以及你的琐碎程序。至于高级优化,可能需要多长时间才能完成任务。它正在阅读和优化成千上万行的cljs.core javascript,也可能是我认为cljs.core使用的谷歌闭包库。