问题标签 [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 投票
0 回答
46 浏览

perf - Flamegraph 显示来自 perf_event 的大量开销

我是 BPF 和 perf 的新手,我正在使用

要分析基于 pub sub 的应用程序,发布者端大约是 100HZ。而flamegraph以perf_event为主,我认为它与tracing有关。我的问题:

  1. 这是正常的吗?我执行了其他玩具示例(非发布订阅),它没有出现这种开销。
  2. 我可以做些什么来完善我自己的应用程序?没有显示性能本身的开销?

在此处输入图像描述

在此处输入图像描述

0 投票
1 回答
61 浏览

rust - Rust 和 Flamegraph:使用 cargo 安装时出现一堆错误

我想. Rust按照我运行的 README 中的说明进行操作cargo install flamegraph。但是,在某些时候它会引发一堆错误:

任何人都可以帮忙吗?我应该先安装其他东西吗?

0 投票
0 回答
66 浏览

rust - 在特定的二进制可执行文件上创建火焰图

我想创建一个flamegraph我的 Rust 可执行文件(位于 中target/release/name-of-binary)。我在这里perf找到了命令

但是,由于我正在起诉 mac os,因此我没有也perf必须使用dtrace. 虽然我知道如何将其dtrace用于特定的 PID,但我不知道如何将其用于特定的 Rust 二进制文件。任何帮助,将不胜感激!

0 投票
0 回答
9 浏览

flamegraph - 火焰图和火焰图和火焰图中的绘制时间

我想知道是否有任何方法可以使用火焰图中的任何类型的标记来绘制时间以及函数调用。提前致谢

0 投票
0 回答
74 浏览

postgresql - 你能描述一下这个FlameGraph(Postgres,RHEL7)为什么CPU等待和阻塞进程吗

我正在测试 PostgreSQL(v12)(server1) 并使用 pgbench (server2) 应用负载。

裸机 server1 配置:

  • 80 个逻辑 CPU(Intel Xeon Gold 6230 2.10GHz)
  • 800GB 内存
  • 用于 Postgres 表空间 (550Gb) 的 RAM 中的 tmpfs 磁盘
  • 红帽 EntLinux 7.9、3.10.0-1160.15.2.el7.x86_64

我看到很多(~5-40)被阻塞的进程(vmstat 列“b”)和 CPU 等待(~25%)。通常,它表示降级 IO 系统,但现在我使用 RAM 磁盘 (tmpfs)。

交换失踪。

我使用 bcc-tools 将 off-cpu 事件收集为“offcputime -f 10”并制作了一个 FlameGraph。

但我不明白发生了什么:)

我看到 43% 的正常上下文切换和一点点“bit_wait_io”。

什么是“bit_wait_io”,为什么是 CPU 等待?

谢谢

在此处输入图像描述

在此处输入图像描述

0 投票
2 回答
216 浏览

c++ - 如何获得涉及 C++ 标准库的帧指针性能调用堆栈/火焰图?

我喜欢fp收集调用堆栈的方法,perf record因为它比dwarf. 但是,当我查看程序使用 C++ 标准库时得到的调用堆栈/火焰图时,它们是不正确的。

这是一个测试程序:

这是火焰图:

在此处输入图像描述

它是在 Docker 容器中的 Ubuntu 20.04 上通过以下步骤生成的:

这样做的主要问题是,并非所有函数都是 的子函数stupid_factorial,例如__memcmp_avx2_movbe. ,dwarf他们是。在更复杂的程序中,我什至看到像这样的函数在外部main__dynamic_cast例如,它通常没有父母。

gdb中,我总是看到正确的回溯,包括此处未正确显示的函数。是否有可能在不自己编译的情况下获得正确的fp调用堆栈libstdc++(这似乎需要做很多工作)?

还有其他一些奇怪的东西,虽然我无法在 Ubuntu 18.04(在 Docker 容器之外)中重现它们:

  • 中有一个未解决的函数libstdc++.so.6.28
  • 我自己的二进制文件中有一个未解析的函数6_stl.bin,位于最左边。情况也是如此dwarf
0 投票
0 回答
198 浏览

node.js - 在本地/开发环境中分析 NestJS 函数

我有一个 NestJS 项目,其中包含从 Angular 11 中开发的 UI 调用的一堆函数。我正在尝试在本地和开发环境中运行分析器,但我不知道如何做到这一点 - V8 分析器/火焰图表。任何见解将不胜感激。我正在使用 IntelliJ 和 Jenkins 管道来构建代码并将其部署到不同的环境。

示例:在 Nest JS 项目中,我们有一个带有一些功能的 API。

msyAPI.ts

如何在此代码上运行分析器以获取 msyAPI.ts 中每个函数的性能指标?您如何将代码置于负载下?我是在 Angular 应用程序上使用分析器还是可以直接在 Nest JS 代码上使用它?我是否在本地运行 Angular Web 应用程序,然后在 UI 运行时运行分析器?但这只是一个用户点击 API ......

抱歉,我对此很陌生,并且在网上找不到太多有用的信息来说明如何在开发、阶段或生产环境中分析 Nest JS API。

提前致谢。

0 投票
0 回答
19 浏览

multithreading - Flamegraph 显示异步调用

我使用火焰图来呈现 Java 调用链,如下例所示。问题是当有异步调用或多线程时。在这种情况下,同时发生的火焰图部分将一个接一个地绘制。你有什么解决办法吗?也许是 3D 火焰图?示例将不胜感激。

在此处输入图像描述

0 投票
0 回答
93 浏览

r - 如何找出 RAM 中有多少内存分配给我闪亮的应用程序

我有一个使用闪亮仪表板包制作的应用程序。它具有三个脚本:ui.R、server.R 和 global.R。一年来,这个应用程序已经毫无问题地托管在 shinyapps.io 上。但是,它确实使用 API 从 Amazon Web 服务中的数据库中提取数据。随着时间的推移,数据不断增长,最终我的应用程序超过了免费帐户允许的 1GB RAM 内存。我收到错误消息,“正常退出,代码 137,信号 9 (SIGKILL)”。我查看了shinyapps.io 中的日志,我看到它说:“内存不足!”。我决定简化我的应用程序并大大减少使用 API 导入的数据量,但是我仍然遇到同样的错误。

我决定使用该程序包profvis来分析我的应用程序并查看运行缓慢的内容以及需要大量内存分配的内容,但我无法准确告诉我的应用程序分配了多少内存。

这是火焰图的图像在此处输入图像描述

这是数据部分在此处输入图像描述

我是否理解我正在做的所有合并都是在我的应用程序中占用最多时间的事情?此外,在查看数据部分时,它说 profvis 行分配了 1251.1 MB 的内存。这是否意味着这是我的应用程序所需的内存总量?

0 投票
0 回答
39 浏览

rust - 货物火焰图不适用于人造丝

我正在尝试分析看起来像的代码

par_iter来自人造丝。

这段代码运行缓慢,所以我试图通过类似的命令使用 cargo-flamegraph 对其进行分析

当我更改par_iter为 时iter,我在火焰图中看到合理的东西,表明这Frame::update需要一些时间,并且各种HashMap方法都需要一些时间。

如果我使用par_iter的是充满人造丝的调用,但看起来它实际上并没有从人造丝创建的线程中给我任何结果。人造丝消费者和助手和桥梁有很多条目,但我的代码没有出现。我查看了 flamegraph.svg 并Frame:没有出现。(顺序版本有Frame::update。)

我需要做些什么来让火焰图也分析线程吗?