2013-05-14 31 views
6

我之前沒有使用ritz-nrepl,而nrepl花了大約10秒,這很長但仍然可以承受,因爲我不經常重新啓動它。是否有減少nrepl(ritz-repl)啓動時間的方法?

當我試用ritz-repl時,花了近30秒的時間啓動,並消耗了大約1.3G的內存。 這讓我不願意使用它。

我甚至投擲SSD希望它可以提高速度,因爲我聽到有人提到他「很難注意到使用ubuntu + ssd的lein repl啓動時間」。但我無法分辨出ssd和hdd之間的差異。我不知道我做錯了什麼,或者它只是一個神話。

+1

我只有在需要大量變量反思時纔會啓動它。剩下的時間我使用正常的nrepl。我的經驗是,ritz-nrepl遠未成熟。我使用的是Fedora + SSD,就是這樣,30秒對我來說是完全正常的。另外,由於我必須全局停用自動完成(ac-nrepl)(因爲否則emacs會凍結),所以在開發工作流程的大多數時間它並不是很有吸引力。 –

+0

感謝您的信息!順便說一句,你的原始nrepl啓動時間?我有6個沒有依賴關係,15個左右有7個左右。 – LoveProgramming

+0

是的,我沒有測量它,但這是關於它。 對於大多數開發,我通常可以通過使用這個宏來獲取對內容的反省: (defmacro dbg [x] '(let [x#〜x](println「dbg:」'〜x「=」x#)x# )) –

回答

1

可能有方法可以減少包括麗思在內的nrepl服務器的啓動時間,但大多數情況下,您至少需要10秒才能啓動機器上的jvm。對我而言,在進行交互式開發時,這是一種令人無法接受的延遲。

作爲替代方案,您可以使用更智能的代碼重新加載方法,使用the clojure.tools.namespace library。它基本上在內存中保留一個依賴關係圖並只重新加載自上次刷新以來已更改的那些命名空間。

這對於一些但不是全部的Clojure代碼來說是開箱即用的。請參閱the 'Preparing Your Application' section of the readme以瞭解有關要避免的邊緣情況的更多信息。

希望這會有所幫助!

相關問題