作者qrtt1 (null)
看板java
标题Re: [问题] 请益关於android在运算上的效能
时间Sat Nov 6 12:11:22 2010
※ 引述《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