小编mav*_*ick的帖子

Mac和相对强大的桌面之间令人费解的性能差异

编写这段代码的初衷是测量整个数组由函数操作而不是操作数组的各个元素时的性能差异.

即比较以下两个陈述:

function_vector(x, y, z, n); 
Run Code Online (Sandbox Code Playgroud)

VS

for(int i=0; i<n; i++){
        function_scalar(x[i], y[i], z[i]);
}
Run Code Online (Sandbox Code Playgroud)

function_*一些实质但相同的计算在哪里.

随着-ffast-math开机后,标版本大约是2倍快上我已经测试在多台机器.

然而,令人费解的是两台不同机器上的时序比较,两者都使用gcc 6.3.0:

# on desktop with Intel-Core-i7-4930K-Processor-12M-Cache-up-to-3_90-GHz
g++ loop_test.cpp -o loop_test -std=c++11 -O3
./loop_test 
vector time = 12.3742 s
scalar time = 10.7406 s

g++ loop_test.cpp -o loop_test -std=c++11 -O3 -ffast-math
./loop_test 
vector time = 11.2543 s
scalar time = 5.70873 s


# on mac with Intel-Core-i5-4258U-Processor-3M-Cache-up-to-2_90-GHz
g++ loop_test.cpp -o loop_test -std=c++11 -O3
./loop_test 
vector time = 2.89193 s
scalar …
Run Code Online (Sandbox Code Playgroud)

c++ performance c++11

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

标签 统计

c++ ×1

c++11 ×1

performance ×1