作者sdallan ()
看板java
標題[問題] 關於android 的效能
時間Wed Oct 6 22:02:23 2010
手機 HTC Desire
版本 2.1
最近在手機上實作的功能已經完成了,近期在減少執行時間的調整。
光是下面這段程式,在手機上跑完就要20幾秒
for ( int y = 0 ; y < 50 ; y++ ){
for ( int x = 0 ; x < 50 ; x++ ){
for ( int c = 0 ; c < 3 ; c++ ){
int [] block = new int [64];
Arrays.fill( block , 255 );
//以上大概總共2秒
//若執行以下的話總共要20幾秒
String result = "";
for ( int j = 0 ; j < block.length ; j++ ){
result += (block[j] & 252);
}
}
}
}
稍微計算一下圈數 50*50*3*64 ,這個計算次數基本上是減不了了。
請問有辦法再減少這邊的執行時間嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.127.72.91
→ ericinttu:不知道記憶體吃不吃緊? 會不會直接影響到運算時間? 10/06 22:10
推 ericinttu:另外, 可能改寫 result += 這寫法會改善一點 10/06 22:13
→ kanandg1:中間有註解的地方還有其他運算嗎? 10/06 22:31
推 chchwy:用StringBuffer吧 字串運算很耗資源的 10/07 21:59
謝謝以上三位的回應 記憶體的確很吃緊。註解中間無其他運算。 已改用StringBuffer
※ 編輯: sdallan 來自: 140.127.110.241 (10/08 13:16)