In order to follow along with making a Single Threaded app Multi-Threaded, it will help if you are familiar with programming concepts. Data types like integers, doubles, what a function is and can understand the descriptions of some Windows APIs. The IDE we will use is Visual Studio 2015 so it will help if your familiar with that IDE. To follow along at your own pace, it will really help if you have made Win32 Console Application projects with Visual Studio before. Lastly, we discuss the 2 tools inside the Windows Performance Toolkit (WPT) that will help us understand the inner workings of the application.
- [Narrator] It will help make the learning curve easier if you're familiar with some basic programming concepts. We'll be performing CPU analysis on an application written in C++ which also uses Windows APIs. It will help if you are familiar with for loops, if-else statements, datatypes like integers and doubles, and functions. The integrated development environment we will be using is Visual Studio. It'll be easier to follow along if you're familiar with making Visual Studio projects as we make a single-threaded application multi-threaded.
You can grab Visual Studio 2015 from MSDN.com. A central processing unit is what carries out the instructions in a program. It executes these instructions and is the reason the applications that you see everyday are able to run. The last note is clocks per second. Clocks per second is basically the CPU speed, the number you see before the gigahertz. Doing a quick search on this term will help later on when you see it in the source code. The Windows Performance Recorder has many recording scenarios.
And some of these other ones are focused on in the other Windows Performance Toolkit Series courses. But here, we are only interested in CPU usage since that recorded data will tell us how the application utilizes the CPU. And we can inspect the call stack to see what functions are being called by the application. In short, selecting CPU usage will give us the insight we need in order to understand the inner workings of the house application so we can then optimize it.
- Looking at single-threaded source code
- Collecting CPU data
- Call-stack walking
- Inspecting thread activity
- Transforming a single-threaded app into a multithreaded app