小编use*_*125的帖子

使用g ++ 4.7,Lambda更慢 - 使用g ++ 4.6更快

我使用的是g ++ 4.7,因为它是g ++的最新版本之一,它是第一个增加真正支持的版本c++11.

出于测试目的,我正在考虑采用代码 从这里.

您可以在此处找到完整的源代码.

我将此源命名为lambda.cpp,并使用以下命令编译它:

g++-4.6 -std=c++0x lambda.cpp -o lambda46

g++-4.7 -std=c++11 lambda.cpp -o lambda47
Run Code Online (Sandbox Code Playgroud)

当涉及到lambda性能时,lambda47可执行文件比lambda46慢约半秒,令人惊讶的是迭代器部分通常比lambda46快.

我也试过用

g++-4.7 -std=c++0x lambda.cpp -o lambda47-0x
Run Code Online (Sandbox Code Playgroud)

但基本上g ++ - 4.6总是生成比g ++ - 4.7更快的代码.

这是一种常见的行为,还是一个错误?

有一个编译器可以用C++ 11更好地执行?


g ++ - 4.7它已经编译好了

配置为:../ src/configure -v --with-pkgversion ='Ubuntu/Linaro 4.7.2-4precise1'--with-bugurl = file:///usr/share/doc/gcc-4.7/README.错误--enable-languages = c,c ++,go,fortran,objc,obj-c ++ --prefix =/usr --program-suffix = -4.7 --enable-shared --enable-linker-build-id - with-system-zlib --libexecdir =/usr/lib --without-included-gettext --enable-threads = posix --with-gxx-include-dir =/usr/include/c ++/4.7 --libdir =/usr/lib --enable-nls --with-sysroot =/--enable -clocale = gnu …

lambda g++ performance-testing

6
推荐指数
1
解决办法
498
查看次数

标签 统计

g++ ×1

lambda ×1

performance-testing ×1