Monday, 4 May 2015

Response Times Analysis using AT&T ARO and Manuji


The most common reason for any mobile performance test is to identify the reasons for slow response and eliminate them. Network factor is the most concentrate area for most performance engineers when it comes to performance testing. However networking is not the only factor we need to consider.  Application rendering factor is another key area witch cause most of the slowness especially your AUT is a Hybrid mobile application.

Manuji has a special capability of capturing rendering and GPU related information from your handset.  For this demo I am using AT&T ARO to capture network related stuff and Manuji to capture GPU and rendering related stuff. However I am not going to discuss how to configure and capture TCPIP PCAP files using ARO since it will be a separate demo.

First connect your AUT to ARO using USB or WiFi connection and start record button and record your test scenario.  For this you don’t need to root your device since ARO newer versions can manage network with normal privileges. Then go to “Waterfall” tab and you will see following screen. Then calculate time taken for each and every network call.



You can see all of the network calls has responded within 3secound during this test. Since my AUT takes more than 25secound to sign on and display dashboard screen, I don’t think network response of less than 3secound is the real issue of the slowness.  

Now let me connect my AUT to Manuji using USB and try to understand any issue with the rendering of screen objects. Why I suspect this because my AUT is Phone Gap build hybrid application and most hybrid applications are subject to  rendering issues because they render HTML components on top of Web view comportment. Web view is not a optimized component when it comes to mobile. 

After I record my test scenario using Manuji, I need to change the main graph to Rendering Response Graph and it looks like following



Now we can see that at the time of the sign on screen there are about 200 views rendered and average display list size of 2.75KB. We can also clearly see that number of views rendered is climbing with the time. 

Now we need to see the GPU effort that took to render these views and check GPU Draw, Process and Execute times are under 16ms witch is the industry benchmark. In order for me see above said factors, Manuji has provided three graphs and they can be initiated using below three buttons. 


Now I am going to change the main graph to GPU Analysis and following are the GPU draw response times, the GPU process times and the GPU execute times.




GPU actually did not took much time to do the drawing. We can celery see the draw times ate under 2ms. However we can see GPU process and execute times are above the 16ms threshold and some times it reaching 40ms witch is way too much. 

Please refer below video of this walk through so you can have more understanding of using Manuji.