C++ main 仅使用 ~20% 的时间说 gprof

标签 c++ gprof

我尝试使用 gprof 分析我的 C++ 程序。该程序本身运行了大约 53 秒,所以我不明白为什么它说,main 只运行了大约 8.29 秒。有什么解释吗?

摘录如下:

index % time    self  children    called     name
                                                 <spontaneous>
[2]     20.5    0.00    8.29                 main [2]
                0.00    8.28       1/1           MPQS::start(std::basic_ofstream<char, std::char_traits<char> >&) [3]
                0.00    0.01       1/1           MPQS::MPQS(NTL::ZZ, long) [36]
                0.00    0.00       1/1           MPQS::~MPQS() [78]
-----------------------------------------------
                0.00    8.28       1/1           main [2]
[3]     20.5    0.00    8.28       1         MPQS::start(std::basic_ofstream<char, std::char_traits<char> >&) [3]
                7.15    1.08     801/801         MPQS::sieve() [4]
                0.00    0.04     801/801         MPQS::find_smooth_vals() [23]
                0.01    0.00       1/1           MPQS::try_solutions(NTL::mat_GF2&) [35]
                0.00    0.00     801/801         MPQS::compute_coeffecients() [59]
-----------------------------------------------
                7.15    1.08     801/801         MPQS::start(std::basic_ofstream<char, std::char_traits<char> >&) [3]
[4]     20.4    7.15    1.08     801         MPQS::sieve() [4]
                1.08    0.00     801/801         MPQS::find_candidates() [9]

最佳答案

您是否将结果打印到控制台? gprof 不计算阻塞时间。 See this.

关于C++ main 仅使用 ~20% 的时间说 gprof,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3180416/

相关文章:

c++ - 匹配参数未知时如何使用 RE2 库

c++ - 我的程序配置文件中的顶级项目是 _Unwind_SjLj_Unregister 和 _Unwind_SjLj_Register 是件好事吗?

linux: 有什么工作是 "gprof"可以做而 "perf"不能做的吗?需要澄清

c++ - 当需要数组时,将指针传递给 vector 中的第一个元素是否安全?

c++ - iPhone/iPad C++ 示例

c++ - 扩大堆大小C++

c++ - 为什么GL_MAX_UNIFORM_BLOCK_SIZE的值会改变?

c - 如何让gcc为gprof生成信息?

g++ - 如何使用 cmake 设置 g++ 的标志,以便 gprof 可以破坏?