【问题标题】:Linux Eclipse CDT profilerLinux Eclipse CDT 分析器
【发布时间】:2013-07-05 00:14:19
【问题描述】:

我在 Linux 下使用 Eclipse CDT,谁能推荐一个在那个环境下好的分析器。

我也是 C++ 和多线程编程的新手,谁能提供一些关于如何为多线程应用程序运行分析的建议,例如,寻找性能瓶颈等。

谢谢。

【问题讨论】:

    标签: linux eclipse profiling profiler eclipse-cdt


    【解决方案1】:

    我不知道这是否是最佳选择,但它绝对是显而易见的:gprof。您只需要正确设置编译开关(在项目属性 -> c/c++ 构建 -> 设置 -> 调试中为该项目启用 gprof (-pg))。 当您使用此选项编译程序后,您需要运行它(直到正常退出)。这将生成配置文件 (gmon.out)。 您可以在 Eclipse 中安装其他插件,它可以可视化 gmon.out 的内容(转到帮助 -> 安装 -> Linux 工具 -> GProf 集成)。安装该插件后,只需像打开任何其他文件一样打开生成的 gmon.out 文件。

    【讨论】:

    • 关于 GProf(可能还有其他工具)需要注意的一点是,如果您使用 Ctrl-C 关闭应用程序(就像通常关闭他编写的服务器一样),那么 gmon.out 文件将不写。
    • 这里是stackoverflow.com/questions/1030829/… 相关问题。有人指出,如果像 stdc++ 这样的依赖库之一是在没有 -pg 的情况下构建的,则无法收集时序信息。是真的吗?
    【解决方案2】:

    如 dbrank0 所述,您需要为该项目设置编译选项 (-pg)。转到项目属性 -> c/c++ 构建 -> 设置 -> C++ 编译器 -> 调试并检查 生成 gpof 信息。当你编译程序(test_prof.c)时,你会得到一个 exe 文件(在我们的例子中是 test_prof)。

    $ ls
    test_gprof  test_gprof.c
    

    当你运行它时,会在同一目录下生成一个 gmon.out 文件。

    $ ls
    gmon.out  test_gprof  test_gprof.c
    

    gprof 工具使用可执行文件名和上面生成的“gmon.out”作为参数运行。这将生成一个分析文件,其中包含所有所需的分析信息。

    $  gprof test_gprof gmon.out > analysis.txt
    

    将生成一个名为“analysis.txt”的文件,其中包含所有配置文件信息,并且可以轻松读取。 更多详情请查看http://www.thegeekstuff.com/2012/08/gprof-tutorial/

    【讨论】:

    • 嗨 Umair,这是stackoverflow.com/questions/1030829/… 相关问题。有人指出,如果像 stdc++ 这样的依赖库之一是在没有 -pg 的情况下构建的,则无法收集时序信息。请您确认或反驳这一点吗?
    猜你喜欢
    • 1970-01-01
    • 2011-07-29
    • 2012-05-31
    • 2016-12-05
    • 1970-01-01
    • 2012-01-18
    • 2015-09-22
    • 2019-04-26
    • 1970-01-01
    相关资源
    最近更新 更多