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是很直观方便,但是这个方便的同时,你也被迫使用了他里面封装的计算距离等等的一系列属性方法,还有他父类的属性方法)。
积少成多,每一行每一句的优化,对语言的深刻理解,都是从小处做起。 |