16

我在 Linux 下使用 Eclipse CDT,任何人都可以在那个环境下推荐一个好的分析器。

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

谢谢。

4

2 回答 2

14

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

于 2012-04-09T19:52:24.113 回答
3

正如 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/

于 2013-07-04T16:14:19.070 回答