如何使用火焰图?

线程转储文件往往会有几百行代码(有时会有几千行)。由于其十分冗长,所以我们很难了解其中的所有信息。由 fastThread 工具生成的火焰图能够将这些信息压缩成一个紧凑的图表格式。其能帮助您快速识别热门代码路径(hot code path)。在本文中,我们将了解如何使用 fastThread 工具生成火焰图,从而有效进行调试和故障排除工作。

如果您想学习如何根据 Java 线程转储文件生成火焰图,可参考本文

fastThread 火焰图功能

以下是由 fastThread 程序生成的火焰图关键特征:

1. 鼠标悬停信息:

栈追踪信息由一列方框表示,其中每个方框表示一个函数(栈帧)。在鼠标移动至方框上时将展示提示信息。其中将展示已执行代码的类名、方法名和代码行。更重要的是,其中还会展示正在执行此行代码行的线程数。

示例:

com.buggycompany.framework.concurrent.buyggycompanyCallable.call(buggycompanyCallable.java:82), thread count: 2467)

图:鼠标悬停时生成的指示被执行代码行的工具提示

2. 火焰图颜色

方框的背景颜色没有进行突出展示,但会随机填充为暖色。这样的随机填充有助于双眼对各个方框进行区分,尤其是对于相邻较窄的“塔”形结构。

3. 方框宽度

方框的宽度取决于线程数。如果宽度足够,则其中会展示完整的函数名称。如果不够,那么会显示带有省略号的截断函数名,或者不显示任何内容。

4. 点击缩放

点击方框时,火焰图会水平缩放。这将展示更多细节,通常是子函数的函数名。

图:点击方框将会缩放火焰图

放大之后,如果您想缩小返回值原始图表,则可以点击图表右上角的“重置缩放”。

图:点击“重置缩放”会将您带回原始火焰图

5. 搜索

线程转储文件中出现的所有函数名、类名以及包名都可搜索。图表右上角有一个搜索框,如下图所示。

图:火焰图中的搜索框

在搜索框中,您可以输入函数名、类名、包名甚至线程转储文件栈追踪信息中的行号。任何匹配的方框都会以紫红背景颜色突出显示。如果您想仅搜索应用程序代码,则可输入程序包名(如:com.mycompany…)

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

Blog at WordPress.com.

Up ↑

%d bloggers like this: