VC中如何对循环作优化?

Greaitm 2003-12-21 07:52:05
在VC中如何让循环作并行处理或向量化的优化?
...全文
59 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
Greaitm 2004-03-04
  • 打赏
  • 举报
回复
不要怪我 这里的论坛催着要结贴了.
Greatim 2004-03-04
  • 打赏
  • 举报
回复
就算抢分也不要答非所问嘛.
Greaitm 2004-01-15
  • 打赏
  • 举报
回复
如何让循环作并行处理或向量化的优化?
oyd 2004-01-12
  • 打赏
  • 举报
回复
这是一个提高2倍速的例子

func1(size_t n)
{
int a;
size_t i;
for(i = 0; i < n; i++)
{
a = 0;
}
}
func2(size_t n)
{
int a;
int d = n%8;
int i = n/8;
switch(d)
{ do{
case 7: a = 0;
case 6: a = 0;
case 5: a = 0;
case 4: a = 0;
case 3: a = 0;
case 2: a = 0;
case 1: a = 0;
case 0: a = 0;
default: ;
}while(--i != 0);
}
}
int main()
{
int i,j,k;
size_t n = 1000000000;
i = GetTickCount();
func1(n);
j = GetTickCount();
func2(n);
k = GetTickCount();

printf("%d,%d\n",j-i,k-j);
}
漫长的等待后打印出
21711,7842
差不多2.8倍。
如果加大case分支数,可以得到更好的效果

oyd 2004-01-12
  • 打赏
  • 举报
回复
我有一个办法可以极大的优化循环语句,根据情况的不同,优化速度达到2至10倍不等。
yjh1982 2004-01-12
  • 打赏
  • 举报
回复
!!
Greaitm 2004-01-12
  • 打赏
  • 举报
回复
线程是不能优化循环的 离题太远了吧!请先看我以上所说的网页
bm1408 2004-01-06
  • 打赏
  • 举报
回复
我同意二楼的!
如果真的想要优化一段程序,这个优化指的是代码程序的优化,线程是个好的办法!
Greaitm 2004-01-06
  • 打赏
  • 举报
回复
欢迎大家一起讨论
Greaitm 2003-12-23
  • 打赏
  • 举报
回复
就这样而已吗?
向下面文章里面的优化 在VC里该怎么实现?
还有,Intel的编译器是不是收费的?
http://www.csdn.net/develop/Read_Article.asp?Id=18378
Caoyu015 2003-12-23
  • 打赏
  • 举报
回复
for( int ix = 1; ix <= 5; ix++ )
{
float fx = ix * 3.14.59;
sum += fx; //这里可能会出现先写后读相关,并行程度不会很高,就算能机器可以自动
//优化也是利用内存读推迟或者是通过相关专用单元来解决。而且循环会增加预判的不确定性。
}

sum += 3,14159 + 2 * 3.14159 + 3 * 3.14159 + 4 * 3.14159 + 5 * 3.14159;
如果浮点加是+6的时间作完,那么该表达式的计算的时间是, +6--》流水线建立时间,
以后每过+1出来一个浮加结果,6 + 5 = 11,忽略取指和操作数送运算单元的时间。
想不出好的例子,以前看过的书上有一些好的例子。
Greaitm 2003-12-22
  • 打赏
  • 举报
回复
举个例子?
Caoyu015 2003-12-21
  • 打赏
  • 举报
回复
将减少循环次数,将某些地方拆分开来用手工来优化,只要每条语句之间没有相关性,并行性
就很高了。



daizh 2003-12-21
  • 打赏
  • 举报
回复
可以用单独的线程来处理循环。

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