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

Windows system tools

Additionally, we can use an excellent suite of general-purpose Windows tools, namely the Windows Sysinternals tools, available on the https://docs.microsoft.com/en-us/sysinternals/downloads/sysinternals-suite page. As we will see later, some of them can be used for performance evaluation and troubleshooting. The Sysinternals suite contains many tools, so we'll present only a selection of tools that are most useful for our purposes, namely the following:

  • Process Explorer: This is a Task Manager on steroids. It can query and visualize several system and performance counters for each process, and I regularly use it for preliminary investigations. We will see some usage examples later in this chapter.
  • System Explorer: This shows all system calls issued by any running processes in a long list and supports filters to select processes we'd like to observe. Admittedly, it is more of a debugging tool, but it provides a very simple way to find out what our application has done recently, which can be sometimes also be helpful in performance analysis.
  • RAMMap: Let's examine the system's global memory usage, which requires quite a bit of Windows internal knowledge.
  • VMMap: Shows detailed info on a single application's memory usage.
  • Coreinfo: The Windows equivalent to Linux's cpuinfo gives detailed information about the processor, information you might need when doing low-level optimization work.

The following two screenshots show a sample of Coreinfo's output, and you will see and recognize many topics that were discussed in Chapter 1, Understanding Performant Programs, in the Modern processor architectures section. Try to make sense of them!