JProfiler帮助文档Download

查看调用树的部分


调用树通常包含过多的信息。当您想减少显示的细节时,有几种可能性:您可以将显示的数据限制为一个特定的子树,移除所有不需要的数据,或使用更粗粒度的过滤器来显示方法调用。所有这些策略都由JProfiler支持。

设置调用树根

如果您分析的用例由多个顺序运行的任务组成,每个子树都可以单独分析。一旦找到此类子任务的入口点,周围的调用树就只是一个干扰,而子树中的时间百分比不便地引用了整个调用树的根。

为了专注于特定的子树,JProfiler在调用树和分配调用树视图中提供了设为根上下文操作。

设置调用树根后,关于所选根的信息会显示在视图的顶部。一个可滚动的标签显示了通向根的最后几个栈元素,点击显示更多按钮可以显示整个调用树根的详细对话框。

当您递归使用设为根操作时,调用栈前缀将简单地连接在一起。要返回到以前的调用树,您可以使用调用树历史记录的返回按钮一次撤销一个根更改,或在上下文菜单中使用重置根并显示全部操作一步返回到原始树。

更改调用树根最重要的是,热点视图将仅显示为所选根计算的数据,而不是整个树。在热点视图的顶部,您将看到当前的调用树根,就像在调用树视图中一样,以提醒您显示数据的上下文。

移除调用树的部分

有时查看调用树在某个方法不存在时的样子是有帮助的。例如,当您必须一次性修复多个性能问题时,因为您正在使用无法像开发环境中那样快速迭代的生产系统快照。解决主要性能问题后,您希望分析第二个问题,但只有在第一个问题从树中消除后才能清晰地看到。

通过选择调用树中的节点并按删除键,或从上下文菜单中选择移除选定子树,可以将节点及其子树一起移除。祖先节点中的时间将相应地校正,就好像隐藏的节点不存在一样。

有三种移除模式。使用移除所有调用模式,JProfiler会在整个调用树中搜索所选方法的所有调用,并将其及其整个子树一起移除。仅移除子树选项仅移除选定的子树。最后,将自耗时设为零将所选节点保留在调用树中,但将其自耗时设为零。这对于像Thread.run这样的容器节点很有用,因为它们可能包含大量未被分析的类的时间。

就像设为根操作一样,移除的节点会影响热点视图。通过这种方式,您可以检查如果这些方法被优化到不再是重要贡献的程度,热点将是什么样子。

当您移除一个节点时,调用树和热点视图的标题区域将显示一行,包含移除节点的计数和恢复移除的子树按钮。点击该按钮将弹出一个对话框,您可以在其中选择应再次显示的移除元素。

调用树视图过滤器

调用中对热点视图中显示数据有影响的第三个功能是视图过滤器。当您更改调用树过滤器时,它对计算的热点有很大影响。为了强调与调用树视图的这种相互依赖性,热点视图在视图上方显示调用树视图过滤器的一行,并带有一个按钮以移除附加过滤器。

设置调用树根、移除调用树的部分和视图过滤器可以一起使用,限制是视图过滤器必须最后设置。一旦在调用树中配置了视图过滤器,设为根移除选定子树操作将不再起作用。

与调用图的交互

在调用树或热点视图中调用显示图形操作将显示一个图形,该图形仅限于相同的调用树根,不包括移除的方法,并使用配置的调用树视图过滤器。在图形的顶部,关于这些更改的信息以类似于调用树的形式显示。

在图形视图本身中创建新图形时,向导中的复选框让您选择哪些调用树调整功能应被考虑用于调用图的计算。每个复选框仅在调用树视图中当前使用相应功能时可见。