gprof相关内容
我试图了解在使用 gcc 编译 C 代码时 -pg(或 -p)标志是如何工作的. 官方 gcc 文档仅说明: -pg 生成额外的代码来编写适合分析程序 gprof 的配置文件信息.编译需要数据的源文件时必须使用此选项,链接时也必须使用它. 这真的让我很感兴趣,因为我正在做一个关于分析器的小型研究 - 试图为这项工作挑选最好的工具. 解决方案 使用 -pg 编译您的代码,以便
..
我正在尝试在支持不佳的原型嵌入式平台上进行一些性能分析. 我注意到 GCC 的 -pg 标志会导致在每个函数的入口处插入对 __gnu_mcount_nc 的 thunk.__gnu_mcount_nc 没有可用的实现(并且供应商没有兴趣提供帮助),但是由于编写一个简单地记录堆栈帧和当前循环计数的代码很简单,我已经这样做了;这工作正常,并且在调用方/被调用方图和最常调用的函数方面产生了有用的
..
我正在尝试在运行 OSX 10.5.7 的机器上使用 gprof 分析 C++ 应用程序.我以通常的方式使用 g++ 进行编译,但使用 -pg 标志,运行应用程序并尝试使用 gprof 查看调用图. 不幸的是,我的调用图包含所有时间列的全零.“被调用"列中的值具有合理的值,因此看起来像是对某些内容进行了分析,但我对缺少其他数据感到困惑. 我所有的源文件都以类似的方式编译: g++ -
..
我正在尝试使用 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
..
如何在kcachegrind中查看gprof的输出?这里有从 gcc 的 gmon.out 到 callgrind.out 的转换器吗? 解决方案 目前,这似乎不受支持.不过,Kcachegrind 的愿望清单 中提到了它.
..
我正在尝试分析一些 C 代码,但在 GProf 输出中没有显示最直观的开销函数之一. int main() {初始化...光环交换();为了(...) {职能...传播();职能...}}无效传播(){对于 (x)对于 (y)对于 (z)网格[xNew][yNew][zNew] = 网格[x][y][z];光环交换();}void haloSwap() {//水平交换创建缓冲区...MPI_Se
..
我正在使用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
..
我有一个C程序,通过函数pi_calcPiBlock调用函数pi_calcPiItem() 600000000次.因此,为了分析在功能上花费的时间,我使用了GNU gprof.结果似乎是错误的,因为所有调用都归属于main().此外,调用图没有任何意义: Each sample counts as 0.01 seconds. % cumulative self
..
作为最小堆的速度比std::priority_queue快? 原始问题是此处.您可以使用 demangler 来解析grpof生成的名称.在那里的用户的帮助下,我得出了一个结论,在这里,这段代码(我希望执行的次数比执行弹出操作的次数还要多): /** * Min_heap is actually a std::priority_queue, * with std::greater
..
我有CPU绑定进程,该进程运行5个小时(使用getrusage()可以节省CPU时间) 我尝试通过gprof对其进行分析. main()花费的总时间仅为5000s. 我的程序受CPU限制,它具有一些光盘IO,但意义不大.配置文件中断已打开,并且我的进程未处于多线程状态. 解决方案 它仅在已知的例程中进行采样.您打new吗?那会花时间在gprof没去的地方. 顺便说一句,如
..
我是gprof的新手,这是我的程序, #include int somefunc(int n) { int i,j; for(i=1;i=1;
..
我在文件test.c中有一个C代码.我必须使用 grof 对其进行概要分析.我已使用以下命令进行了此操作. gcc -p -o result test.c ./result gprof result 输出的一部分如下: `扁平个人资料: 每个样本计为0.01秒. 没有时间积累 %累计自我自我总数 时间秒秒通话Ts/通话Ts/通话名称` 问题是无论我使用哪种复杂或
..
我看过许多使用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
..
使用以下标志进行编译后:GCC上的-O0 -p -pg -Wall -c和MinGW链接器上的-p -pg,eclipse插件gprof显示没有结果.之后,我使用gprof my.exe gmon.out > prof.txt进行了cmd调用,结果报告仅包含对函数的调用次数. Flat profile: Each sample counts as 0.01 seconds. no time
..
我需要测量C ++程序的时间,尤其是某些递归函数的整体运行时间.其他函数内部有很多函数调用.我的第一个想法是在实际代码中实现一些时间测量功能. gprof的问题在于,它会打印出数据类型的类运算符的时间,但我只需要有关功能的信息集,而"-f func_name prog_name"将无法工作. 那么,科学中最常用的测量数字程序时间的方法是什么? 是这样的: function2
..
我现在有一个要对其进行概要分析的项目,但是它使用了另一个我无法控制的库.如果有这样的功能,请说: #include void function(...) { // do something for (...) { // ... library_function(...); // ... }
..
我有这个程序,需要运行2.34秒,而gprof表示只需要1.18秒.我在其他地方读过答案,暗示如果程序受I/O约束,则gprof可能会出错,但是此程序显然不是. 对于我正在尝试分析的有用程序,也会发生这种情况.这并非特定于这个琐碎的测试用例. (在这种情况下,gprof还说main()占用了程序运行时间的100%以上,这是一个非常愚蠢的错误,但并没有真正给我造成问题.) $ ca
..
我需要在我们的系统中gprof一个库来检查函数调用,并查看是否可以对其进行优化.基本上,我拥有的是 使用共享库myLib.so的可执行文件A 我要gprof myLib.so.当我使用-pg选项编译myLib.so源代码时,它会生成一个.so文件. 但是,由于某种原因,针对该库重新编译可执行文件A并不会生成* .gmon文件.需要做什么?我应该静态链接myLib吗?如果是这样,请
..
我正在运行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
..
我一直将gprof探查器与g++结合使用. 我的代码中有一个函数,其中封装了行为的几个部分,这些部分与主要函数有足够的联系,以至于没有必要将它们拆分为各自的函数. 我想知道在这些代码的每个区域中花费了多少时间. 所以,如果您认为代码看起来像 function(){ A A A B B B C C C }
..