分析使用插件的 Qt 应用程序

发布于 2024-07-09 12:51:13 字数 274 浏览 4 评论 0原文

我有一个使用 Qt 用 C++ 编写的中型应用程序。 我想分析一些东西,看看我的性能最低的代码在哪里,所以我用 -pg 编译了所有内容。

然而,我的应用程序使用了很多使用 QTPlugin 机制的插件(归结为每个插件的实例对象的 dlopen 和 dlsym)。 我注意到 gprof 似乎不包含插件的功能。

是的,插件也是用 -pg 等编译的。 我需要做什么特别的事情才能对所有内容进行分析吗? 或者我错过了一些简单的事情?

I have a medium sized application written in c++ using Qt. I wanted to profile things to see where my least performant code was so I compiled everything with -pg.

However, my application makes use of a lot of plugins using the QTPlugin mechanism (boils down to a dlopen and a dlsym of a instance object per plugin). I've noticed that gprof doesn't seem to include functions from plugins.

Yes, the plugins are also compiled with -pg and all that. Is there anything special I have to do get everything profiled? Or am I missing something simple?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

柳絮泡泡 2024-07-16 12:51:13

如果你可以使用它,我认为Valgrind的 callgrind只需要调试符号(-g)来分析代码。 不过,我不确定它是否适用于动态链接的对象。

If you can use it, I think Valgrind's callgrind only needs debug symbols (-g) to profile code. I'm not sure if it works with dynamically linked objects, though.

榆西 2024-07-16 12:51:13

正如斯特拉格所说,Valgrind(以 kcachegrind 作为查看器的 callgrind)是一个不错的选择。 您还可以尝试使用 http://oprofile.sourceforge.net/

Valgrind(callgrind with kcachegrind as a viewer) is a good choice as strager said. You can also try using http://oprofile.sourceforge.net/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文