Re: [問題] 請益關於android在運算上的效能
※ 引述《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
討論串 (同標題文章)