- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对用 C/C++ 编写的代码测试某些函数调用的速度很感兴趣。我进行了搜索,并被指示使用带有 Callgrind 工具的 Valgrind 平台。
我已简要阅读 manual ,但我仍然想知道如何利用该工具的功能来评估我的函数运行时速度的时间。
我想知道我是否可以得到一些指导如何实现我的目标。
如有任何帮助,我们将不胜感激。
最佳答案
使用调试符号编译您的程序(例如,GDB 符号工作正常,使用“-ggdb”标志激活)。
如果你正在这样执行你的程序:
./program
然后使用 Valgrind+Callgrind 运行它,命令如下:
valgrind --tool=callgrind ./program
Callgrind 然后会生成一个名为 callgrind.out.1234 的文件(1234 是进程 ID,运行时可能会有所不同)。使用以下命令打开此文件:
cg_annotate callgrind.out.1234
您可能想使用 grep 来提取您的函数名称。在左栏中显示了用于该功能的指令数。不过,使用相对较少指令的函数将被忽略。
如果你想看到输出一些漂亮的图形,我建议你安装 KCachegrind。
关于c++ - Callgrind:如何使用 Callgrind 工具评估函数速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26722726/
我对用 C/C++ 编写的代码测试某些函数调用的速度很感兴趣。我进行了搜索,并被指示使用带有 Callgrind 工具的 Valgrind 平台。 我已简要阅读 manual ,但我仍然想知道如何利用
我想使用 callgrind 分析我的应用程序。现在,由于需要很长时间,同时我在同一台机器上继续进行网页浏览、编译和其他密集任务。 我对分析结果有偏差吗?我希望,由于 valgrind 使用模拟 CP
是否可以通过 Callgrind 的分析输出取回跟踪信息? 如果是,您能否解释一下这是如何完成的? [更新] 这可能是我的术语。使用 Kcachegrind 查看 Callgrind 分析结果时调用的
我正在分析我的代码,我已经找到了其中最昂贵的部分。但是它发生在内联函数中。为了衡量影响,我强制不内联该函数。 现在我想报告准确的分析数据。如果没有内联,我们会有巨大的开销(该函数基本上是一个循环,但它
我有一个带有内部循环的程序,由于它执行的迭代次数,它需要非常非常快。为了分析这段代码,我一直在使用 valgrind/callgrind。我发现它是一个很棒的工具。不幸的是,我在优化方面的努力使我不得
我正在使用 callgrind 来分析一个 linux 多线程应用程序,大部分情况下它运行良好。我在关闭仪器 (--instr-atstart=no) 的情况下启动它,然后在设置完成后,我通过 cal
我正在尝试通过消除我不关心的噪音和计算来分析(使用 Callgrind)我的代码的特定部分。这是我想做的一个例子: for (int i=0; i
我目前正在尝试分析和调试我正在使用的库的性能问题。为此,我写了一个简短的C++代码将使用该库的一些核心功能并在其上运行一个简单的计时器。 为了更深入地研究,我现在开始将 valgrind 与 --to
我想使用 valgrind 进行一些分析,因为它不需要重新构建程序。 (我想分析的程序已经用“-g”构建了) 但是 valgrind(callgrind) 很慢......所以这是我要做的: 启动服务
我的应用程序需要一个动态调用图。我用 callgrind 运行它工具( valgrind 套件)并得到 callgrind.out.xxxxx文件。现在,我想对这些数据进行图形表示。 KCacheGr
我想将 callgrind 的输出重定向到文件名 call_grind.txt ,但是当我尝试这样做时,会生成一个文件,但该文件内没有输出。 例如: valgrind --tool=callgrind
我想使用 Callgrind 来查找一些复杂的 Rcpp 代码中的瓶颈。由于我无法让它工作,所以我决定编写一个简单的 R 文件,以确保它能够正常工作。 但是,我仍然无法让它工作。 我的简单功能是: a
我正在尝试了解 Callgrind 配置文件格式。我找到了 online description 在遇到“扩展示例”之前,我认为自己理解得很好: events: Instructions fl=fil
我有一个 kcachegrind/callgrind 报告奇怪结果的模型代码。这是一种调度程序功能。调度员从 4 个地方调用;每个电话都说,实际do_J要运行的函数(所以 first2 将只调用 do
我正在尝试对 callgrind 的某些结果运行 KCacheGrind。基本上,代码库是一个插件容器,它启动共享对象以运行特定功能。使用 Callgrind 分析此应用程序后,我可以看到功能级别的成
抱歉,我无法创建一个最小的完整示例,因为问题只发生在相对较大的程序中,我不确定这本身就是一个“错误”,而不是对 callgrind 分析应该完成的误解. 我有一个大型程序,其运行时间被分成大约 50
我第一次尝试使用 Callgrind/Kcachegrind 来分析我的 C++ 应用程序,我注意到需要更多时间的两个函数是: (50% 自己)和 do_lookup_x(15% 自己) 现在,根据我
我正在生成多个进程并在每个进程中启动检测。当我尝试在进程退出之前停止检测时,检测程序似乎卡在 shell 中,就好像进程已经完成并且没有进程来停止检测。这是代码: from os import sys
Java 是否有一个免费 的 callgrind?基本上,我只需要任何能为我的 Java 代码的每个方法和函数提供周期计数或花费时间的东西。 我想我应该提一下我使用的是 mac,这意味着下面的 ecl
我正尝试在 GNU/Linux 上分析一个共享库,它进行实时音频处理,因此性能很重要。我运行另一个程序,将它连接到我系统的音频输入和输出,并使用 callgrind 对其进行分析。 查看 KCache
我是一名优秀的程序员,十分优秀!