游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1793|回复: 4

类似下面的代码速度很慢是什么原因造成的?

[复制链接]

16

主题

154

帖子

309

积分

中级会员

Rank: 3Rank: 3

积分
309
发表于 2009-10-27 15:38:00 | 显示全部楼层 |阅读模式
//代码计算类似Alpha混合的效果.
for I := 0 to nCount - 1 do
begin
  nSour := Sour^;
  nDest := Dest^;
  ....  // 这里对nSour和nDest计算.
  Dest^ := nValue;  //nValue是计算出来的结果.
  
  Inc(Sour);
  Inc(Dest);
end;

在上面的代码里Dest^ := nValue; 这一句的速度非常慢,我发现程序大部分时间都浪费在这一句上了.
如果我屏蔽掉这句或者给他个随机的值比方Dest^ := random(10000);又或者不把计算出来的结果写入Dest^那么速度就很快,
这到底是上面原因造成的啊?

30

主题

422

帖子

433

积分

中级会员

Rank: 3Rank: 3

积分
433
发表于 2009-10-27 19:22:00 | 显示全部楼层

Re:类似下面的代码速度很慢是什么原因造成的?

读显存?

16

主题

154

帖子

309

积分

中级会员

Rank: 3Rank: 3

积分
309
 楼主| 发表于 2009-10-27 19:43:00 | 显示全部楼层

Re:类似下面的代码速度很慢是什么原因造成的?

不是.内存.

16

主题

154

帖子

309

积分

中级会员

Rank: 3Rank: 3

积分
309
 楼主| 发表于 2009-10-28 22:16:00 | 显示全部楼层

Re:类似下面的代码速度很慢是什么原因造成的?

我已经搞清楚原因了,原来是编译器优化的原因.

16

主题

154

帖子

309

积分

中级会员

Rank: 3Rank: 3

积分
309
 楼主| 发表于 2009-10-28 22:19:00 | 显示全部楼层

Re:类似下面的代码速度很慢是什么原因造成的?

代码我又用MMX重写了一下,速度提升了30%多,感觉还是不够理想..
另外哪里有SSE指令的文档啊.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-6-18 09:22

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表