2010-06-04 101 views
40

沒有人知道Clojure的一個好的分析工具或庫嗎?Clojure分析工具?

我希望可以從REPL中沿用Allegro Common Lisp中的(with-profiling ...)這一行來使用某些東西。

沿着這些線有什麼?

或者您是否有任何使用Clojure的(非商業)Java分析器的經驗?

回答

28

我發現VisualVM(見herehere)非常方便。它在Clojure中的使用大約在一年前在this blog post;就我所知,它並沒有以任何方式過時。

請注意,啓動VisualVM Profiler的GUI具有顯着的文本區域,您可以輸入要從分析中排除的類/包 - 當clojure.*位於該列表中時,我發現結果更有用。

+0

感謝您的指針comparison。監視器部分 - 堆內存和CPU使用率 - 非常方便。但我努力從CPU分析器獲取任何有用的信息。剖析一個Project Euler問題的解決方案,我的代碼中最主要的貢獻者是幾分鐘運行時間中的300ms ......是否有任何方法「總時間」(花費在調用堆棧上的時間)而不是「自我時間」(時間花在調用堆棧頂部)? – 2010-06-05 00:20:04

+0

還有一個這樣的問題實際上,http://stackoverflow.com/questions/1892038/total-method-time-in-java-visualvm-建議採取分析結果的快照和分析,這是很好的,爲您提供了一個不錯的「調用樹」視圖,幷包含全部方法時間。還有一點需要記住的是,這是一個單段命名空間可能成爲問題的地方(AFAICT是一些功能在我和Licenser在#clojure中一起進行的最近一次性能分析會議中「不可見」的原因),儘管我不會保證他們會在你的特定情況下破壞事情。 ;-) – 2010-06-05 01:44:38

+0

我會接受你的答案:)不是我正在尋找的,但它似乎是最接近的可用。謝謝。 – 2010-06-07 20:52:38

9

剛發現profile in Clojure contrib

它不適用於大量的代碼(它在VisualVM處理的Project Euler解決方案上與OutOfMemoryError混淆),它需要您在要配置的函數中插入分析調用。

儘管如此,在您只想分析幾個函數的情況下,它是VisualVM的更好選擇。

+2

現在已經過時了。 – 2014-10-21 13:50:51

14

有一個新望Clojure的庫,它提供了分析:我已經在https://github.com/ptaoussanis/tufte棄用音色的分析爲新的專用的Clojure + ClojureScript剖析LIB https://github.com/ptaoussanis/timbre

+1

這一個工程。 – 2014-10-21 13:22:21

+0

我比VisualVM更喜歡這個,因爲它使用和控制的重量很輕。 – 2014-10-21 13:52:32

+0

這似乎只提供了ClojureScript的分析。 – 2016-06-06 09:17:22

3

快速擡頭。

這基本上是來自Timbre的東西的細化,再加上專用的文檔。

自述包括與JVM之類的工具的VisualVM,YourKit等