我的最后一年项目存在严重问题。我被告知开发一款使用PhoneGap的移动应用程序来支持多种平台。然后我被告知比较PhoneGap与的本机的性能,所以我决定在android上测试它。Phonegap vs android on android性能测试
我写了一个样本函数和测量的时间来实现它在的JavaScript为的PhoneGap和的Java为机Android。而有趣的是,JavaScript函数花费的时间更少,我一直认为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代码中的本机:
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上的原生?
只运行一个测试,在这样一个简单的测试,比较性能是一个严重的错误。你应该做一些*非常*数学密集型任务或图形任务。 – 2013-04-22 20:46:48
如果你没有在每次迭代中实例化新的Random对象,而是在for -loop之外移动“new Random()”,它仍然是有效的比较吗? – harism 2013-04-22 20:47:18
这两点都是有效的,你应该在每一行执行后有一个故障...我会怀疑@ harism点确实会使运行时间显着下降 – brendosthoughts 2013-04-22 20:49:40