Hands-On High Performance Programming with Qt 5
上QQ阅读APP看书,第一时间看更新

Graphic profilers

Let's start with AMD CodeXL. I know, we had that one already, but as already stated, CodeXL is much more than a simple sampling CPU profiler. On AMD processors, it can additionally use hardware support for event profiling, instruction-based sampling, and sophisticated power analysis. It can debug C++ code, OpenCL, and OpenGL API calls, as well as OpenCL kernels. It supports frame and shader analysis, and it can profile GPU usage. It is a comprehensive graphic profiler tool oriented toward AMD hardware.

Intel Graphics Performance Analyzers (Intel GPA) is a game and graphic performance analyzer, and it is oriented toward Intel hardware, and is free as well. It shows CPU, GPU, Graphics API, and power metrics in real time, supports frame and trace capturing and analysis, and lets you override graphics pipeline state and parameters without recompilation. Wow! These graphic analysis tools are really sophisticated!

While the previous analyzers relied on sampling or hardware support, RAD's Telemetry Performance Visualization System is a tool using instrumentation. It is also oriented toward games, and, as the name suggests, it is a visualizer for the information created by the instrumentation code. It has a rich UI and is designed to keep up with real-time outputs. It displays classic CPU profiling information, visualizes locks and lock contentions, and shows context switches and thread affinities. It is quite good for an instrumenting profiler!

Apitrace is a tool for tracing the OpenGL calls your application is making. It works by preloading an instrumented implementation of OpenGL and recording its trace outputs. Apitrace comes with a GUI program for trace visualization and is widely used for graphic performance optimization work.