3

我正在使用eclipse编写java代码。如果我正在调试一些代码,我可以设置一个断点并跟随代码通过每个函数,或者我可以回溯。我还可以查看调用层次结构或参考来获得一个想法。但这还不够。

我想对每个线程在整个过程中所做的事情进行某种基于时间的可视化......让我们说“A点”(按下界面上的按钮)到“B点”(得到结果) . 我想看看以什么顺序调用了哪些类/方法。我想要一种很好的方法来可视化来自一种方法的输出类型并进入另一种触发新进程的方法......等等。

探查器是唯一可用于这种可视化的东西吗?基本上我想要创建一个动作图或流程图。是否有一些插件或应用程序可以生成这样的东西?

编辑:这是我在想的一个例子......至少在视觉上:essmodel.sourceforge.net/index.html 它有一些代码引导的流程。但我认为这只是哪些类导致其他类以及哪些输入/输出选项可用的静态映射。我想根据特定情况映射流程。

4

2 回答 2

3

JProfiler提供了这样一个视图,它被称为“呼叫跟踪器”:

在此处输入图像描述

为了不记录太多数据,非常小心地限制您的过滤器非常重要。

免责声明:我公司开发 JProfiler。

于 2012-03-27T09:05:00.067 回答
0

我相信使用分析器将是您的最佳选择。你熟悉 VisualVM 吗?它带有 JDK(在 JDK 的 bin 目录中查找“jvisualvm.exe”),并且能够自动分析本地虚拟机以及正确配置的远程机器。它确实对正在运行的线程以及它们花费时间的代码提供了一个非常漂亮的概述,所以我认为你可以轻松地从中完成你需要的事情。最重要的是,它是免费的 :)

正如我所说,本地分析是轻而易举的事。您只需单独运行 JVisualVM.exe,它就会自动找到在本地计算机上运行的所有 java 进程(您可以从 VisualVM 预先提供的菜单中选择它们)。如果您想远程分析,请为您正在运行的任何内容设置以下 VM 参数:

-Dcom.sun.management.jmxremote.port=[0-65535]
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false

然后在 VisualVM 中,使用运行远程 JVM 的机器的主机名和上面第一个 VM 参数中配置的端口。

于 2012-03-27T00:00:00.210 回答