在覆盆子皮上添加Leiningen改善Clojure REPL的启动时间

在覆盆子皮上添加Leiningen改善Clojure REPL的启动时间,clojure,leiningen,raspberry-pi,Clojure,Leiningen,Raspberry Pi,我得到了Rasperry Pi 512MB版本(2012年底),并在上面安装了。当我用Leiningen创建一个新的Clojure项目并通过执行lein repl启动nREPL时,需要两分钟多一点(大约130-140秒),直到repl被初始化并可以使用 当直接启动JAR文件java-JAR-clojure-1.4.0/clojure-1.4.0时,REPL将在25秒内启动 我使用的是fast class 10 SD卡(最高速度为30 MB/s的SanDisk Extreme)。为什么将Leini

我得到了Rasperry Pi 512MB版本(2012年底),并在上面安装了。当我用Leiningen创建一个新的Clojure项目并通过执行
lein repl
启动nREPL时,需要两分钟多一点(大约130-140秒),直到repl被初始化并可以使用

当直接启动JAR文件
java-JAR-clojure-1.4.0/clojure-1.4.0
时,REPL将在25秒内启动


我使用的是fast class 10 SD卡(最高速度为30 MB/s的SanDisk Extreme)。为什么将Leiningen与nRepl结合使用与启动JAR文件之间的差异如此之大?使用Leiningen可以做些什么来缩短Raspberry Pi的启动时间?

您可以尝试包装java命令并准备一个新的jvm在后台等待。

还可以尝试:通过nREPL快速调用Clojure代码。

实际上,Leiningen在自己的jvm中启动,然后将项目的vm嵌套在其中。
然后它检查deps,计算出变化等等

您可以使用lein的蹦床任务避免vm嵌套,如下所示:
莱恩蹦床应答器


但该命令要求在项目目录中调用lein。clojure启动缓慢的原因通常是加载core和此处讨论的其他各种内容:


lein repl
检查依赖项,构建项目,准备自动完成和其他类似的恶作剧。你可以尝试做一些聪明的事情,比如让一个装载了Clojure的JVM在leiningen上运行,但我不确定这会减少多少启动时间。我认为理想情况下,您应该尽量不要经常运行
lein repl
。是的,这也是我一直在想的。我在Clojure邮件列表上也看到过类似的讨论,但在台式PC或笔记本电脑上,这种放缓并不像Raspberry Pi上那样严重。公共Lisp REPL在1s内启动,Java和类路径扫描的性能开销相当大。不确定Clojure是否是一个很好的嵌入式设备开发平台。raju-Pitter,我很好奇您在Pi…GNU CLISP 2.49(2010-07-07)中使用了什么常见的Lisp实现,它位于Wheezy存储库中。刚刚做了一个
sudo apt get install clisp
。这似乎可以解释其中的一些原因。谢谢,我将尝试一下,并在这里报告结果。