情況是這樣的。 小弟的專題測試在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
)
}
謝謝您耐心的看完他了。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.127.72.91
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 4 篇):