【发布时间】:2011-02-27 19:54:39
【问题描述】:
有人知道 Clojure 有什么好的分析工具或库吗?
我更喜欢可以从 REPL 中使用的东西,就像当年 Allegro Common Lisp 中的 (with-profiling ...) 一样。
有什么类似的吗?
或者您是否有任何与 Clojure 配合良好的(非商业)Java 分析器的经验?
【问题讨论】:
有人知道 Clojure 有什么好的分析工具或库吗?
我更喜欢可以从 REPL 中使用的东西,就像当年 Allegro Common Lisp 中的 (with-profiling ...) 一样。
有什么类似的吗?
或者您是否有任何与 Clojure 配合良好的(非商业)Java 分析器的经验?
【问题讨论】:
我发现 VisualVM(参见 here 和 here)非常方便。大约一年前,this blog post 已经描述了它与 Clojure 的使用;据我所知,它并没有过时。
请注意,启动 VisualVM 分析器的 GUI 有一个突出的文本区域,人们可以在其中输入要从分析中排除的类/包——我发现当clojure.* 在该列表中时,结果会更有用。
【讨论】:
刚刚找到profile in Clojure contrib。
它不适用于大量代码(它在 VisualVM 处理得很好的 Project Euler 解决方案上因 OutOfMemoryError 而爆炸)并且它需要您在要分析的函数中插入分析调用。
不过,在您只想分析几个函数的情况下,它是 VisualVM 的更好替代方案。
【讨论】:
有一个新的 Clojure 库提供分析:https://github.com/ptaoussanis/timbre
【讨论】:
快速提醒一下,我已弃用 Timbre 的配置文件,以便在 https://github.com/ptaoussanis/tufte 处使用新的专用 Clojure + ClojureScript 分析库。
这基本上是对 Timbre 内容的改进,加上专门的文档。
自述文件包含一个 comparison 以及 VisualVM、YourKit 等 JVM 工具。
【讨论】: