Ich versuche, die Ausführungsleistung einiger plattformübergreifender Lösungen zu messen, darunter Titanium und PhoneGap.Warum scheint PhoneGap schneller als Titanium?
Also hier ist ein Beispiel für die Titanium-Version meiner Performance-Tester, ist es sehr einfach ist, aber ich versuche nur, ein Gefühl dafür, wie schnell mein Code zu erhalten ausgeführt wird:
var looplength;
var start1;
var start2;
var end1;
var end2;
var duration1;
var duration2;
var diff;
var diffpiter;
var power;
var info;
for (power = 0; power < 24; power++) {
looplength = Math.pow(2, power);
start1 = new Date().getTime();
for (iterator = 0; iterator < looplength; iterator++) {a=iterator;b=iterator;}
end1 = new Date().getTime();
start2 = new Date().getTime();
for (iterator = 0; iterator < looplength; iterator++) {a=iterator;}
end2 = new Date().getTime();
duration1 = end1 - start1;
duration2 = end2 - start2;
diff = duration1 - duration2;
diffpiter = diff/looplength;
info={title:'2^' + power + ' ' + diffpiter};
tableView.appendRow(Ti.UI.createTableViewRow(info),{animated:true});
}
Die PhoneGap-Version ist das gleiche mit Ausnahme der letzten zwei Zeilen, die ersetzt werden
document.write('2^' + power + ' ' + diffpiter + '<br />');
Beide werden auf einem iPhone 4S ausgeführt. Ich habe den Test mehrmals durchgeführt, um Fehler zu vermeiden.
Wie im Namen von all dem ist heilig kann die Titanium-Version ~0.0009
Millisekunden pro Iteration messen, während die PhoneGap-Version ~0.0002
Millisekunden pro Iteration misst?
Titanium soll meinen Javascript-Code kompilieren, also erwarte ich, dass es schneller ist. In diesem Fall ist es mindestens 4 mal langsamer! Ich bin kein Experte für Leistungstests, aber der Test, den ich entworfen habe, sollte mindestens im Entferntesten genau sein ...
Vielen Dank für alle Tipps, die Sie mir geben können.
Titan und PhoneGap haben deutlich unterschiedliche Anwendungsfälle. Solche Mikrobenchmarks zu machen bedeutet, den Punkt völlig zu verfehlen. – ceejayoz
Ich bekomme das, aber jede Geschäftslogik, die ich in die App einfügen würde in reinem Javascript getan werden. Also teste ich, wie schnell pures Javascript in diesen Situationen ausgeführt wird. Ich verstehe, dass man Titanium und PhoneGap aus verschiedenen Gründen verwenden würde, aber ich versuchte mir zu verdeutlichen, dass Titanium Dinge schneller ausführen würde. – pancake