The counter monitoring capabilities of VTune analyzer are largely derived from Windows built-in Performance Monitor, which provides access to Windows performance counters. Counter Monitor offers many different families of performance counters; there is one family for network related performance, one for page file behavior, another for TCP/IP performance, etc.
Since these are OS counters, they tend to be focused at the system rather than the processor level. For example, with counter monitor, it is possible to measure the number of semaphores (ensures exclusive access to data) or mutexes (ensures exclusive access to instructions) in the system. EBS would not be able to understand that a particular sequence of instructions was a semaphore or mutex, but it could count the number of L2 or L3 misses that hit data with the shared state, the exclusive state and the modified state, and then using those numbers to derive the cost of coherency. The counter monitor also has much more overhead and consequently coarser resolution. It can be used to sample at 100ms resolution (10Hz), compared to 1ms (1MHz) for EBS.
The main advantage of including counter monitor in VTune analyzer is that it can work with the other two profiling modes. Counter monitor usually displays results over time, whereas EBS does not (see Figure 2, again using Oblivion). Users can take a look at counter monitor results to find unusual time periods (heavy page file access for example), and then zoom in on that time period and examine the EBS results to find out more detailed information. Since counter monitor uses built-in Windows facilities, it does not exist in the Linux version of VTune. That is the only functional difference between the two versions.
Figure 2 – Sample Output from Counter Monitor
Counter monitor is also highly customizable. Using the Performance DLL Data Collection SDK, developers can create their own performance counters and embed them in their applications.