问题标签 [gprof]

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 回答
1054 浏览

c - 使用 valgrind 而不是 gcc 进行分析

一段时间以来,我一直在使用 gprof 来分析我的 C 代码,但它非常不稳定,每次运行它都会给我不同的模拟时间以及 %. 我决定切换到 valgrind,我正在使用 valgrind 进行分析,但是我想显示数据并获得与 gprof 相似的结果。在 gprof 我得到了 % 执行时间,self ns/call

有没有办法在不使用 kcachegrind 的情况下获取这些信息?

Kcachegrind 正在打开 UI,我更喜欢获取文件以便我可以分析,因为我想一起做几个分析

谢谢您的帮助

0 投票
1 回答
5364 浏览

linux - 如何在 Linux 中使用 gprof?

我在一个文件中有一个 C 代码test.c。我必须使用grof对其进行分析。我使用以下命令来执行此操作。

gcc -p -o result test.c
./result
gprof result

输出的一部分如下所示:

`平面轮廓:每个样本计为 0.01 秒。没有时间积累

% 累计 self 总
时间 秒 秒 呼叫 Ts/呼叫 Ts/呼叫名称`

问题是无论我使用什么复杂或简单的程序,每个样本计数都不会从 0.01 秒开始变化。为什么会这样,并且没有时间在各个列下累积和显示。

0 投票
1 回答
771 浏览

c++ - gprof 输出问题

问题是:为什么我的 gprof 输出只显示 "Index by function name" ?

我在本教程的支持下编译了我的应用程序:http: //ececmpsysweb.groups.et.byu.net/cmpsys.2004.winter/citizenship/Bryan_Wheeler/Profiling_Tutorial.html

所以我的应用程序是用 -p -pg 编译的

在我使用 ./application 运行我的应用程序后,它会创建 mon.out 文件,但这只是按函数名称保存索引,这有点奇怪,

有没有人有同样的经历或知道我在这里做错了什么。

谢谢, 阿尔卡特罗斯

0 投票
0 回答
543 浏览

ios - iOS上的GCC调用图分析(-pg,gprof)可能吗?

有没有办法在 iOS 上使用 GCC 调用图分析?在为 iOS 设备构建时,在 Xcode4 中设置 GENERATE_PROFILING_CODE 似乎没有效果(我也没有看到 -pg 被传递给编译器或链接器),即使它有效果,我将如何访问写入的 gmon.out 文件iPhone/iPad?

Instrument 的 Time Profiler 只定期对所有线程进行采样,因此很容易错过快速调用;即使使用尽可能小的采样间隔。

更新
我不是为了找到性能热点而尝试这样做,我需要一个确切的统计数据,在程序运行时哪个函数被调用了多少次;采样需要精确(因此缺少函数调用是不行的)并且它需要对 CPU 友好(与在没有分析的情况下运行代码相比,它不能浪费太多 CPU 时间)。

0 投票
4 回答
2381 浏览

c++ - 简单的操作浪费时间?

我正在寻找一个简单的操作/例程,如果连续重复可能会“浪费”时间。

我正在研究 gprof 如何配置应用程序,因此这种“浪费时间”需要在用户空间中浪费时间,并且不应该需要外部库。IE,调用 sleep(20) 将“浪费” 20 秒的时间,但 gprof 不会记录这个时间,因为它发生在另一个库中。

对于可以重复浪费时间的简单任务有什么建议吗?

0 投票
1 回答
2144 浏览

profiling - 在 kcachegrind 中查看 gprof 输出

如何在 kcachegrind 中查看 gprof 的输出?这里是从 gcc 的 gmon.out 到 callgrind.out 的转换器吗?

0 投票
3 回答
25650 浏览

gcc - gcc 的 -pg 标志是如何工作的?

我试图了解-pg(或-p)标志在编译 C 代码时是如何工作的gcc

官方 gcc 文档仅说明

-pg
生成额外的代码来编写适合分析程序 gprof 的配置文件信息。在编译需要数据的源文件时必须使用此选项,并且在链接时也必须使用它。

这真的让我很感兴趣,因为我正在对分析器进行一项小型研究——试图为这项工作选择最好的工具。

0 投票
4 回答
12456 浏览

c - 为什么矩阵乘法算法中的循环顺序会影响性能?

我有两个函数来查找两个矩阵的乘积:

我使用 运行并分析了两个可执行文件gprof,除了这个函数之外,每个文件都有相同的代码。对于大小为 2048 x 2048 的矩阵,其中的第二个明显(大约 5 倍)快。关于为什么的任何想法?

0 投票
0 回答
632 浏览

c++ - gprof symspec 包括 C++ 类函数

我正在尝试分析大型 C++ 程序的特定部分。我正在使用 gprof 和Gprof2Dot来生成漂亮的图表。但是,我想从图中排除某些启动功能。

我认为我应该能够运行 gprof -Qclass::init 来抑制 class::init 及其所有子项,但这似乎不起作用。事实上,我无法让任何包含“::”的“symspec”工作。但是,-Qmain 可以按我的预期工作。

要让 gprof 包含/排除带有“::”的函数名,需要做哪些魔术?

0 投票
1 回答
2625 浏览

c++ - 解释 gprof 输出

我试图在我的程序中找到性能问题,从而通过分析来检测代码。gprof 创建一个像这样的平面配置文件:

紧随其后的是许多行,时间更短。

第一个问题:认为 std::deque 似乎存在问题是一个有效的假设吗?问题是:我知道我们正在使用 std::deque,但我不知道<char>.

如果这个假设成立,那么查看调用堆栈并查看该双端队列的使用位置似乎是有意义的。然而,所有关于这些东西的条目deque<char>都只被调用<spontaneous>

仅举一个例子:

有什么方法可以了解更多关于这个双端队列的信息吗?

感谢您的任何提示!