Overview
Description
Analyzer is an application which provides several measurement and analysis tools. These tools can be used in connection to CGI Studio projects.
This section provides an overview of Analyzer features. For a more detailed explanation, please click here.
First steps
Analyzer is an invaluable tool for diagnosing applications when it comes to improving performance. One of the first things to be determined is whether the application is CPU or GPU bound.
Following will explain shortly the necessary steps to achieve this.
Configuration
First build your application with monitor enabled (as explained here).
Run the Analyzer and configure the monitor module so it accepts connections from the application and then start the server (read here how to do it).
If everything was configured correctly when the application is started it will connect automatically to the Analyzer.
Global Experiments
Now we will use the use the Global Experiments as follows:
1. Enable "Ignore Draw Calls"
Draw calls will not be submitted anymore thereby simulating an infinitely fast GPU so the swapping will be instantaneous. If the performance improves dramatically the problem is GPU-bound (draw calls bound).
If the frame rate does not rise significantly, the problem may be CPU-bound. In this case you should have a look on the number of widgets the application is using and also run the application in host simulation with some profiling tools (like the ones from Visual Studio).
2. Disable "Ignore Draw Calls" and enable the use of "Null Fragment Shader Program" and "2x2 textures".
In this case CPU will submit draw calls but the GPU burden is almost zero. If performance is bad that means there are too many draw calls or textures in use are too big or maybe the fragment shader is to complex.
-
There are situations when the problem could be both GPU and CPU bound (for example in the case of hundred of nodes to render).
Please refer to the Quick Guide to get troubleshooting information for any performance degradation issue.