我有一个程序想用gprof进行概要分析。问题(表面上)是它使用套接字。所以我得到这样的东西:::select():Interruptedsystemcall我不久前遇到了这个问题,放弃了,继续前进。但我真的很想能够分析我的代码,如果可能的话使用gprof。我能做什么?我缺少gprof选项吗?socket选项?在这些类型的系统调用存在的情况下,gprof是否完全无用?如果是,是否有可行的替代方案?编辑平台:Linux2.6(x64)海湾合作委员会4.4.1gprof2.19 最佳答案 不管profiler如何,socket代码都需要处
我的理解是默认情况下gprof会考虑CPU时间。有没有办法让它根据挂钟时间进行分析?我的程序执行大量磁盘i/o,因此它使用的CPU时间仅代表实际执行时间的一小部分。我需要知道磁盘i/o的哪些部分占用的时间最多。 最佳答案 您可以使用profiler测量挂钟时间来自谷歌性能工具。要将googleprofiler切换到挂钟模式,请设置环境变量CPUPROFILE_REALTIME=1。 关于c++-让gprof根据挂钟时间进行分析?,我们在StackOverflow上找到一个类似的问题:
在尝试优化代码时,我对kcachegrdind和gprof生成的配置文件的差异感到有点困惑。具体来说,如果我使用gprof(使用-pg开关编译等),我有这个:Flatprofile:Eachsamplecountsas0.01seconds.%cumulativeselfselftotaltimesecondssecondscallsms/callms/callname89.623.713.712046260.020.02objR::R_impl(std::vector>const&,std::vector>const&)const5.563.940.23180181800.000.0
我正在尝试分析一些c++代码,使用g++编译,包括选项-pg,使用gprof。然而,尽管该程序在我的计算机上运行需要10-15分钟(CPU已满),但gprof生成的表格的%time、cumulativeseconds和selfseconds列完全是0.00s!calls列包含看起来正确的数据,例如超过150,000次对基本函数的调用。以下是所收集数据的示例:%cumulativeselfselftotaltimesecondssecondscallsTs/callTs/callname0.000.000.001560120.000.00perm::operator[](int)cons
背景我有一个计算密集型程序,我试图在单个super计算机节点上运行。以下是super计算机上其中一个节点的规范:操作系统:Redhat6Enterprise64位CPU:Intel2x6核2.8GHz(12核)--缓存12MBRAM:24GB@????MHz(没有sudo权限来检查dmidecode)我还在我的MacBook上运行的Ubuntu虚拟机上测试了这个程序:操作系统:Ubuntu13.1064位CPU:Intel4x2.30GHz(4核)--缓存6MB内存:3GB@1600MHz该程序是在两台机器上使用相同版本的gcc构建的。但是,对于程序的简化测试运行,在super计算机上
当我在我的C程序上运行gprof时,它说我的程序没有累积时间,并显示所有函数调用的时间为0。但是它确实计算了函数调用。我如何修改我的程序,以便gprof能够计算运行所需的时间? 最佳答案 编译的时候有没有指定-pg?http://sourceware.org/binutils/docs-2.20/gprof/Compiling.html#Compiling编译后,运行程序,然后在二进制文件上运行gprof。例如:测试.c:#includeintmain(){inti;for(i=0;i编译为cc-pgtest.c,然后运行a.o
我正在尝试使用gprof来分析我编写的C++应用程序,但我终其一生都无法弄清楚如何下载和安装它。我搜索了所有我能想到的东西,甚至找不到下载链接。有人请帮忙! 最佳答案 gprof似乎有两个组件。一个是GCC编译器本身的一部分,使用-pg参数调用。另一个是gprof命令,apparently是GNUbinutils的一部分。我会留给你弄清楚如何在OSX上安装GCC和binutils... 关于c++-如何在OSX上安装gprof,我们在StackOverflow上找到一个类似的问题:
我正在尝试在运行OSX10.5.7的机器上使用gprof分析C++应用程序。我以通常的方式使用g++编译,但使用-pg标志,运行应用程序并尝试使用gprof查看调用图。不幸的是,我的调用图包含所有时间列的全零。“被调用”列中的值具有合理的值,因此看起来像是对某些内容进行了分析,但我对缺乏其他数据感到困惑。我所有的源文件都以类似的方式编译:g++-pg-O2-DNDEBUG-I./-ansi-c-oScenarioLoader.oScenarioLoader.cpp然后我运行“ar”将所有目标文件捆绑到一个库中。后来,我这样链接并运行gprof:g++-pg-lm-ovrpalonevr
我曾经使用gprof进行所有Linux分析。.但是,对于我的多线程应用程序,它的输出似乎不一致。现在,我把这个挖出来了:http://sam.zoy.org/writings/programming/gprof.html但是,这是很久以前的事了,在我的gprof输出中,我的gprof似乎列出了非主线程使用的函数。所以,我的问题是:在2010年,我可以轻松地使用gprof来分析多线程LinuxC++应用程序吗?(Ubuntu9.10)我还应该使用哪些其他工具进行分析? 最佳答案 编辑:添加了另一个answer在穷人的分析器上,恕我直言
我曾经使用gprof进行所有Linux分析。.但是,对于我的多线程应用程序,它的输出似乎不一致。现在,我把这个挖出来了:http://sam.zoy.org/writings/programming/gprof.html但是,这是很久以前的事了,在我的gprof输出中,我的gprof似乎列出了非主线程使用的函数。所以,我的问题是:在2010年,我可以轻松地使用gprof来分析多线程LinuxC++应用程序吗?(Ubuntu9.10)我还应该使用哪些其他工具进行分析? 最佳答案 编辑:添加了另一个answer在穷人的分析器上,恕我直言