0

我正在使用 gperftools 来分析我的 C++ 代码,最大的节点是__GI___poll. 它由低级 Qt 和 OpenCL 代码(主要是 Qt)调用,因此从我自己的代码中删除了几个步骤。我的猜测是,这只是一个通用的“等待事件”功能,但我的搜索努力却白费了。

这个函数是什么,我的代码在这里花费了这么多时间,它可以说明什么?

4

1 回答 1

0

__GI___poll只是对系统调用的调用poll()

为什么你的代码中有这个函数?

QCoreApplication::processEvents()linux 上的调用又QEventDispatcherGlib::::processEvents()调用 glib 的g_main_context_iteration(). 如果事件被分派,此函数返回 true,否则它可以阻塞直到事件被分派。这可能意味着您正在手动旋转事件循环,该循环并没有做很多事情,而是在等待事件,并且您可能有一个正在运行的侧线程,其中正在发生实际的事情。

于 2020-11-27T17:45:18.760 回答