1、用乘法來代替除法(當除數可轉化為有限數的時候)。比如var n:number = value *0.5;要比var n:number = value / 2;快。但差別並不是很大。只有在需要大量計算情況下,比如3d引擎中差別才比較明顯。
2、用位運算代替除2或乘2。比如10>>1要比10*2快,而10<<1要比10*2快。從測試來看位運算幾乎比乘除快一倍,但是一般情況下,我們不能選擇位運算,比如我們就不能用13>>1來代替13/2,儘管前者比後者運算速度更快,但2者的運算結果卻不一樣。所以還是要看具體情況。
3、用unit()或int()代替取整運算math.floor()和math.ceil()。比如var test:uint = uint(1.5);要比var test:number = math.floor(1.5);快;而var test:uint = uint(1.5)+1;要比var test:number = math.ceil(1.5);也快。如果是math.floor(),還可以用位運算(>>0)來代替。比如var test:uint =1.5>>0,比unit()或int()更快。
4、用乘-1來代替math.abs()方法。比如var nn:number = -23;var test:number= nn < 0 ? nn * -1 : nn;要比var nn:number = -23;var test:number = math.abs(nn);快。
當然還有更多的優化計算的方法。一般來說,低階運算要比高階運算速度;內部方法比呼叫其他方法速度快。另外要注意的是,這些方法有的時候可能並一定適用。
附上測試**:
1import
flash.utils.gettimer;23
var time:number
=gettimer();45
function rundivisiontest():
void612
13trace(
"divisiontest:
", (gettimer()
-time));14}
1516
function runmulttest():
void
1723
trace(
"multtest:
", (gettimer()
-time));24}
2526
function runbittest():
void
2733
trace(
"bittest:
", (gettimer()
-time));34}
3536
function runfloortest():
void
3744
trace(
"floortest:
", (gettimer()
-time));45}
4647
function runuinttest():
void
4855
trace(
"uinttest:
", (gettimer()
-time));56}
5758
function runceiltest():
void
5966
trace(
"ceiltest:
", (gettimer()
-time));67}
6869
function runuintceiltest():
void
7077
trace(
"uintceiltest:
", (gettimer()
-time));78}
7980
function runabstest():
void
8188
trace(
"abstest:
", (gettimer()
-time));89}
9091
function runabsmulttest():
void
9299
trace(
"absmulttest:
", (gettimer()
-time));
100101
}102
103rundivisiontest();
104105
runmulttest();
106107
runbittest();
108109
runfloortest();
110111
runuinttest();
112113
runceiltest();
114115
runuintceiltest();
116117
runabstest();
118119
runabsmulttest();
ElasticSearch優化的一些方法
1.多執行緒程式插入,可以根據伺服器情況開啟多個執行緒index 速度可以提高n倍,n 2 2.如果有多台機器,可以以每台設定n個shards的方式,根據業務情況,可以考慮取消replias curl xput d 這裡設定20個shards,複製為0,如果需要replicas,可以完成index後...
ElasticSearch優化的一些方法
1.多執行緒程式插入,可以根據伺服器情況開啟多個執行緒index 速度可以提高n倍,n 2 2.如果有多台機器,可以以每台設定n個shards的方式,根據業務情況,可以考慮取消replias curl xput d 這裡設定20個shards,複製為0,如果需要replicas,可以完成index後...
ElasticSearch優化的一些方法
1.多執行緒程式插入,可以根據伺服器情況開啟多個執行緒index 速度可以提高n倍,n 2 2.如果有多台機器,可以以每台設定n個shards的方式,根據業務情況,可以考慮取消replias curl xput d 這裡設定20個shards,複製為0,如果需要replicas,可以完成index後...