看板 java 關於我們 聯絡資訊
手機 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)