gprof相关内容

gcc 的 -pg 标志如何工作?

我试图了解在使用 gcc 编译 C 代码时 -pg(或 -p)标志是如何工作的. 官方 gcc 文档仅说明: -pg 生成额外的代码来编写适合分析程序 gprof 的配置文件信息.编译需要数据的源文件时必须使用此选项,链接时也必须使用它. 这真的让我很感兴趣,因为我正在做一个关于分析器的小型研究 - 试图为这项工作挑选最好的工具. 解决方案 使用 -pg 编译您的代码,以便 ..
发布时间:2022-01-04 21:29:26 其他开发

使用 __gnu_mcount_nc 捕获函数退出时间

我正在尝试在支持不佳的原型嵌入式平台上进行一些性能分析. 我注意到 GCC 的 -pg 标志会导致在每个函数的入口处插入对 __gnu_mcount_nc 的 thunk.__gnu_mcount_nc 没有可用的实现(并且供应商没有兴趣提供帮助),但是由于编写一个简单地记录堆栈帧和当前循环计数的代码很简单,我已经这样做了;这工作正常,并且在调用方/被调用方图和最常调用的函数方面产生了有用的 ..
发布时间:2021-12-18 22:25:03 C/C++开发

gprof 报告没有累积时间

我正在尝试在运行 OSX 10.5.7 的机器上使用 gprof 分析 C++ 应用程序.我以通常的方式使用 g++ 进行编译,但使用 -pg 标志,运行应用程序并尝试使用 gprof 查看调用图. 不幸的是,我的调用图包含所有时间列的全零.“被调用"列中的值具有合理的值,因此看起来像是对某些内容进行了分析,但我对缺少其他数据感到困惑. 我所有的源文件都以类似的方式编译: g++ - ..
发布时间:2021-12-15 08:02:24 服务器开发

gprof 没有输出

我正在尝试使用 gprof 来分析我正在开发的一些数字代码,但是 gprof 似乎无法从我的程序中收集数据.这是我的命令行: g++ -Wall -O3 -g -pg -o fftw_test fftw_test.cpp -lfftw3 -lfftw3_threads -lm &&./fftw_test gmon.out 文件已创建,但似乎没有数据.当我跑 gprof -b fftw_tes ..
发布时间:2021-06-21 20:18:26 其他开发

GProf 输出中缺少函数

