小编Ale*_*ika的帖子

与 GCC 5 相比,使用 GCC 9 编译的 STLpriority_queue 性能较慢

对于我的项目,我从 GCC 5 切换到 GCC 9,发现性能变得更差。我做了一些调查并提出了一个简单的源代码来重现该行为。

我在同一台机器上使用不同的 GCC 版本(g++-5 和 g++-9)编译代码

#include <queue>

int main()
{
        std::priority_queue<int> q;
        for (int j = 0; j < 2000; j ++) {
                for (int i = 0; i < 20000; i ++) {
                        q.emplace(i);
                }
                for (int i = 0; i < 20000; i ++) {
                        q.pop();
                }
        }
        return 0;
}
Run Code Online (Sandbox Code Playgroud)

当我使用 GCC 5 编译它时,我得到以下计时:

# g++-5 -std=c++14 -O3 main.cpp
# time ./a.out

real    0m1.580s
user    0m1.578s
sys     0m0.001s
Run Code Online (Sandbox Code Playgroud)

对 GCC 9 …

c++ performance gcc priority-queue compiler-optimization

11
推荐指数
1
解决办法
312
查看次数