我不确定这会有多大用处,但我认为将程序中使用的对象可视化以及从哪里引用哪些对象可能很简洁。我猜它会产生一些像graphviz这样的程序会使用的数据。是否有任何工具可以做到这一点,否则我自己有多难?理想情况下,这适用于任何任意程序,但如果有必要,我可以对代码进行一些修改(例如添加dumpObjects()调用或其他)
我有兴趣为java做这个,但如果有其他语言的解决方案,请发布。
答案 0 :(得分:9)
分析器允许您查看在运行时创建的对象。这是JProfiler的输出,例如:
(来源:ej-technologies.com)
答案 1 :(得分:2)
Sun开发了VisualVM,其中包括内存和进程分析。它还支持OSGi等技术的插件。
答案 2 :(得分:1)
一个有趣的用例是内存分析和优化。这正是Eclipse MAT的意思。看看吧。
alt text http://dev.eclipse.org/blogs/memoryanalyzer/files/2008/05/dom_tree.gif
答案 3 :(得分:1)
对于可视化图形结构(包括对象图),有很多基于GraphViz的工具:http://www.graphviz.org/
答案 4 :(得分:1)
有Object Graph Visualizer以3D形式显示类和对象。目前它缺少自动初始化的API,但是添加此功能应该不会太困难。 源代码也在Github上。
编辑:显然已经在这个方向上完成了工作: https://eprints.hsr.ch/491/
答案 5 :(得分:0)
不确定这是否是你的目标,但doxygen几乎可以完成所有这些。
它将需要一堆编译代码并将其转换为交叉引用的html,pdf的rtf。 完成将为每个函数调用树,并为每个变量“引用”