问题标签 [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.
linux - 指定配置文件数据位置的任何方式
默认配置文件来自可执行文件,运行并调用该文件gmon.out
。有没有办法指定一个新的位置?
我在 i386/linux2.6 上使用 gcc 3.4.6
c++ - 令人困惑的 gprof 输出
我gprof
在一个 C++ 程序上运行16.637s
,根据time()
,我在输出的第一行得到了这个:
31.07%
如果只需要几秒钟,为什么它会列出时间.32
?这是每次通话时间吗?(那不是自己打电话吗?)
这是我第一次使用gprof
,所以请善待:)
编辑:通过向下滚动,gprof 似乎只认为我的程序需要 1.03 秒。为什么它会变得如此错误?
c++ - 加速 gcc 中的虚函数调用
用 gprof 分析我的 C++ 代码,我发现我的大部分时间都花在了一遍又一遍地调用一个虚拟方法上。该方法本身很短,如果它不是虚拟的,可能会被内联。
有什么方法可以加快速度,而不是将其全部重写为非虚拟的?
c++ - gprof 和可执行文件的参数
使用 gprof 时:
如果您可以选择传递给可执行文件,例如:
然后 gprof 假定我将一个无效选项传递给它,而不是传递给正在分析的程序 ( a.out
)。
有什么办法可以解决这个问题?
c - 在不修改源代码的情况下查找多进程程序中调用了哪些函数?
我正在做一个项目,我需要在给定特定输入的情况下找到在各种 Linux 程序(用 C 编写)中调用哪些函数。我目前的方法是使用 -pg(分析选项)编译一个程序,运行它,然后通过处理 gprof 的输出来查找调用了哪些函数。只有至少被调用一次的函数才会出现在输出文件中。
明显的问题是只有一个进程可以写入 gprof 输出文件。如果程序分叉多个进程,我不会从其他进程获得任何分析输出。
有没有办法让 gprof 为每个进程生成一个输出文件(可能由 pid 标记)?该手册建议将每个进程更改为不同的目录,但我不想修改源代码来执行此操作。是否有其他适用于 Linux 的工具可以提供帮助?
c++ - 为什么循环摘要在 gprof 的调用图输出中没有任何调用者?
我使用 GNU gprof 2.15.94.0.2.2 对我的 C++ 程序进行分析,该程序的调用周期很大。正如gprof 的文档所示,我希望在调用图输出中看到如下所示的内容:
但是,我<cycle as a whole>
的所有条目都没有列出任何来电者。他们都是这样的:
由于我的周期非常大,因此很难在一个周期中通过单个函数跟踪调用者。
谁能告诉我为什么输出中缺少循环调用者,以及如何让它们出现?
multithreading - 将 gprof 与 pthread 一起使用
gprof 可以用来分析使用 pthread 的多线程程序吗?也就是说,它的输出是否包括所有线程中使用的时间?
compiler-construction - 与 gprof 兼容的编译器?
我正在寻找能够生成 gprof 输出的编译器列表。
c++ - gprof 报告没有累积时间
我正在尝试在运行 OSX 10.5.7 的机器上使用 gprof 分析 C++ 应用程序。我以通常的方式使用 g++ 进行编译,但使用 -pg 标志,运行应用程序并尝试使用 gprof 查看调用图。
不幸的是,我的调用图包含所有时间列的全零。“被调用”列中的值具有合理的值,因此看起来像是对某些内容进行了分析,但我对缺乏其他数据感到困惑。
我所有的源文件都以类似的方式编译:
然后我运行“ar”将所有目标文件捆绑到一个库中。后来,我这样链接并运行 gprof:
有任何想法吗?
macos - OS X 上 gprof 的问题:[程序] 不属于主机架构
我gprof
在 OS X 上运行时遇到问题。文件test.c
是:
我的终端看起来像:
编辑:另外,它不会生成文件gmon.out
。
这里发生了什么?