Ответ 1
Также попробуйте grenchman: быстрый вызов Clojure кода через nREPL.
Я получил версию Rasperry Pi 512 MB (конец 2012 года) и установил Предварительный просмотр Java Java SE 8 для ARM. Когда я создаю новый проект Clojure с Leiningen и запускаю nREPL, выполняя lein repl
, требуется немного больше двух минут (примерно 130-140 секунд), пока REPL не будет инициализирован и не будет использоваться.
При запуске JAR файла напрямую java -jar clojure-1.4.0/clojure-1.4.0
REPL запускается за 25 секунд.
Я использую быстрые SD-карты класса 10 (SanDisk Extreme со скоростью до 30 МБ/с). Как получилось, что разница между использованием Leiningen с nRepl и запуском JAR файла настолько велика? Что можно сделать, чтобы улучшить время запуска с Leiningen для малины Pi?
Также попробуйте grenchman: быстрый вызов Clojure кода через nREPL.
Вы можете попробовать drip, который обертывает команду java и готовит свежий jvm, ожидающий в фоновом режиме.
Кажется, что медленный запуск clojure в общем случае - это загрузка ядра и различные другие вещи, обсуждаемые здесь:
На самом деле Leiningen запускает в своем собственном JVM, а затем встраивает в него проект vm.
Затем он проверяет депонирование, определяет изменения и т.д.
Вы можете избежать vm вложенности с батутной задачей lein следующим образом:
lein trampoline repl
Но эта команда требует, чтобы лейн вызывался в каталоге проекта