Clojure 是否有减少nrepl(丽思repl)启动时间的方法?

Clojure 是否有减少nrepl(丽思repl)启动时间的方法?,clojure,nrepl,Clojure,Nrepl,我以前没有使用ritz nrepl,nrepl大约需要10秒,这很长,但仍然可以忍受,因为我不经常重新启动它 当我试用ritz repl时,它需要将近30秒的时间才能启动,并且消耗了大约1.3G的内存。 这使我不愿意使用它 我甚至投了一个SSD希望它能提高速度,因为我听到有人提到他“几乎没有注意到lein repl启动时间”使用ubuntu+SSD。但我自己也分不清ssd和hdd的区别。我不知道我是否做错了什么,或者这只是一个神话 可能有一些方法可以缩短包括ritz在内的nrepl服务器的启动时

我以前没有使用ritz nrepl,nrepl大约需要10秒,这很长,但仍然可以忍受,因为我不经常重新启动它

当我试用ritz repl时,它需要将近30秒的时间才能启动,并且消耗了大约1.3G的内存。 这使我不愿意使用它


我甚至投了一个SSD希望它能提高速度,因为我听到有人提到他“几乎没有注意到lein repl启动时间”使用ubuntu+SSD。但我自己也分不清ssd和hdd的区别。我不知道我是否做错了什么,或者这只是一个神话

可能有一些方法可以缩短包括ritz在内的nrepl服务器的启动时间,但在大多数情况下,您需要花费至少10秒的时间才能在机器上启动jvm。对我来说,在进行交互开发时,这是一种不可接受的延迟

作为替代方案,您可以使用更智能的代码重新加载方法。它基本上在内存中保留一个依赖关系图,并且只重新加载自上次刷新以来已更改的名称空间

这对于一些但不是所有Clojure代码来说都是开箱即用的。有关要避免的边缘情况的更多信息,请参阅


希望这有帮助

我只在需要强烈反省的时候才会启动它。其余时间我使用正常的nrepl。我的用户体验是ritz nrepl还远远不够成熟。我用的是Fedora+SSD,就是这样,30秒对我来说是完全正常的。另外,由于我必须在全局范围内停用自动完成(ac nrepl)(因为否则emacs会冻结),所以在开发工作流程的大部分时间里,它并不是很有吸引力。谢谢您提供的信息!顺便问一下,你的原始nrepl启动时间是多少?我得到了6分,没有依赖关系,大约15分,大约7分。是的,我没有测量它,但就是这样。对于大多数开发,我通常通过使用这个宏在repl中进行内省:(defmacro dbg[x]`(让[x#~x](println“dbg:”~x“=”x#)x#)