Как проверить байт-код JVM для функции clojure?

При попытке оптимизировать C и LISP, просмотр кода ассемблера, выводимого компилятором, может быть большой помощью.

Clojure предположительно компилируется в байт-код JVM, который будет в равной степени полезен.

Как это увидеть?

Ответы

Ответ 1

Clojure динамически компилирует весь код Clojure в байт-код во время выполнения. Я не уверен, как вы можете увидеть этот динамически скомпилированный байт-код. Однако вы можете сделать компиляцию Ahead во времени (AOT) вашего кода Clojure самостоятельно, и это приведет к созданию файлов .class. Затем вы можете использовать javap, чтобы увидеть байт-код.

Используйте команду compile в Clojure/core для компиляции пространства имен:

компиляции Функция

Использование: (компиляция lib)

Компилирует пространство имен, названное символом lib, в набор файлы классов. Источник для библиотеки должен быть в правильном classpath-relative directory. Выходные файлы войдут в каталог, указанный в файле compile-path, и этот каталог тоже должен быть в пути к классам.

Затем используйте javap:

javap -l -c -s -private MyClass