Note: This document is a work in progress and is captured for the benefit of knowledge transfer.
There are several tools to analyze the performance of the system that we need to look into each one to find the best for our purpose.
- Windows Performance Toolkit
- Windows Performance Recorder (WPR) : records any events that creates an ETW. It can be installed and used in one of the following ways:
- User Interface called, Windows Performance Recorder
- Command line, WPR.exe
- Windows Performance Analyzer (WPA): which has graphical views
- Windows Performance Recorder (WPR) : records any events that creates an ETW. It can be installed and used in one of the following ways:
- Device Portal for Hololense: This can test the performance on Hololense.
- GPU View : for checking the performance of the GPU
- Media eXperience Analyzer: This is a graphical tool to show the performance of the system and glitches in the media. Apparently it needs to get the logs from another tool like WPR and then you can connect it to this tool to see the output graphically.
About the windows performance tools that was mentioned above, if they don't have options to run it with powershell , command line etc. we can't use it in the pipeline.
There might be tools that can be used that are specific to Azure Dev Ops. It is work in Progress.
- The Analytics extension on Azure DevOps can help us in the performance analysis.
One good option is GTest itself , GTest has performance testing ways and it can be added into the test to get the analysis about CPU/GPU and etc. Here is a link to GTest Benchmark.
There can be so many ways on how to implement this task in the CI/CD builds. One way could be a process as follows:
- Since we are using the tracer and the output is a text file, in the step inside the pipeline that runs the tests we need to set the output to be saved in a specific folder and set the name of the file as the buildID so that it will be unique on each run.
- Whenever there is a need to view the ETW results for a specific build we can go to that build output and view the tracer file related to that build.