Re: [問題] 請益關於android在運算上的效能

看板java作者 (null)時間13年前 (2010/11/06 12:11), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/4 (看更多)
※ 引述《sdallan ()》之銘言: : 情況是這樣的。 小弟的專題測試在android的手機上, : 以下這段code 執行時間竟然要九秒...在同樣的情況下, : 於pc上測的話約 0.04~0.06秒左右。 怎麼差這麼多... : 雖然兩個測試環境的差距明顯。不過我們目前在想辦法要在 : 手機上的計算效率再提高。礙於學識不足,我實在是不知道哪裡還 : 可以再提升,特來版上求解。 : 這段code的用意在於,要將一個int陣列每個值,與2個bit做 AND。 : 因為bit數有128個,找不到更好的資料型態去裝他了。 : 以下這段在測試上,總共會執行4800次。 : int [] iArray = int [64]; : String binaryString = "010101001011001010..."; //長度為128 : //依陣列的長度 : for ( int i = 0 ; i < iArray.length ; i++ ){ : //把值做or後再and : iArray[i] = ( iArray[i] & 3 ) | : //轉成2進制的數值 : Integer.parseInt( : //一次切2個bit出來 : binaryString.substring((0+LSB*i), (2+LSB*i)),2 : ) : } : 謝謝您耐心的看完他了。 如果你的PC是單核,如果你的CPU速度是 1GHz 以下。 那可能速度就不會差那麼多倍了。 另外,為什麼不採用 int[] 或 byte[] 來存你的 128 個 01 你用字串作,每一次的 substring 都在產生新的 String 還要再另外把它轉成 int。 你要加快它在 Android 下跑的速度,要先避開這些奢侈的習慣。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.231.53.207
文章代碼(AID): #1CrDLjcC (java)
討論串 (同標題文章)
文章代碼(AID): #1CrDLjcC (java)