问题标签 [flamegraph]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
159 浏览

javascript - 无法为 nodeJS 进程创建火焰图

我正在尝试使用 perf 实用程序分析 nodeJS REST API。我正在使用的命令是perf record -F 99 -p 5395 -g -- sleep 605395 作为进程 ID。它可以正常工作并将数据写入 perf.data 文件。 [ perf record: Woken up 6 times to write data ] [ perf record: Captured and wrote 1.360 MB perf.data (~59425 samples) ] 但是,当我尝试使用它创建报告时,perf script > out.perf我遇到了错误Failed to open /tmp/perf-5395.map, continuing without symbols。这基本上意味着 perf 无法反编译代码以在输出文件中显示 javascript 代码。如何获取此地图文件?我错过了什么?

0 投票
1 回答
362 浏览

performance - 带 perf 的 CPU 外火焰图:输出字段的类型应该是什么?

我一直在按照这些说明为我的代码生成 CPU 外火焰图。但是,当我到达这一步时:

我收到以下错误:

我知道每个输出字段都需要有一个类型,但我不确定我应该提供哪种类型。有人能指出我正确的方向吗?

0 投票
1 回答
1223 浏览

javascript - 如何解释铬火焰图表中的间隙

我试图更好地理解如何解释铬火焰图。
在下图_changeHandler中显示为四个不同的块。但是我知道事实上它只被调用一次。

我在这里看到了一个类似的问题,声称这可能是一个错误,但那是四年前的事了:
Chrome devtools profile 火焰图中的这个差距是什么意思

在此处输入图像描述

问题:
在哪种情况下,chrome perf 工具会在同一函数调用的火焰图中显示间隙?

真正的问题是它确实使整个图表无效。图的底部是片段,但顶部是相同的功能。我完全不知道如何理解这一点。

当使用 CPU 限制时,问题会成倍恶化。请看第二张图,它与第一张图的操作相同,但 cpu 节流设置为 5 倍减速。
“函数调用”下的碎片条是单个函数调用,由于某种原因它被分成数百个部分。

在此处输入图像描述

0 投票
0 回答
200 浏览

performance - 生成混合模式火焰图时出错

我正在尝试在 Linux 机器(CentOS 7)上生成一些混合模式火焰图并遇到一些问题。

我正在遵循此链接中的说明:https ://www.slideshare.net/brendangregg/java-performance-analysis-on-linux-with-flame-graphs (从幻灯片 47 开始)。

当我运行以下命令来收集性能数据时:

它似乎生成 perf.data 没有错误。但是,当我尝试通过运行以下命令来处理 perf.data 时,

它向我显示以下消息:

有谁知道这些消息是什么意思?

0 投票
1 回答
197 浏览

javascript - Firefox 是否允许使用“聚合”火焰图来分析 JS 应用程序?

Firefox 开发者工具支持火焰图,但似乎时间被用作 X 轴:

在火焰图视图本身中,沿 X 轴的是时间。上面的屏幕截图涵盖了从 1435 毫秒到略过 1465 毫秒的时间段。沿 Y 轴是该时间点调用堆栈上的函数,顶层位于顶部,叶函数位于底部。函数采用颜色编码,以便于区分。

通常,火焰图使用百分比作为 X 轴,例如:pyflameBrendan Gregg 的火焰图

我发现基于时间的火焰图令人困惑,并且错过了获取每个函数的聚合时间的能力(就内容而言类似于调用树,但以更直观的方式表示)。此外,如果一个函数很短但被多次调用,很容易错过它,而在“聚合”火焰图上,它会突出显示。要了解为什么基于时间的火焰图令人困惑,让我从另一篇文章中借用示例- 诚然在 Chrome 中,但问题是相似的:

在此处输入图像描述

即使某些功能占用了总时间的 30%,在上图中也看不到。

有什么方法(通过插件或设置)我可以让 Firefox 显示所选时间片的聚合火焰图而不是基于时间的火焰图?

0 投票
0 回答
128 浏览

rust - 对于使用 Rayon 编写的代码,如何使用火焰箱获得详细的火焰图?

我正在尝试使用带有我使用Rayon编写的代码的火焰箱获得一些性能指标:

这工作正常,但只提供整个并行迭代器的信息。我想获得有关该功能的一些更细粒度的细节func

我尝试在函数中添加开始/结束,但运行时信息仅在我调用时可用flame::commit_thread(),然后它似乎只将其打印到标准输出。理想情况下,当我在代码末尾调用 dump 时,我想打印出没有给定标签所花费的时间。

有没有办法从所有线程中转储标签?火焰的文档不是很好。

0 投票
1 回答
162 浏览

node.js - Google App Engine 如何实现分析(堆栈跟踪)?

Google App Engine用来运行我的NodeJS应用程序flexible env,现在我想生成 FlameGraph,但事情是 App Engine 本身处理的scalingdeploying现在任何人都可以告诉我如何生成Flamegraph(NodeJs Profiling)来跟踪来自我的 NodeJs 服务器的请求。

如果你们中的任何人在任何框架(NodeJs 或任何其他)上使用过 Google App Engine,请大家告诉我你们是如何在 App Engine 上解决这类问题的。

更新 -

为什么我们需要在调试后删除实例。

在此处输入图像描述

0 投票
1 回答
500 浏览

r - 在 R 中读取 profvis 的输出

我正在尝试学习使用 profvis。这是一个带有可重现示例的链接:

专业例子

我不明白为什么内存有两个数字,即。本页第一个示例中的 -3.5 和 9.5(其中 Time = 1290)。

有人可以解释如何解释内存的 2 个数字吗?

0 投票
1 回答
67 浏览

dask - Dask 仪表板配置文件选项卡使用情况(又名火焰图)

你如何解释这块俄罗斯方块来研究你的应用程序的使用?

在此处输入图像描述

0 投票
1 回答
426 浏览

java - 分析 java 服务器并解释火焰图

我正在分析 java 服务器。我正在查看火焰图:http ://www.brendangregg.com/flamegraphs.html 。我有几个关于如何解释火焰轮廓的问题。我是 Java 新手,所以它们可能听起来很基础。

1) 在配置文件中,我观察到的顶部框架 libjvm_so 占用 38.6% cpu。这在java进程和服务器中正常吗?这个共享对象到底是什么?通常需要这么多处理吗?

2)函数/堆栈占用 x% 意味着什么。这是相对的还是绝对的?进程或 x% cpu 占总 cpu 使用量的 x%。这让我想到了第二个问题,当我比较 2 个火焰图时,是否通过进程的所有 cpu 使用情况进行了比较标准化?也就是说,如果一种方法在一个配置文件中占用 10% 而在另一个配置文件中占用 15%,这是否意味着该函数实际上正在消耗更多的 cpu。或者可能是初始进程的总体 cpu 使用率为 50% 但在第二个进程中 cpu 使用率为 30% 的情况,因此从绝对意义上讲,第二个配置文件显示该函数的 cpu 使用率降低。(50% 的 10% 大于 30% 的 15%)。