gpt4 book ai didi

c++ - 计数 Solaris 上的函数调用

转载 作者:行者123 更新时间:2023-11-30 03:40:38 25 4
gpt4 key购买 nike

我目前正在使用 collectanalyser 在 Solaris 上分析 C++ 应用程序,但我只能看到每个函数花费的秒数。

如何查看每个函数被调用的次数?

我应该在命令行中添加任何选项来启用计数器吗?还是我应该使用不同的工具?

最佳答案

collect 命令不是这样工作的 - 它采样正在运行的可执行文件以获取它收集的调用堆栈数据。

您需要compile with -xpg并在生成的输出数据文件上使用 profgprof

像这样的 dtrace 脚本也会收集函数调用计数:

计数函数.d:

pid$target:::entry
{
@[ probefunc ] = count();
}

然后运行:

dtrace -s countfuncs.d -c your_program ...

根据我的经验,计算一个函数被调用的次数并不重要 - 重要的是在任何函数上花费了多少时间(CPU 或挂钟)。如果一个函数占用了你 90% 的执行时间,那就是你花精力优化性能的地方,无论该函数被调用一次还是数十亿次。如果一个函数占用了 0.001% 的执行时间,那么无论它被调用多少次,您都不会理会它。

关于c++ - 计数 Solaris 上的函数调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37875997/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com