我正在尝试分析一些 C 代码,但在 GProf 输出中没有显示最直观的开销函数之一. int main() {初始化...光环交换();为了(...) {职能...传播();职能...}}无效传播(){对于 (x)对于 (y)对于 (z)网格[xNew][yNew][zNew] = 网格[x][y][z];光环交换();}void haloSwap() {//水平交换创建缓冲区...MPI_Se ..
发布时间:2021-06-04 18:35:19 其他开发

使用GPROF自动执行C程序的配置

我正在使用gprof分析矩阵乘法C程序.该C程序具有这样的一般结构; int main() { int n; printf("enter size of square matrices"); scanf("%d", &n); data(matM); //fill matrices with n x n random data data(matN); // this is uno ..
发布时间:2020-06-17 19:00:06 其他开发

是GNU gprof越野车吗?

我有一个C程序,通过函数pi_calcPiBlock调用函数pi_calcPiItem() 600000000次.因此,为了分析在功能上花费的时间,我使用了GNU gprof.结果似乎是错误的,因为所有调用都归属于main().此外,调用图没有任何意义: Each sample counts as 0.01 seconds. % cumulative self ..
发布时间:2020-06-17 19:00:03 其他开发

使用std :: priority_queue推送最小堆是瓶颈

作为最小堆的速度比std::priority_queue快? 原始问题是此处.您可以使用 demangler 来解析grpof生成的名称.在那里的用户的帮助下,我得出了一个结论,在这里,这段代码(我希望执行的次数比执行弹出操作的次数还要多): /** * Min_heap is actually a std::priority_queue, * with std::greater ..
发布时间:2020-06-17 18:59:59 C/C++开发

为什么gprof低估了总时间

我有CPU绑定进程,该进程运行5个小时(使用getrusage()可以节省CPU时间) 我尝试通过gprof对其进行分析. main()花费的总时间仅为5000s. 我的程序受CPU限制,它具有一些光盘IO,但意义不大.配置文件中断已打开,并且我的进程未处于多线程状态. 解决方案 它仅在已知的例程中进行采样.您打new吗?那会花时间在gprof没去的地方. 顺便说一句,如 ..
发布时间:2020-06-17 18:59:54 其他开发

如何在Linux中使用gprof?

我在文件test.c中有一个C代码.我必须使用 grof 对其进行概要分析.我已使用以下命令进行了此操作. gcc -p -o result test.c ./result gprof result 输出的一部分如下: `扁平个人资料: 每个样本计为0.01秒. 没有时间积累 %累计自我自我总数 时间秒秒通话Ts/通话Ts/通话名称` 问题是无论我使用哪种复杂或 ..
发布时间:2020-06-17 18:59:50 服务器开发

如何在cmake中使用gprof

我看过许多使用gprof进行分析的教程.我正在尝试使用SMT求解器dReal的代码.为了构建程序,我首先安装了g ++-4.8,Bison,Flex和Cmake.然后要构建dReal,说明要执行以下操作: git clone git@github.com:soonhokong/dReal.git dreal cd dreal mkdir -p build/release cd b ..
发布时间:2020-06-17 18:59:47 其他开发

C ++函数的时间测量

我需要测量C ++程序的时间,尤其是某些递归函数的整体运行时间.其他函数内部有很多函数调用.我的第一个想法是在实际代码中实现一些时间测量功能. gprof的问题在于,它会打印出数据类型的类运算符的时间,但我只需要有关功能的信息集,而"-f func_name prog_name"将无法工作. 那么,科学中最常用的测量数字程序时间的方法是什么? 是这样的: function2 ..
发布时间:2020-06-17 18:59:41 C/C++开发

为什么gprof大大低估了程序的运行时间?

我有这个程序,需要运行2.34秒,而gprof表示只需要1.18秒.我在其他地方读过答案,暗示如果程序受I/O约束,则gprof可能会出错,但是此程序显然不是. 对于我正在尝试分析的有用程序,也会发生这种情况.这并非特定于这个琐碎的测试用例. (在这种情况下,gprof还说main()占用了程序运行时间的100%以上,这是一个非常愚蠢的错误,但并没有真正给我造成问题.) $ ca ..
发布时间:2020-06-17 18:59:36 其他开发

gprof一个库-问题

我需要在我们的系统中gprof一个库来检查函数调用,并查看是否可以对其进行优化.基本上,我拥有的是 使用共享库myLib.so的可执行文件A 我要gprof myLib.so.当我使用-pg选项编译myLib.so源代码时,它会生成一个.so文件. 但是,由于某种原因,针对该库重新编译可执行文件A并不会生成* .gmon文件.需要做什么?我应该静态链接myLib吗?如果是这样,请 ..
发布时间:2020-06-17 18:59:31 其他开发

gprof产生空输出

我正在运行Ubuntu 16.10,并尝试使用gprof分析程序.我用标志-pg进行编译,并且该程序是单线程的.实际的编译命令为: g++ -I. -std=c++11 -Wall -Wextra -O3 -pg -fPIC -Wno-unused-parameter -c -o build/obj/performance/stencil_application.o test/perform ..
发布时间:2020-06-17 18:59:29 其他开发

gprof在特定代码行上花费的时间

我一直将gprof探查器与g++结合使用. 我的代码中有一个函数,其中封装了行为的几个部分,这些部分与主要函数有足够的联系,以至于没有必要将它们拆分为各自的函数. 我想知道在这些代码的每个区域中花费了多少时间. 所以,如果您认为代码看起来像 function(){ A A A B B B C C C } ..
发布时间:2020-06-17 18:59:26 C/C++开发