是否有任何工具可视化程序中使用的对象?

我不确定这会有多大用处,但我认为将程序中使用的对象可视化以及从哪里引用哪些对象可能很简洁。 我猜它会产生一些像graphviz这样的程序会使用的数据。 是否有任何工具可以做到这一点,否则我自己有多难? 理想情况下,这适用于任何任意程序,但如果有必要,我可以对代码进行一些修改(例如添加dumpObjects()调用或其他)

我有兴趣为java做这个,但如果有其他语言的解决方案,请发布它们。

分析器允许您查看在运行时创建的对象。 这是JProfiler的输出,例如:

jprofiler heap walker http://www.ej-technologies.com/products/jprofiler/images/screenshots/heap_walker_references_fsb.png

Sun开发了VisualVM ,其中包括内存和进程分析。 它还支持OSGi等技术的插件。

一个有趣的用例是内存分析和优化。 这正是Eclipse MAT的意义所在。 一探究竟。

alt text http://dev.eclipse.org/blogs/memoryanalyzer/files/2008/05/dom_tree.gif

为了可视化图形结构 (包括对象图),有很多基于GraphViz的工具: http : //www.graphviz.org/

有一个Object Graph Visualizer ,它以3Dforms显示类和对象。 目前它缺少自动初始化的API,但是添加此function应该不会太困难。 源代码也在Github上 。

编辑:显然已经在这方面做了工作: https : //eprints.hsr.ch/491/

OGV

不确定这是否是你的目标,但Doxygen将完成所有这些。

它将需要一堆编译代码并将其转换为交叉引用的html,pdf的rtf。 完成将为每个函数调用树,并为每个变量“引用”