2010-06-04 103 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等