2013-05-14 11 views
6

Ich habe Ritz-Nrepl vorher nicht benutzt, und nrepl hat ungefähr 10 Sekunden gebraucht, was lang aber immer noch erträglich ist, da ich es nicht oft neu starte.Gibt es sowieso eine Reduzierung der nrepl (ritz-repl) Startzeit?

Als ich ritz-repl ausprobierte, dauerte es fast 30s, um zu booten, und verbraucht rund 1,3G Speicher. Das macht mich widerwillig, es zu benutzen.

Ich warf sogar eine SSD in der Hoffnung, dass es die Geschwindigkeit erhöhen kann, weil ich jemanden erwähnen hörte, dass er "kaum die lein repl Start-Zeit" mit ubuntu + ssd bemerken. Aber ich kann den Unterschied zwischen ssd und hdd selbst nicht unterscheiden. Ich weiß nicht, ob ich etwas falsch gemacht habe oder ob es nur ein Mythos ist.

+1

Ich feuere es nur auf, wenn ich schwere variable Introspektion brauche. Den Rest der Zeit nutze ich den normalen nrepl. Meine Erfahrung ist, dass Ritz-nrepl noch lange nicht ausgereift ist. Ich benutze Fedora + SSD und das ist genau so, 30 Sekunden sind für mich völlig normal. Da ich die automatische Vervollständigung (ac-nrepl) global deaktivieren muss (weil sonst emacs einfriert), ist es für die meiste Zeit des Entwicklungs-Workflows nicht wirklich attraktiv. –

+0

Danke für die Info! BTW, wie hoch ist Ihre nrepl-Startzeit? Ich habe 6s ohne Abhängigkeiten und ungefähr 15s mit 7 oder so. – LoveProgramming

+0

Ja, ich habe es nicht gemessen, aber das ist es. Für die meisten Entwicklung bekomme ich normalerweise mit diesem Makro, um Introspektion im Repl zu bekommen: (defmacro dbg [x] '(lassen [x # ~ x] (println" dbg: "'~ x" = "x #) x #)) –

Antwort

1

Es gibt möglicherweise Möglichkeiten, die Startzeit eines nrepl-Servers zu reduzieren, der Ritz enthält, aber in den meisten Fällen werden Sie mindestens 10 Sekunden benötigen, um den jvm auf Ihrem Computer hochzufahren. Für mich ist das eine inakzeptable Verzögerung bei der interaktiven Entwicklung.

Als Alternative können Sie einen intelligenteren Code-Neuladeansatz verwenden, indem Sie the clojure.tools.namespace library verwenden. Im Grunde behält es ein Abhängigkeitsdiagramm im Speicher und lädt nur die Namespaces, die seit der letzten Aktualisierung geändert wurden.

Dies wird aus der Box für einige, aber nicht alle Clojure-Code funktionieren. Weitere Informationen zu diesen zu vermeidenden Fällen finden Sie unter .

Hoffe, das hilft!

Verwandte Themen