2016-04-24 25 views
0

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.

Antwort

2

Sie werden nie 100% zuverlässige Daten erhalten, wenn Sie sich die APIs beider Plattformen ansehen. Sie müssen die nativen Inspektoren verwenden.

Zum Beispiel hat xCode ziemlich gute Inspektoren eingebaut, um beispielsweise die CPU- und Speichernutzung zu überwachen. Android hat auch etwas Ähnliches.

Wenn Sie für ein Gerät mit Titanium "bauen" (wo ich Erfahrung damit habe), wird es ein xCode-Projekt für Sie generieren. Dieser kann mit Xcode geöffnet werden, und von dort aus können Sie ihn erneut für das Gerät erstellen und die Überwachungstools verwenden. Cordova Projekte werden etwas ähnliches tun, denke ich. Nicht sicher, wie diese kompilieren.

+0

Danke, das ist hilfreich! In der Tat generiert Cordova auch ein Xcode-Projekt. Ich werde einen Blick darauf werfen :) – HyperZ

+0

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