我的最后一年的项目有一个严重的问题。我被告知要使用PhoneGap开发一个移动应用程序来支持多个平台。然后我被告知要比较PhoneGap与Native的性能,所以我决定在 android 上进行测试。
我编写了一个示例函数,并测量了在JavaScript for PhoneGap和Java for Native Android中实现它的时间。有趣的是,JavaScript 函数的完成时间缩短了10倍,而且我一直认为 Native 函数要快得多。
这是我在 JavaScript 中用于 PhoneGap 的代码:
var array = new Array();
var start = new Date().getTime();
for (var i = 0; i < 1000000; i++) {
var j = i + Math.random();
if (j % 2 == 0)
j = 1;
else
j = 0;
array.push(j);
}
var end = new Date().getTime();
var time = end-start;
var div = document.getElementById('result');
div.innerHTML = "Result time= " + time;
我在 Java 中的 Native 代码:
long startTime = System.currentTimeMillis();
ArrayList<Integer> array = new ArrayList<Integer>();
for (int i = 0; i < 1000000; i++) {
Random r = new Random();
int j = i + r.nextInt();
if (j % 2 == 0)
j = 1;
else
j = 0;
array.add(j);
}
long endTime = System.currentTimeMillis();
long time = endTime - startTime;
t1.setTextColor(Color.BLACK);
t1.setText("Result time= "
+ Long.toString(time));
第一个的输出是:平均350 毫秒
第二个的输出是:平均3600ms
我正在测试
三星 Galaxy Note 10.1 平板电脑。
这是正确的吗?还是我错过了什么并犯了严重的错误?
非常感谢你的帮助。
- - - - - - - 更新 - - - - - - -
放好后
随机 r = 新随机()
在循环之外,执行循环所需的新时间是750ms。但是使用Phonegap 速度仍然是两倍快,我可以得出结论,对于数值处理,Phonegap比Android 上的Native更好吗?