私は最終年度のプロジェクトで深刻な問題があります。私はPhoneGapを使っていくつかのプラットフォームをサポートするモバイルアプリを開発するように言われました。その後、私はPhoneGap対ネイティブのパフォーマンスを比較するように言われたので、私はアンドロイドでそれをテストすることにしました。Phonegapとネイティブアンドロイドのパフォーマンステスト
私はネイティブのAndroidためのJavaサンプル関数を書き、ためはJavaScriptでそれを達成するための時間を測定しPhoneGapのとインチそして面白いのは、JavaScript関数が時間を要していることです。私はネイティブ関数の方がずっと速いと思っていました。
ここで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での私のコード:最初の1のための
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番目のものは:3600ms平均で
私はサムスンギャラクシー
にテストしていは10.1タブレットに注意してください。
これは正しいですか?あるいは私は何かを逃して重大な間違いを犯していますか?
ありがとうございました。
-------------- --------------更新
ランダムはr =新しい
を入れた後、 Random()
ループ外では、ループを実行するのに必要な新しい時間は750msです。しかし、Phonegapの速度は依然として2倍速く、数値処理のためにはPhonegapはよりも優れています.NativeはAndroidでですか?
を試してみて、パフォーマンスを比較することで、このような簡単なテストは、重大な間違いです。あなたは、数学的に集中的な仕事やグラフィックスの仕事をしなければなりません。 –
すべての反復で新しいRandomオブジェクトをインスタンス化せず、for -loopの外側で ''新しいRandom() ''を移動した場合、それでも有効な比較はできますか? – harism
両方のポイントが有効です。各行が実行された後に故障が発生するはずです... @ harism pointが実際にネイティブにランタイムを大幅にダウンさせると思われます。 – brendosthoughts