Performanceprobleme aufspüren

Performanceprobleme aufspüren

Dominik Helleberg


Die Performance einer App hat einen hohen Einfluss auf deren Erfolg. Da mobile Applikationen im Alltag gern als Lückenfüller verwendet werden, z. B. zur Überbrückung von Wartezeiten, ist es entscheidend, dass der Benutzer schnell zum Ziel gelangt und nicht noch weitere Wartezeit mit der App verbringt. Eine schnelle und flüssige Applikation suggeriert Leichtigkeit und Freude bei der Bedienung und hinterlässt ein positives Erlebnis beim Benutzer. Doch was tun, wenn sich die eigene App deutlich langsamer verhält als die Konkurrenz und das GUI nicht so flüssig läuft wie gewünscht? Dann helfen spezielle Tools aus den ADTs, um die Ursache zu analysieren.

Die Tracer-Familie

Performanceprobleme bei Apps können viele Gründe und auch Ausprägungen haben. Die Ursachen können z. B. direkt im eigenen Code liegen, z. B. ineffiziente Programmierung oder Aufruf von blockierenden Methoden im UI-Thread. Schwieriger sind Probleme zu analysieren, die zu einem langsamen Ablauf der App führen, weil z. B. die Hardware überlastet wird oder Anweisungen unseres Codes schnell ausgeführt werden, diese dann aber zu einer längeren Laufzeit im Android-Frameworkcode führen. Um diese verschiedenen Ausprägungen von Problemen zu analysieren, gibt es mehrere Tools, die unterschiedliche Bereiche der Android-Plattform analysieren können. Hier ist es zunächst wichtig zu verstehen, welche Teile der Android-Architektur von den einzelnen Tools betrachtet werden. Danach stellen wir die Tools im Detail vor.

Abb. 1: Die Tracer-Familie

Abbildung 1 zeigt eine stark vereinfachte Darstellung der Android-Architektur und die Sichtweisen der drei Tools Traceview, Tracer und Systrace. Wir verwenden Traceview, wenn wir Performanceanalysen innerhalb der Dalvik VM, also im ausgeführten Java-Code, vornehmen möchten. Traceview ist in der Lage, Laufzeiten von Methodenaufrufen einer Dalvik-Instanz zu messen. Für uns ermöglicht das eine detaillierte Sicht auf unsere App und unseren Code. Was außerhalb der Dalvik VM passiert, erfasst Traceview nicht.

Tracer legt einen speziellen Fokus auf die Performance der Grafikpipeline. Hierzu ist es wichtig zu wissen, dass ab Android 4.x nahezu die komplette Grafik-Pipeline auf OpenGL ES umgestellt wurde. So wird z. B. eine ImageView mit einem Bild später zu einem Quad mit einer Textur. Mit Tracer lassen sich die einzelnen OpenGL-ES-Kommandos, die von der GPU ausgeführt werden, im Detail analysieren und ggf. Performanceprobleme finden.

Eine Sicht auf die gesamte Plattform ermöglicht...

Performanceprobleme aufspüren

Performanceprobleme aufspüren

Dominik Helleberg


Die Performance einer App hat einen hohen Einfluss auf deren Erfolg. Da mobile Applikationen im Alltag gern als Lückenfüller verwendet werden, z. B. zur Überbrückung von Wartezeiten, ist es entscheidend, dass der Benutzer schnell zum Ziel gelangt und nicht noch weitere Wartezeit mit der App verbringt. Eine schnelle und flüssige Applikation suggeriert Leichtigkeit und Freude bei der Bedienung und hinterlässt ein positives Erlebnis beim Benutzer. Doch was tun, wenn sich die eigene App deutlich langsamer verhält als die Konkurrenz und das GUI nicht so flüssig läuft wie gewünscht? Dann helfen spezielle Tools aus den ADTs, um die Ursache zu analysieren.

Die Tracer-Familie

Performanceprobleme bei Apps können viele Gründe und auch Ausprägungen haben. Die Ursachen können z. B. direkt im eigenen Code liegen, z. B. ineffiziente Programmierung oder Aufruf von blockierenden Methoden im UI-Thread. Schwieriger sind Probleme zu analysieren, die zu einem langsamen Ablauf der App führen, weil z. B. die Hardware überlastet wird oder Anweisungen unseres Codes schnell ausgeführt werden, diese dann aber zu einer längeren Laufzeit im Android-Frameworkcode führen. Um diese verschiedenen Ausprägungen von Problemen zu analysieren, gibt es mehrere Tools, die unterschiedliche Bereiche der Android-Plattform analysieren können. Hier ist es zunächst wichtig zu verstehen, welche Teile der Android-Architektur von den einzelnen Tools betrachtet werden. Danach stellen wir die Tools im Detail vor.

Abb. 1: Die Tracer-Familie

Abbildung 1 zeigt eine stark vereinfachte Darstellung der Android-Architektur und die Sichtweisen der drei Tools Traceview, Tracer und Systrace. Wir verwenden Traceview, wenn wir Performanceanalysen innerhalb der Dalvik VM, also im ausgeführten Java-Code, vornehmen möchten. Traceview ist in der Lage, Laufzeiten von Methodenaufrufen einer Dalvik-Instanz zu messen. Für uns ermöglicht das eine detaillierte Sicht auf unsere App und unseren Code. Was außerhalb der Dalvik VM passiert, erfasst Traceview nicht.

Tracer legt einen speziellen Fokus auf die Performance der Grafikpipeline. Hierzu ist es wichtig zu wissen, dass ab Android 4.x nahezu die komplette Grafik-Pipeline auf OpenGL ES umgestellt wurde. So wird z. B. eine ImageView mit einem Bild später zu einem Quad mit einer Textur. Mit Tracer lassen sich die einzelnen OpenGL-ES-Kommandos, die von der GPU ausgeführt werden, im Detail analysieren und ggf. Performanceprobleme finden.

Eine Sicht auf die gesamte Plattform ermöglicht...

Neugierig geworden?


    
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang