【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】
2、 在编写的代码的时候,我们强调需要对循环首先进行循环内部的计算,然后进行循环外面的计算。在此,我们可以进行下面一个测试:
void loop_analyse()
{
int m = GetTickCount();
int inner = 0;
int outer = 0;
for(outer = 0; outer < 1000; outer ++)
{
for (inner = 0; inner < 1000; inner ++)
{
a[outer][inner] = inner;
}
}
printf("%d\n", GetTickCount() - m);
m = 0;
for(inner = 0; inner < 1000; inner ++)
{
for (outer = 0; outer < 1000; outer ++)
{
data[outer][inner] = inner;
}
}
printf("%d\n", GetTickCount() - m);
}
我们在VC6.0上面的测试结果是31、64。原因就是我们的数据在内存中间是按照先内存,然后再按照外层的顺序排列的。如果在计算的时候,我们首先使用了内部的数据,那么在cpu cache命中率上就会很高。相反,如果按照outer进行数据的遍历的话,那么就需要进行数据的不停跳转,在cpu cache上面也需要不停地进行刷新。在一旦cpu的cache命中率下降,就会重新将数据从内存加载到cpu的cache上面。等到循环得到一定的积累之后,就会在时间的运算上面发生很大的变化。两者之间的运行效率差异就会变得非常明显。
3、尽可能在循环的时候只运行本层的数据,我们可以做下面一个测试用例。
int data1[10000000] = {0,1};
int data2[10000000] = {0,1};
void loop_layer_test()
{
int m = GetTickCount();
int outer = 0;
int inner = 0;
for(outer = 0; outer < 10000000; outer ++)
{
data1[outer] = outer;
data2[outer] = outer;
}
printf("%d\n", GetTickCount() - m);
m = GetTickCount();;
for(inner = 0; inner < 10000000; inner ++)
{
data1[inner] = inner;
}
for(outer = 0; outer < 10000000; outer ++)
{
data2[outer] = outer;
}
printf("%d\n", GetTickCount() - m);
}
在我的VC6.0测试的时候,两者的运行差别时间还是挺大的,有兴趣的朋友可以在自己的机器上面好好试一下,看看是不是效果显著。其实道理和上面的准则是差不多的,只不过我们这一次涉及的单层循环的东西,不过在本质上还是差别不是很大。
(待续)
分享到:
相关推荐
提高matlab代码运行效率.pdf
提高matlab代码运行效率
通过java源代码,详细描述了如何提高java运行效率,
.
1.代码优化 (1)用i1代替i=i 1符合c/c习惯效率还高 (2)尽可能使用PHP内部自己编写的前要详细查阅手册看有没有相关否则费力不讨好 (3)能使用单引号串尽量使用单引号串单引号串效率要高于双引号串 (4)用foreach代替...
。。。
。。。
适用于项目组内部C++编程规范,有利于提高代码质量和程序执行效率
但是这并不等于我们可以忽略程序的运行效率,下面就介绍一下本人积累的一些简单实用的提高程序运行效率的方法,希望对大家有所帮助。 一、尽量减少值传递,多用引用来传递参数。 至于其中的原因,相信大家也很清楚,...
主要介绍了PHP中几个可以提高运行效率的代码写法、技巧分享,本文分享的5个方法都是在细微之处有所不同,一定要认真仔细的去看代码哦,需要的朋友可以参考下
主要介绍了基于Numba提高python运行效率过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
VisualFortran程序运行速度的优化方法,大家都会遇到一些运行速度较长的问题吧,希望会对你有用!
一个有效实现ASP.NET web applications运行效率更高的程序源代码,采用C#进行开发,提供一个有效提高效率的类库代码,供大家学习!
优化通常包含两方面的内容:减小代码的体积,提高代码的运行效率。本文讨论的主要是如何提高代码的效率。在Java程序中,性能问题的大部分原因并不在于Java语言,而是在于程序本身。养成好的代码编写习惯非常重要,...
优化通常包含两方面的内容:减小代码的体积,提高代码的运行效率。 本文讨论的主要是如何提高代码的效率。 在 Java程序中,性能问题的大部分原因并不在于Java语言,而是在于程序本身。养成好的代码编写习惯非常重要...
快速提升Python的运行效率 1、GPU加速2、CPU加速2.1、定义函数2.2、jit加速2.3、运行 “佐佑思维”公众号有更多关于Python的小知识,欢迎交流! 亲测有效 1、GPU加速 利用多个GPU提升运行效率 #利用多个GPU加速 ...
优化通常包含两方面的内容:减小代码的体积,提高代码的运行效率。本文讨论的主要是如何提高代码的效率。 在Java程序中,性能问题的大部分原因并不在于Java语言,而是在于程序本身。养成好的代码编写习惯非常重要,...