百度空间 | 百度首页 
 
查看文章
 
测试循环展开的优化(ARM)
2009-08-09 10:49
/* test the loop unroling, by R.wen */
/* 循环展开可以避免小循环中,由于循环开销所占的比例过大造成的性能下降*/

#include <stdio.h>
#include <time.h>

int checksum(int num)
{
int i;
int sum1=0, sum2=0;

time_t t1, t2;

t1 = time(NULL);
for (i=num; i>0; i--)
sum1 += i;

t2 = time(NULL);
t1 = t2 - t1;
{
for (i=num/4; i>0; i--) {
sum2 += i;
sum2 += i+1;       
sum2 += i+2;
sum2 += i+3;
}

for (i=num&3; i>0; i--)
sum2 += i;
}

t2 = time(NULL) - t2;

printf("sum1 = %d, time1 = %d, sum2 = %d, time2 = %d\n", \
sum1, sum2, t1, t2);

return (sum1 + sum2);
}


int main(void)
{

checksum(100000000);   /* or use 10, 000, 000 */

return 0;

}

类别:c语言实践 | 添加到搜藏 | 浏览() | 评论 (0)
 
最近读者:
 
网友评论:
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码: 请点击后输入四位验证码,字母不区分大小写
      

     

©2009 Baidu