Kontext: An unserer Universität wurde eine Javascript-Bibliothek für mobile Peer-to-Peer-Programmierung entwickelt. Ursprünglich verwendete es Titanium, um plattformübergreifend zu sein. Wenn der Programmierer jedoch unsere Bibliothek verwenden möchte, muss er Titanium verwenden. Daher war es meine Aufgabe, sie vom Framework unabhängig zu machen und Cordova zu unterstützen. Jetzt können die Leute unsere Bibliothek sowohl in Titanium als auch in Cordova benutzen.Benchmarking Cordova vs Titanium App
Ich entwickelte eine Anwendung, die die Bibliothek einmal in Titanium und einmal in Cordova verwendet. Als letzten Schritt, wollen wir beide Versionen vergleichen, mit einigen Benchmarks.
Wir hatten im Auge zu vergleichen:
- CPU-Auslastung
- Speichernutzung
- Kommunikationsgeschwindigkeit
- UI Ansprechbarkeit (wenn möglich?)
Für die Kommunikationsgeschwindigkeit zwischen zwei p Ich habe mir vorgenommen, jede Nachricht mit einem Zeitstempel zu versehen, der zum Zeitpunkt des Sendens und Empfangens gesendet wird. Dann senden Sie eine große Anzahl von Nachrichten und berechnen Sie den Durchschnitt.
Für CPU- und Speicherauslastung habe ich in den Titan- und Cordova-Dokumenten nachgesehen. In Titan fand ich Titanium.Platform.availableMemory
. Allerdings muss ich noch herausfinden, wie ich auf den gesamten Speicher zugreifen kann, so dass ich die Speicherbelegung überwachen kann, indem ich Total Memory - Titanium.Platform.availableMemory
mache und wieder einen Durchschnitt errechne. Außerdem brauche ich einen Weg, um das gleiche in Cordova zu tun.
Ich konnte keinen Weg finden, auf CPU-Auslastung des Geräts zuzugreifen. Und ich frage mich, wie ich die Reaktionsfähigkeit der Benutzeroberfläche überwachen könnte.
Für Cordova fand ich einen interessanten Artikel auf automating performance audits.
Danke, das ist hilfreich! In der Tat generiert Cordova auch ein Xcode-Projekt. Ich werde einen Blick darauf werfen :) – HyperZ
Die verschiedenen Instrumentierungswerkzeuge, die von Xcode zur Verfügung gestellt werden, sind wirklich erstaunlich, aber ich habe Schwierigkeiten damit, die Graphen zu reproduzieren. Zum Beispiel verwende ich den "Time Profiler". Die vom Zeitprofiler angezeigte Grafik zeigt die CPU-Auslastung in% an. Ich habe versucht, die Trackdaten in eine CSV-Datei zu exportieren und sie in Zahlen zu importieren, um den Graphen neu zu erstellen. Diese prozentualen Daten werden jedoch nicht in eine CSV-Datei, sondern in andere Informationen exportiert. Ich konnte den Graphen deswegen noch nicht reproduzieren. Wissen Sie, wie Informationen über die CPU-Auslastung (in%) in eine CSV-Datei exportiert werden? – HyperZ