最終年度のプロジェクトで重大な問題があります。複数のプラットフォームをサポートするために、 PhoneGapを使用してモバイル アプリを開発するように言われました。次に、 PhoneGapとNativeのパフォーマンスを比較するように言われたので、android でテストすることにしました。
サンプル関数を書いて、PhoneGap用のJavaScriptとネイティブ Android 用のJavaでそれを達成する時間を測定しました。そして面白いことに、JavaScript 関数は完了するまでに10分の 1 の時間がかかっており、ずっとネイティブ関数の方がずっと速いと思っていました。
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;
そしてネイティブ用の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));
最初の出力:平均350ms
2 番目の出力:平均3600 ミリ秒
私はテストしています
Samsung Galaxy Note 10.1 タブレット。
これは正しいですか?それとも、何かを見逃していて、重大な間違いを犯していますか?
助けてくれてどうもありがとう。
- - - - - - - アップデート - - - - - - -
入れた後
ランダム r = 新しいランダム()
ループの外側では、ループの実行に必要な新しい時間は750msです。しかし、Phonegap を使用すると、速度は依然として 2 倍速くなります。数値処理に関して、PhonegapはAndroidのNativeよりも優れていると結論付けることができますか?