Wednesday, 29 April 2015

Manuji extend its capabilities to capture GPU (Graphics Processing Unit) and Screen Rendering.



Manuji V2.0 has extended its capabilities to analyze GPU and screen rendering of the mobile device.  This is a key breakthrough since screen rendering is the most difficult and most ignored mobile performance risk in modern mobile world. Also screen rendering is the key performance bottleneck in most of the hybrid mobile applications.  

Please refer to below for more information about GPU and screen rendering.

  1. 1How Android draw to the screen:  http://kevinmhickey.github.io/Android/2013/02/02/how-does-my-android-app-draw-to-the-screen/
  2.  GPU benchmarks,  Android and Me: http://androidandme.com/tag/gpu-benchmarks/ 
  3. What is "GPU":  http://www.mobileburn.com/definition.jsp?term=GPU
There are two new graphs added to Manuji main screen. They are “GPU Analysis graph” and “Rendering Analysis graph”. GPU Analysis graph is mainly focus on GPU resource consumption and Rendering Analysis graph help you to understand Frame count, View count and screen object size.

When it comes to mobile performance engineering there are three GPU factors we need to consider.


  1. GPU Draw Time:- Time spent on building display lists. It indicates how much time is spent running methods such as View.onDraw(Canvas).
  2. GPU Process Time:-  This  is the time spent by 2D render to execute the display lists. The more Views in your hierarchy, the more drawing commands must be executed.
  3. GPU Execute Time:-  Execute is the time it took to send a frame to the compositor.
You can Manuji to understand scenario like, when I use my application in Nexus 4 it seems graphics are not stable. This is because in Android, if your execute takes a long time, it means you are running ahead of the graphics pipeline. Android can have up to 3 buffers in flight and if you need another one the application will block until one of these buffers is freed up. This can happen for two reasons.  Your application is quick to draw on the Dalvik side but its display lists take a long time to execute on the GPU or your application took a long time to execute the first few frames, once the pipeline is full it will not catch up until the animation is done. 

Manuji now can help you to figure out these performance bottlenecks by simple button click. It will help you to display all the details in graphical format and you can also export the raw data to excel or text format.