使用Qt应用程序的gprof

4
我需要帮助对我的C++ Qt应用程序进行目标上的性能分析,包括内存使用和CPU负载。有人推荐了gprof,但似乎无法使用。这是我尝试遵循的指南:

我将这些标志添加到了我的.pro文件中。

QMAKE_CXXFLAGS+=-pg
QMAKE_LFLAGS+=-pg

但是当我执行程序时,找不到gmon.out文件?!

有人可以给我一个逐步的示例,告诉我应该怎么做吗?


这里是另一个要跟随的链接 - Mike Dunlavey
3个回答

2

尝试:

QMAKE_CXXFLAGS_DEBUG *= -pg
QMAKE_LFLAGS_DEBUG *= -pg

改为:

QMAKE_CXXFLAGS += -pg
QMAKE_LDFLAGS += -pg

还有这个要记住:

CONFIG += debug

我曾经也遇到过同样的问题,这种方法对我有效。希望它能帮到你!


1

0

我正在使用GNU c++编译器为ARM CPU运行在iMX-7嵌入式设备上的代码进行性能分析。我已经尝试了那个建议,它起作用了:

QMAKE_CXXFLAGS *= -pg
QMAKE_LFLAGS *= -pg

然而,gprof 输出分析显示了11个循环(递归调用),但实际上并不存在。

在编译时添加更多的调试信息(-Og)将循环计数从11减少到7。虽然仍不完美,但剩下的循环是无害的:

QMAKE_CXXFLAGS *= -pg
QMAKE_CXXFLAGS += -Og
QMAKE_LFLAGS *= -pg

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接