linux系统开方,不同编译器下系统开方运算性能测试(已更新Linux版测试)

前两天看到一篇文章提到了用MagicNumber来做神奇的导数开方运算,于是我打算试一试测试系统的函数的性能

C

#include "stdafx.h"

#include

#include

#define MAX_SIZE 100000000

double data[MAX_SIZE];

void test() {

for (int i = 0; i < MAX_SIZE; i++) {

data[i] = sqrt(i);

}

}

int main()

{

int t1 = clock();

test();

printf("%ld ms", clock() - t1);

getchar();

for (int i = 0; i < MAX_SIZE - 1; i++) {

data[i] = data[i + 1];

}

return 0;

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26#include "stdafx.h"

#include

#include

#define MAX_SIZE 100000000

doubledata[MAX_SIZE];

voidtest(){

for(inti=0;i

data[i]=sqrt(i);

}

}

intmain()

{

intt1=clock();

test();

printf("%ld ms",clock()-t1);

getchar();

for(inti=0;i

data[i]=data[i+1];

}

return0;

}

以上这段简短的程序就是我写的来测试性能的代码。注意:后面的的重写这个数组是为了防止编译器优化把计算的循环给优化掉。

测试机器是我的笔记本CPU:Intel i73517U  @2.7GHz

内存:16G DDR3L 1600Mhz

性能测试的时候为了准确使用了Intel的性能调试工具,没有使用程序输出的数值。编译全部是windows平台,gcc使用mingw环境。都是debug模式开O2优化,x64代码。

VS 2015:557.943ms

CLang 3.7:605.040ms

icc 16.0:762.681ms

gcc 5.2.0:1269ms

附加测试:Linux上的性能测试。有朋友说我的测试都是Windows平台,Linux平台下面g++可能性能会更好,于是我有做了另一个测试

测试机器是我的一台服务器CPU Xeon E5-2603 x2 @ 1.80 GHz

内存:16G

由于服务器上没有Intel的性能调试工具的授权,所以使用系统函数来测试时间。系统是Ubuntu

CLang 3.4 :1020.149ms

gcc 4.8.4:1355.673ms

所以可以看出来在Linux系统下面gcc的性能有所提升,但是仍然比不了clang

×用微信扫描并分享

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值