【发布时间】:2017-12-29 22:38:43
【问题描述】:
g++ 版本为 5.3.0。
#include <algorithm>
int main() {
return 0;
}
test$ time g++ test.cpp
real 0m0.203s
user 0m0.073s
sys 0m0.031s
test$ time g++ test.cpp --std=c++11
real 0m0.761s
user 0m0.554s
sys 0m0.130s
多次尝试的结果相似。仅包含矢量标头的小幅减速(0.03s)。
【问题讨论】:
-
如果解析器速度较慢......或者字节码的创建会很有趣。
-
不知道为什么你会期望结果是相似的,tbh。除了解析 C++11 代码的额外复杂性之外,C++11 中的算法库中还添加了许多函数(参见:en.cppreference.com/w/cpp/algorithm)。
-
在 Ubuntu 17.04 上使用 g++ 6.3.0,我尝试了
g++ -E -std=c++NN c.cpp用于 NN = 98、11、14、17。(这会将预处理的输出转储到标准输出。)输出为 9255、15746、分别为 16198 和 16245 行。这解释了一些差异,但不一定是幅度。 -
使用g++ 6.3.0,我看不出编译时间有很大差异。
标签: c++11 g++ stl-algorithm