【发布时间】:2014-09-23 00:04:49
【问题描述】:
我正在使用lein repl 在控制台中执行 clojure repl。
当我运行它时,它需要 15 秒以上。
当我运行java -cp clojure-1.6.0.jar clojure.main 时,只需几秒钟。
为什么lein repl 这么慢?有没有办法让它更快?
我的环境:
- 硬件:MacBookAir
- 操作系统:Mac OS 10.9 Mavericks
- CPU:i7
- 内存:8GB
【问题讨论】:
-
它启动一个 JVM。可能只是JVM启动时间。
-
@Kungi 正如我在问题中所述,当我通过
java -cp clojure-1.6.0.jar clojure.main运行 repl 时,它开始相对较快。所以不是JVM启动时间的原因。 -
我在我的系统上试过了,它和你的 macbook air 完全一样。你是对的
lein repl启动时间大约是原来的两倍。 -
可能 leiningen 加载了更多必须预先编译到 JVM 中的代码。但我知道这不是一个令人满意的答案。
-
Leiningen 启动两个 JVM,并将它们连接在一起。它必须加载额外的东西才能做到这一点。您输入的提示符是与评估您的代码的 Clojure 进程不同的进程。 Leiningen 还必须解析您的项目文件,并确保一切都按需要进行设置,或者从网络上获取所需的内容。如果您仔细阅读,在 Leiningen 示例项目文件中,有一些选项可以加快速度。我认为 Leiningen 启动缓慢只是现在的生活事实之一。
标签: clojure leiningen read-eval-print-loop