问题标签 [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.
java - java应用程序响应太长,这个火焰图意味着什么?
这里是一个java应用,接受base64上传的图片,接下来通过base64请求另一个服务,但是响应时间太长,4-20s以上。
图表意味着什么?
java - 为整个 Java 程序执行生成火焰图
我正在尝试使用perf-map-agent为 Java 程序生成火焰图。我知道您可以使用它来记录正在运行的进程的数据。我还发现您可以使用Flame Graph 目录中的脚本。我找到了Brendan Gregg 的示例以及说明这一点的 Stack Overflow 帖子。但是,在这些示例中,Java 进程都没有作为参数给出(这意味着 perf 收集整个系统的堆栈跟踪)。perf-java-record-stack
jmaps
perf record
我想记录整个程序执行的分析数据(最好不要别的)。有没有办法做到这一点?我努力了:
答案是:
始终使用相同的 PID。此 PID 是一个正在运行的进程,而不是我尝试为其记录数据的进程。
python - 从 trie 构造火焰图
我在定期生成的 trie 中有一些统计信息。我想生成关于两次尝试之间差异的火焰图。我怎么做?
java - 检测 java web 应用程序中 cpu 使用率 15% 的原因
最近我们在我们的 java web 应用程序中升级了 hibernate jars。此次升级后,我们发现 CPU 使用率增加了 15-20%。之前和之后的唯一区别是hibernate jar版本。我需要确定 CPU 使用率增加的根本原因。我拍摄了 jvisualvm cpu profiler 快照并将它们转换为火焰图。从两个火焰图中,我看到堆栈跟踪是相同的,但 cpu % 存在差异。
在升级前后执行了具有相同用户负载和用例的负载测试。两个应用程序部署之间的唯一区别是hibernate jars。一个版本具有休眠 4.3.5,另一个具有 5.4.2。火焰图并没有指出休眠功能是导致 CPU 使用率增加的原因,因此我很困惑如何继续进行分析。
我需要一些关于如何比较两个火焰图并解决 cpu 使用率增加的根本原因的指导。请在这些链接中找到火焰图。
采样 5 分钟
之前的火焰图 - https://filebin.net/sxagcfs6lmtie654/old_report_5min.html?t=k4t2i379
之后的火焰图 - https://filebin.net/sxagcfs6lmtie654/report_5min.html?t=k4t2i379
之前的分析器快照 - https://filebin.net/sxagcfs6lmtie654/Old_Hibernate_Sampling_5Minute.nps?t=fvno95sr
之后的探查器快照 - https://filebin.net/sxagcfs6lmtie654/New_Hibernate_Sampling_5Minute.nps?t=fvno95sr
采样 30 分钟
之前的火焰图 - https://filebin.net/sxagcfs6lmtie654/old_report_30min.html?t=ttb7s4k4
之后的火焰图 - https://filebin.net/sxagcfs6lmtie654/report_30min.html?t=ttb7s4k4
之前的分析器快照 - https://filebin.net/sxagcfs6lmtie654/OldHibernateLibrary_30min.nps?t=fvno95sr
之后的探查器快照 - https://filebin.net/sxagcfs6lmtie654/LatestHibernateLibrary_30min.nps?t=fvno95sr
javascript - 关于chrome devltools javascript profiler火焰图的问题,聚合时间小于总时间
总时间和总时间在图中加了下划线。 devtool 火焰图
这种情况是什么意思?
performance - 如何在没有最小化名称的情况下记录性能火焰图?
我们正在尝试在生产环境中记录性能数据,但鉴于一切都已缩小,生成的火焰图使用缩小后的名称。
火焰图有没有办法使用未缩小的名称?我一直在尝试使用源地图,但它似乎不起作用。
想法?
sampling - 如何分析 Web 应用程序的火焰图
我对采样概念有一个简要的了解,并观看了一些火焰图视频。开始为电子商务 Web 应用程序(由Odoo Monolic
提供支持,Python
带有 Werkzeug WSGI 服务器)进行性能分析,我有一些问题。
采样时,我是否必须在应用程序上产生负载才能很好地理解火焰图?但是如果我产生更多的负载,多个请求可能会命中同一个函数 A(例如),这意味着函数 A 大部分时间都花在 CPU 上,所以我不应该假设函数 A 性能不好?
如何为 Web 应用程序收集样本:由于它是 Web 应用程序,它具有注册、销售、购买等多种功能。我是否按功能按请求收集样本?像下面
- 启动应用程序
- 开始采样
- 仅访问注册页面并做事
- 停止采样
这样,我只能根据单个请求为每个功能生成样本/火焰图
我是否已经多次完成整点 2 以更好地了解应用程序性能
如果我们考虑整个应用程序,有多个代码路径,取决于请求,一些代码路径(例如以上几点)花费大量时间在 CPU 上,哪些是有意义的,如何分析哪些是坏功能(花费大量时间在 CPU 上)
我相信我在采样概念和应用程序性能监控方面遗漏了一些要点。有人可以指导我吗?
如何解释采样/火焰图以及如何采样。
performance - 从源代码/从头开始编译 linux perf 工具及其依赖的内核模块
我正在使用 linux perf 工具来分析共享库。虽然它在 Ubuntu 上运行良好,但现在我想在嵌入式 linux 上运行它,我不能使用 apt-get 在嵌入式 linux 上安装 linux perf 工具。这就是为什么我必须从头开始编译所有内容。
任何人都可以指导如何从头/源代码编译 linux perf 工具和依赖的内核模块。
任何帮助将不胜感激。
谢谢阿尔斯兰阿里