arm java 性能怎么样,ARM v6上使用java的Number to String转换性能

我在ARM v6处理器上运行

Java软件.这个程序的性质要求我将一些数字(int或float)转换为String.处理器运行速度为850Mhz. Java Runtime是OpenJDK Zero VM 1.7.0_21-b02.

我并不期待这里有坚如磐石的表演,但我希望能比我在下面的代码片段中看到的更有效.

long time1, time2;

float[] src = new float[2000000];

for (int i = 0; i < src.length; i++) {

src[i] = (float)Math.random()* 2.56454512f * (float) Math.random();

}

time1 = System.nanoTime();

for (int j = 0; j < src.length; j++) {

String test = String.valueOf(src[j]);

}

time2 = System.nanoTime();

logTimeDelay("String.valueOf", time1, time2);

time1 = System.nanoTime();

for (int j = 0; j < src.length; j++) {

String test = Float.toString(src[j]);

}

time2 = System.nanoTime();

logTimeDelay("Float.toString", time1, time2);

StringBuilder sb = new StringBuilder(50);

time1 = System.nanoTime();

for (int j = 0; j < src.length; j++) {

sb.setLength(0);

sb.append(src[j]);

}

time2 = System.nanoTime();

logTimeDelay("StringBuilder.append, setLength", time1, time2);

time1 = System.nanoTime();

for (int j = 0; j < src.length; j++) {

String test = "" + src[j];

}

time2 = System.nanoTime();

logTimeDelay("\"\" + ", time1, time2);

private static void logTimeDelay(String message, long time1, long time2){

System.out.println(String.format(message + ": %.5f s", (float) (time2 - time1) / 1.0e9));

}

在我的i7计算机上运行此代码段会返回以下结果:

String.valueOf: 0.39714 s

Float.toString: 0.33295 s

StringBuilder.append, setLength: 0.33277 s

"" + : 0.37581 s

在ARMv6处理器上运行完全相同的代码段会返回以下值:

String.valueOf: 204.78758 s

Float.toString: 200.79659 s

StringBuilder.append, setLength: 180.81551 s

"" + : 267.63036 s

有关如何在此设备上优化我的数字到int转换的任何线索?

提前致谢.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值