1
5
我建议拍一组照片,其中 堆栈 是有用的。以下是更多信息: 如果你想花钱, Zoom 看起来是个不错的工具。 |
2
4
为了提高性能,你可以试一下callgrind,一个valgrind工具。这里是一个 nice article showing it in action . |
3
2
|
4
2
Allinea MAP 是Linux上C++和其他本机语言的剖析器。它得到了我雇主的商业支持。它有一个图形界面和源代码行级别的分析和配置文件代码,几乎没有减速,这使得它非常准确的在其他子系统的时间是相关的-如IO。 callgrind是有用的和准确的-但减速约5倍,所以我只能做较小的运行。它实际上可以计算一个函数被调用的次数,这对于理解渐近行为很有用。 |
5
1
用-pg编译,运行程序,然后使用gprof 使用-pg编译(和链接)会将分析代码和分析库添加到可执行文件中,然后生成一个名为gmon.out的文件,其中包含计时信息。gprof显示调用图及其(绝对和相对)计时。
见
|
7
1
如果您可以将应用程序带到FreeBSD、OS X或Solaris,则可以使用dtrace,尽管dtrace是一种面向分析师的工具——即,您需要驱动它——阅读:编写脚本。其他任何东西都不能提供您所需的粒度级别;dtrace不仅可以分析用户土地中函数调用的延迟,还可以跟踪上下文切换到内核中。 |
8
1
如接受的回答中所述, Zoom 可以做一些了不起的事情。我一直用它来理解线程行为,直到优化编译器生成的程序集。 |
9
0
使用说明-这里是gp和gproff http://www.ibm.com/developerworks/library/l-gnuprof.html |
10
0
正如前面提到的,FOSS的答案是使用-pg构建,然后使用gprof分析输出。如果它是一个产品/项目,有理由投入一些资金,我也会尝试使用IBM/Rationals Quantify Profiler,因为这样可以更容易地查看分析数据、向下钻取到行级别或在“10000英尺”级别查看它。 当然,可能有可用的gprof查看器可以做同样的事情,但我不知道有什么。 |
Community wiki · C中有哪些耗时的操作? 1 年前 |
Community wiki · 将所有处理器电源都投入到任务中 1 年前 |
Community wiki · C++为C添加了什么?[已关闭] 1 年前 |
Community wiki · 打印1到1000,不带循环或条件 1 年前 |