[英]Why does g++ take much longer to compile <algorithm> with -std=c++11?
g ++版本是5.3.0。
#include <algorithm>
int main() {
return 0;
}
测试$时间g ++ test.cpp
real 0m0.203s
user 0m0.073s
sys 0m0.031s
测试$时间g ++ test.cpp --std = c ++ 11
real 0m0.761s
user 0m0.554s
sys 0m0.130s
在多次尝试中,结果相似。 包含向量标头的情况只有很小的降低(0.03s)。
直接的答案是,显然还有更多的要编译。 使用-Q -ftime-report
GCC将打印出配置文件统计信息。 请记住,左边的部分并不可靠,因为每次您运行命令时它都会更改,但是TOTAL始终是一致的。 分别针对C ++ 03和C ++ 11:
Execution times (seconds)
phase setup : 0.00 ( 0%) usr 0.00 ( 0%) sys 0.00 ( 0%) wall 1189 kB (16%) ggc
phase parsing : 0.03 (100%) usr 0.02 (100%) sys 0.06 (100%) wall 6301 kB (83%) ggc
preprocessing : 0.01 (33%) usr 0.01 (50%) sys 0.04 (67%) wall 488 kB ( 6%) ggc
parser (global) : 0.00 ( 0%) usr 0.01 (50%) sys 0.00 ( 0%) wall 3626 kB (48%) ggc
parser struct body : 0.02 (67%) usr 0.00 ( 0%) sys 0.01 (17%) wall 778 kB (10%) ggc
parser function body : 0.00 ( 0%) usr 0.00 ( 0%) sys 0.01 (17%) wall 436 kB ( 6%) ggc
TOTAL : 0.03 0.02 0.06 7558 kB
Execution times (seconds)
phase setup : 0.00 ( 0%) usr 0.00 ( 0%) sys 0.00 ( 0%) wall 1384 kB (11%) ggc
phase parsing : 0.05 (100%) usr 0.03 (100%) sys 0.10 (100%) wall 10953 kB (88%) ggc
|name lookup : 0.00 ( 0%) usr 0.01 (33%) sys 0.01 (10%) wall 1301 kB (10%) ggc
preprocessing : 0.01 (20%) usr 0.00 ( 0%) sys 0.03 (30%) wall 878 kB ( 7%) ggc
parser (global) : 0.01 (20%) usr 0.01 (33%) sys 0.01 (10%) wall 4592 kB (37%) ggc
parser struct body : 0.02 (40%) usr 0.00 ( 0%) sys 0.01 (10%) wall 2837 kB (23%) ggc
parser function body : 0.01 (20%) usr 0.01 (33%) sys 0.01 (10%) wall 478 kB ( 4%) ggc
parser inl. meth. body : 0.00 ( 0%) usr 0.01 (33%) sys 0.03 (30%) wall 937 kB ( 8%) ggc
symout : 0.00 ( 0%) usr 0.00 ( 0%) sys 0.01 (10%) wall 0 kB ( 0%) ggc
TOTAL : 0.05 0.03 0.10 12490 kB
那是12490 - 7558 = 4942 KB
的差异,相差不大。 现在,为什么在GCC 5.3.0
有如此大的差异,这是一个QoI问题,可能已在以后的版本中修复。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.