Подтвердить что ты не робот

Инструмент профилирования для Clojure?

Кто-нибудь знает хороший инструмент для профилирования или библиотеку для Clojure?

Я бы предпочел что-то, что можно было бы использовать из REPL, по линии (with-profiling ...) в Allegro Common Lisp в тот же день.

Есть ли что-нибудь в этих строках?

Или у вас есть опыт работы с (некоммерческими) профайлами Java, которые хорошо работают с Clojure?

4b9b3361

Ответ 1

Я нашел VisualVM (см. здесь и здесь) быть очень удобным. Его использование с Clojure описано примерно год назад в этом сообщении в блоге; насколько я могу судить, это никак не устарело.

Обратите внимание, что GUI, с которого запускается профилировщик VisualVM, имеет заметную область текста, где можно вводить классы/пакеты, которые должны исключаться из профилирования. Я считаю, что результаты более полезны, когда clojure.* находится в этом списке.

Ответ 3

Только что нашел profile в Clojure contrib.

Он не работает для большого количества кода (он взорвался с OutOfMemoryError в решении Project Euler, которое VisualVM обрабатывал просто отлично), и он требует, чтобы вы вставляли профилирующие вызовы в функции, которые хотите профилировать.

Тем не менее, это лучшая альтернатива VisualVM в тех случаях, когда вы просто хотите профилировать пару функций.

Ответ 4

Быстрый хэдз-ап, который я устарел для профилирования Timbre для новой специализированной библиотеки Clojure + ClojureScript для профилирования https://github.com/ptaoussanis/tufte.

Это в основном усовершенствование материала из Timbre, плюс специальные документы.

README включает сравнение с инструментами JVM, такими как VisualVM, YourKit и т.д.