我的最後一年項目存在嚴重問題。我被告知開發一款使用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