开启左侧

For 循环优化及一些心得

[复制链接]
etthink 发表于 2010-5-23 03:56:33 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
Lets see the different between these two codes below first:
code1:
for(var i:int = 0; i < Bitmap.height; i++) {
     for(var j:int = 0; i < Bitmap.width; j++) {
         //codes here
     }
}
code2:
var w:uint = Bitmap.width;
var h:uint = Bitmap.height;
for(var i:uint = 0; i < h; ++i) {
     for(var j:uint = 0; i < w; ++j) {
         //codes here
     }
}
看起来好像没什么不同,其实有几个区别优化了执行速度:
1,保存下了Bitmap.width,Bitmap.height,避免了每次循环判断时Bitmap去请求查询width,height
2,大于0的数(如i,j)使用uint类型
3,使用++i而不是i++

总结:
这些小技巧可能大多数情况下没有大作用的,对,是没有大作用的,所以常常被很多人忽略。除非你自写3D引擎或者其他一些很耗费CPU的算法(例如几万,几十万的Loop)。
但是这却恰恰是一名好的程序员不可忽略的:
1,程序员要能有应用层面的能力。但是也不能缺乏机器层面的认知。
2,从代码角度来说:时刻注意自己使用的是复杂类型还是简单类型,复杂类型用起来的确很方便,但是这个方便是以牺牲系统资源为代价的,所以能省就省。(举一个例子是Point类,用来保存x,y是很直观方便,但是这个方便的同时,你也被迫使用了他里面封装的计算距离等等的一系列属性方法,还有他父类的属性方法)。
积少成多,每一行每一句的优化,对语言的深刻理解,都是从小处做起。
学教育技术,上教育技术论坛!http://www.etthink.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


11关注

462粉丝

7845帖子

推荐阅读更多+
会员达人更多+
广告位

最新信息

更多+

关注我们:教育技术人

官方微信

官方微博

教育技术热线:

13955453231

学教育技术,上教育技术论坛!

教育技术论坛征稿范围:教育技术应用案例、教程文章、优秀作品等。

Email:sf@etthink.com

Copyright   ©2007-2026  应用思考-教育技术论坛  Powered by©Discuz!  技术支持:且行资源    ( 皖ICP备10014945号-4 )