arm java 性能怎么样,ARM v6上使用java的Number to String转换性能
我在ARM v6處理器上運(yùn)行
Java軟件.這個(gè)程序的性質(zhì)要求我將一些數(shù)字(int或float)轉(zhuǎn)換為String.處理器運(yùn)行速度為850Mhz. Java Runtime是OpenJDK Zero VM 1.7.0_21-b02.
我并不期待這里有堅(jiān)如磐石的表演,但我希望能比我在下面的代碼片段中看到的更有效.
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計(jì)算機(jī)上運(yùn)行此代碼段會(huì)返回以下結(jié)果:
String.valueOf: 0.39714 s
Float.toString: 0.33295 s
StringBuilder.append, setLength: 0.33277 s
"" + : 0.37581 s
在ARMv6處理器上運(yùn)行完全相同的代碼段會(huì)返回以下值:
String.valueOf: 204.78758 s
Float.toString: 200.79659 s
StringBuilder.append, setLength: 180.81551 s
"" + : 267.63036 s
有關(guān)如何在此設(shè)備上優(yōu)化我的數(shù)字到int轉(zhuǎn)換的任何線索?
提前致謝.
總結(jié)
以上是生活随笔為你收集整理的arm java 性能怎么样,ARM v6上使用java的Number to String转换性能的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 包包宣传文案吸引语33句
- 下一篇: java 中允许键重复的,二叉搜索树的定