Eli*_*lie 5 javascript java android native cordova
我的最后一年项目存在严重问题.我被告知使用PhoneGap开发移动应用程序以支持多个平台.然后我被告知要比较PhoneGap和Native的性能,所以我决定在android上测试它.
我编写了一个示例函数,并测量了用于PhoneGap的JavaScript和用于Native Android的Java实现它的时间.有趣的是,JavaScript函数的完成时间减少了10倍,而且我一直认为Native函数要快得多.
这是我在PhoneGap的JavaScript中的代码:
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;
Run Code Online (Sandbox Code Playgroud)
我在Java for 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));
Run Code Online (Sandbox Code Playgroud)
第一个的输出是:平均350毫秒
第二个输出是:平均3600ms
我正在测试
三星Galaxy Note 10.1平板电脑.
这是正确的吗?或者我错过了什么并犯了严重的错误?
非常感谢你的帮助.
-------------- --------------更新
放完之后
随机r =新随机()
在循环之外,执行循环所需的新时间是750ms.但是使用Phonegap,速度仍然是原来的两倍,我可以得出结论,对于数字处理,Phonegap在Android上优于Native吗?
小智 1
并非所有随机数生成器的性能都相同。为了公平比较,您最好进行确定性计算。
您的测试还应该包括其他功能,例如测试 GUI 响应时间、网络、数据库访问等。最有趣的是 GUI 响应时间,因为这是大多数应用程序花费大部分时间的地方。所有其他比较就像在代码中寻找微观优化。
请分享您的结果,因为这就是我访问此问题的真正原因。
| 归档时间: |
|
| 查看次数: |
3052 次 |
| 最近记录: |