подробно расскажу об этой теме.

исал несколько небольших служебных приложений в Clojure, которые я компилирую в автономные исполняемые файлы JAR («uberjars»), используя Maven и maven-shade-plugin. Эти uberjars содержат распакованные версии clojure.jar и других библиотек (например, commons-cli), от которых зависит приложение. Они удобны, потому что я могу отправить их клиенту, не требуя, чтобы клиент установил Clojure (все клиенты уже установили JRE).

Я обнаружил, что запуск приложений Clojure занимает несколько секунд, в то время как аналогичные приложения, написанные на Java, запускаются за доли секунды на тех же машинах (например, пора показывать сообщение об использовании).

Я подозреваю, что это потому, что Clojure на лету компилирует некоторый код в библиотеке clojure.core, поскольку есть исходный код (.clj файлы) в файле clojure.jar.

Есть ли способ предварительно скомпилировать этот исходный код? Можно ли что-то еще сделать, чтобы ускорить производительность при запуске? Я слышал жалобы от клиентов о том, сколько времени занимает запуск (и они не знают или не заботятся о том, что приложение написано на Clojure, Java или Foobar).

Ответы на вопрос(3)

Ваш ответ на вопрос