2013-05-14 14 views
6

Nie korzystałem wcześniej z ritz-nrepl, a nrepl trwało około 10 sekund, co jest długie, ale nadal można je znosić, ponieważ nie uruchamiam go zbyt często.Czy mimo to można zmniejszyć czas uruchamiania nrepl (ritz-repl)?

Kiedy wypróbowałem ritz-repl, ładowanie trwało prawie 30 sekund i zużywa około 1,3G pamięci. To sprawia, że ​​niechętnie z niego korzystam.

Wrzuciłem nawet SSD, mając nadzieję, że zwiększy to prędkość, ponieważ słyszałem, jak ktoś wspomniał, że "prawie nie zauważył czasu startu repliki lein" za pomocą ubuntu + ssd. Ale nie mogę stwierdzić różnicy między ssd i hdd. Nie wiem, czy zrobiłem coś złego, czy to tylko mit.

+1

Wystrzeliwuję tylko wtedy, gdy potrzebuję ciężkiej zmiennej introspekcji. Przez resztę czasu używam normalnego nrepl. Moja użyteczność jest taka, że ​​ritz-nrepl jest daleki od dojrzałości. Używam Fedory + SSD i tak właśnie jest, 30 sekund jest dla mnie całkowicie normalne. Ponadto, ponieważ muszę dezaktywować autouzupełnianie (ac-nrepl) na całym świecie (ponieważ w przeciwnym razie emacs zawiesza się), nie jest on atrakcyjny przez większość czasu pracy nad programowaniem. –

+0

Dzięki za informacje! BTW, pokazuje twój surowy czas uruchamiania nrepl? Mam 6s bez zależności i około 15 z 7 lub więcej. – LoveProgramming

+0

Tak, nie zmierzyłem tego, ale o to chodzi. Dla większego rozwoju zwykle używam tego makra, aby uzyskać introspekcję w repl: (defmacro dbg [x] '(niech [x # ~ x] (println" dbg: "'~ x" = "x #) x #)) –

Odpowiedz

1

Możliwe, że można zmniejszyć czas uruchamiania serwera nrepl, który zawiera ritz, ale w większości przypadków będzie to trwało co najmniej 10 sekund, aby uruchomić jvm na komputerze. Dla mnie jest to niedopuszczalne opóźnienie podczas interaktywnego rozwoju.

Jako alternatywę można użyć bardziej inteligentnego podejścia do przeładowywania kodu przy użyciu the clojure.tools.namespace library. Zasadniczo utrzymuje on wykres zależności w pamięci i ponownie ładuje tylko te przestrzenie nazw, które zostały zmienione od czasu ostatniego odświeżenia.

To zadziała po wyjęciu z pudełka dla niektórych, ale nie wszystkich kodów Clojure. Aby uzyskać więcej informacji o tych przypadkach na krawędziach, zobacz numer the 'Preparing Your Application' section of the readme.

Mam nadzieję, że to pomoże!